
int exptmod(void *a,void *b,void *c,void *d)

{
  if (a == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);
  }
  if (b == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);
  }
  if (c == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);
  }
  if (d != (void *)0x0) {
    __gmpz_powm(d,a,b,c);
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);
}



undefined8 FUN_00160140(long param_1,long param_2,long param_3,long param_4)

{
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);
  }
  if (param_4 != 0) {
    __gmpz_powm(param_4,param_1,param_2,param_3);
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);
}


SUB RSP,0x8
TEST RDI,RDI
JZ 0x00160173
TEST RSI,RSI
JZ 0x001601bb
TEST RDX,RDX
JZ 0x001601a3
MOV RAX,RCX
TEST RCX,RCX
JZ 0x0016018b
MOV RCX,RDX
MOV RDX,RSI
MOV RSI,RDI
MOV RDI,RAX
CALL 0x00113810
XOR EAX,EAX
ADD RSP,0x8
RET
MOV EDX,0x1b4
LEA RSI,[0x1bdb28]
LEA RDI,[0x1aa70e]
CALL 0x00114270
MOV EDX,0x1b7
LEA RSI,[0x1bdb28]
LEA RDI,[0x1ae2d2]
CALL 0x00114270
MOV EDX,0x1b6
LEA RSI,[0x1bdb28]
LEA RDI,[0x1bbc2c]
CALL 0x00114270
MOV EDX,0x1b5
LEA RSI,[0x1bdb28]
LEA RDI,[0x1c07ee]
CALL 0x00114270
(translation_unit "undefined8 FUN_00160140(long param_1,long param_2,long param_3,long param_4)\n\n{\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }\n  if (param_4 != 0) {\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);\n}\n\n" (function_definition "undefined8 FUN_00160140(long param_1,long param_2,long param_3,long param_4)\n\n{\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }\n  if (param_4 != 0) {\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);\n}" type_identifier (function_declarator "FUN_00160140(long param_1,long param_2,long param_3,long param_4)" identifier (parameter_list "(long param_1,long param_2,long param_3,long param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\n  }\n  if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }\n  if (param_4 != 0) {\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);\n}" { (if_statement "if (param_1 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\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",0x1b4);\n  }" { comment (expression_statement "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);" (call_expression "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4)" identifier (argument_list "("a != NULL","src/math/gmp_desc.c",0x1b4)" ( (string_literal ""a != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }" { comment (expression_statement "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);" (call_expression "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5)" identifier (argument_list "("b != NULL","src/math/gmp_desc.c",0x1b5)" ( (string_literal ""b != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\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("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }" { comment (expression_statement "crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);" (call_expression "crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6)" identifier (argument_list "("c != NULL","src/math/gmp_desc.c",0x1b6)" ( (string_literal ""c != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_4 != 0) {\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }" { (expression_statement "__gmpz_powm(param_4,param_1,param_2,param_3);" (call_expression "__gmpz_powm(param_4,param_1,param_2,param_3)" identifier (argument_list "(param_4,param_1,param_2,param_3)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) comment (expression_statement "crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);" (call_expression "crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7)" identifier (argument_list "("d != NULL","src/math/gmp_desc.c",0x1b7)" ( (string_literal ""d != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })))
(translation_unit "int exptmod(void *a,void *b,void *c,void *d)\n\n{\n  if (a == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\n  }\n  if (b == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }\n  if (c == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }\n  if (d != (void *)0x0) {\n    __gmpz_powm(d,a,b,c);\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);\n}\n\n" (function_definition "int exptmod(void *a,void *b,void *c,void *d)\n\n{\n  if (a == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\n  }\n  if (b == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }\n  if (c == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }\n  if (d != (void *)0x0) {\n    __gmpz_powm(d,a,b,c);\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);\n}" primitive_type (function_declarator "exptmod(void *a,void *b,void *c,void *d)" identifier (parameter_list "(void *a,void *b,void *c,void *d)" ( (parameter_declaration "void *a" primitive_type (pointer_declarator "*a" * identifier)) , (parameter_declaration "void *b" primitive_type (pointer_declarator "*b" * identifier)) , (parameter_declaration "void *c" primitive_type (pointer_declarator "*c" * identifier)) , (parameter_declaration "void *d" primitive_type (pointer_declarator "*d" * identifier)) ))) (compound_statement "{\n  if (a == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\n  }\n  if (b == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }\n  if (c == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }\n  if (d != (void *)0x0) {\n    __gmpz_powm(d,a,b,c);\n    return 0;\n  }\n                    /* WARNING: Subroutine does not return */\n  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);\n}" { (if_statement "if (a == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\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",0x1b4);\n  }" { comment (expression_statement "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);" (call_expression "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4)" identifier (argument_list "("a != NULL","src/math/gmp_desc.c",0x1b4)" ( (string_literal ""a != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (b == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\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                    /* WARNING: Subroutine does not return */\n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }" { comment (expression_statement "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);" (call_expression "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5)" identifier (argument_list "("b != NULL","src/math/gmp_desc.c",0x1b5)" ( (string_literal ""b != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (c == (void *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }" if (parenthesized_expression "(c == (void *)0x0)" ( (binary_expression "c == (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("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }" { comment (expression_statement "crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);" (call_expression "crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6)" identifier (argument_list "("c != NULL","src/math/gmp_desc.c",0x1b6)" ( (string_literal ""c != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (d != (void *)0x0) {\n    __gmpz_powm(d,a,b,c);\n    return 0;\n  }" if (parenthesized_expression "(d != (void *)0x0)" ( (binary_expression "d != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    __gmpz_powm(d,a,b,c);\n    return 0;\n  }" { (expression_statement "__gmpz_powm(d,a,b,c);" (call_expression "__gmpz_powm(d,a,b,c)" identifier (argument_list "(d,a,b,c)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) comment (expression_statement "crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);" (call_expression "crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7)" identifier (argument_list "("d != NULL","src/math/gmp_desc.c",0x1b7)" ( (string_literal ""d != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })))
(translation_unit "undefined8 FUN_00160140(long param_1,long param_2,long param_3,long param_4)\n\n{\n  if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }\n  if (param_4 != 0) {\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }\n                    \n  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);\n}\n\n" (function_definition "undefined8 FUN_00160140(long param_1,long param_2,long param_3,long param_4)\n\n{\n  if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }\n  if (param_4 != 0) {\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }\n                    \n  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);\n}" type_identifier (function_declarator "FUN_00160140(long param_1,long param_2,long param_3,long param_4)" identifier (parameter_list "(long param_1,long param_2,long param_3,long param_4)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }\n  if (param_4 != 0) {\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }\n                    \n  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);\n}" { (if_statement "if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\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",0x1b4);\n  }" { (expression_statement "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);" (call_expression "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4)" identifier (argument_list "("a != NULL","src/math/gmp_desc.c",0x1b4)" ( (string_literal ""a != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_2 == 0) {\n                    \n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }" { (expression_statement "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);" (call_expression "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5)" identifier (argument_list "("b != NULL","src/math/gmp_desc.c",0x1b5)" ( (string_literal ""b != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_3 == 0) {\n                    \n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }" { (expression_statement "crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);" (call_expression "crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6)" identifier (argument_list "("c != NULL","src/math/gmp_desc.c",0x1b6)" ( (string_literal ""c != NULL"" " string_content ") , (string_literal ""src/math/gmp_desc.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_4 != 0) {\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }" { (expression_statement "__gmpz_powm(param_4,param_1,param_2,param_3);" (call_expression "__gmpz_powm(param_4,param_1,param_2,param_3)" identifier (argument_list "(param_4,param_1,param_2,param_3)" ( identifier , identifier , identifier , identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);" (call_expression "crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7)" identifier (argument_list "("d != NULL","src/math/gmp_desc.c",0x1b7)" ( (string_literal ""d != 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) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (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 (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 (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 (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })))
(function_definition "undefined8 FUN_00160140(long param_1,long param_2,long param_3,long param_4)\n\n{\n  if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }\n  if (param_4 != 0) {\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }\n                    \n  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);\n}" (type_identifier "undefined8") (function_declarator "FUN_00160140(long param_1,long param_2,long param_3,long param_4)" (identifier "FUN_00160140") (parameter_list "(long param_1,long param_2,long param_3,long param_4)" (( "(") (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")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) () ")"))) (compound_statement "{\n  if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\n  }\n  if (param_2 == 0) {\n                    \n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }\n  if (param_4 != 0) {\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }\n                    \n  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);\n}" ({ "{") (if_statement "if (param_1 == 0) {\n                    \n    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);\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",0x1b4);\n  }" ({ "{") (expression_statement "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);" (call_expression "crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4)" (identifier "crypt_argchk") (argument_list "("a != NULL","src/math/gmp_desc.c",0x1b4)" (( "(") (string_literal ""a != NULL"" (" """) (string_content "a != NULL") (" """)) (, ",") (string_literal ""src/math/gmp_desc.c"" (" """) (string_content "src/math/gmp_desc.c") (" """)) (, ",") (number_literal "0x1b4") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 == 0) {\n                    \n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);\n  }" ({ "{") (expression_statement "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);" (call_expression "crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5)" (identifier "crypt_argchk") (argument_list "("b != NULL","src/math/gmp_desc.c",0x1b5)" (( "(") (string_literal ""b != NULL"" (" """) (string_content "b != NULL") (" """)) (, ",") (string_literal ""src/math/gmp_desc.c"" (" """) (string_content "src/math/gmp_desc.c") (" """)) (, ",") (number_literal "0x1b5") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3 == 0) {\n                    \n    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);\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("c != NULL","src/math/gmp_desc.c",0x1b6);\n  }" ({ "{") (expression_statement "crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);" (call_expression "crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6)" (identifier "crypt_argchk") (argument_list "("c != NULL","src/math/gmp_desc.c",0x1b6)" (( "(") (string_literal ""c != NULL"" (" """) (string_content "c != NULL") (" """)) (, ",") (string_literal ""src/math/gmp_desc.c"" (" """) (string_content "src/math/gmp_desc.c") (" """)) (, ",") (number_literal "0x1b6") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_4 != 0) {\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    __gmpz_powm(param_4,param_1,param_2,param_3);\n    return 0;\n  }" ({ "{") (expression_statement "__gmpz_powm(param_4,param_1,param_2,param_3);" (call_expression "__gmpz_powm(param_4,param_1,param_2,param_3)" (identifier "__gmpz_powm") (argument_list "(param_4,param_1,param_2,param_3)" (( "(") (identifier "param_4") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);" (call_expression "crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7)" (identifier "crypt_argchk") (argument_list "("d != NULL","src/math/gmp_desc.c",0x1b7)" (( "(") (string_literal ""d != NULL"" (" """) (string_content "d != NULL") (" """)) (, ",") (string_literal ""src/math/gmp_desc.c"" (" """) (string_content "src/math/gmp_desc.c") (" """)) (, ",") (number_literal "0x1b7") () ")"))) (; ";")) (} "}")))

int function_1(void *var_1,void *var_3,void *var_4,void *var_5)

{
  if (var_1 == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("a != NULL","src/math/gmp_desc.c",0x1b4);
  }
  if (var_3 == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("b != NULL","src/math/gmp_desc.c",0x1b5);
  }
  if (var_4 == (void *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_2("c != NULL","src/math/gmp_desc.c",0x1b6);
  }
  if (var_5 != (void *)0x0) {
    var_6(var_5,var_1,var_3,var_4);
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  var_2("d != NULL","src/math/gmp_desc.c",0x1b7);
}


(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)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (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 (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 (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 (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier)))) (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (string_literal (string_content)) (number_literal)))))))

undefined8 MASKED(long param_1,long param_2,long param_3,long param_4)

{
  if (param_1 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("a != NULL","src/math/gmp_desc.c",0x1b4);
  }
  if (param_2 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("b != NULL","src/math/gmp_desc.c",0x1b5);
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("c != NULL","src/math/gmp_desc.c",0x1b6);
  }
  if (param_4 != 0) {
    __gmpz_powm(param_4,param_1,param_2,param_3);
    return 0;
  }
                    /* WARNING: Subroutine does not return */
  crypt_argchk("d != NULL","src/math/gmp_desc.c",0x1b7);
}

