
/* WARNING: Enum "gmp_randalg_t": Some values do not have unique names */

void __gmp_randseed_ui(__gmp_randstate_struct *rstate,ulong seed)

{
  long lVar1;
  long in_FS_OFFSET;
  mp_limb_t zlimbs [1];
  mpz_t zseed;
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  zseed[0]._mp_d = zlimbs;
  zseed[0]._mp_size = (int)(seed != 0);
  zlimbs[0] = seed;
  __gmp_randseed(rstate,zseed);
  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



void __gmp_randseed_ui(undefined8 param_1,long param_2)

{
  long in_FS_OFFSET;
  long local_30;
  undefined1 local_28 [4];
  uint local_24;
  long *local_20;
  long local_10;
  
  local_10 = *(long *)(in_FS_OFFSET + 0x28);
  local_20 = &local_30;
  local_24 = (uint)(param_2 != 0);
  local_30 = param_2;
  __gmp_randseed(param_1,local_28);
  if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


SUB RSP,0x38
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x28],RAX
XOR EAX,EAX
LEA RAX,[RSP + 0x8]
MOV qword ptr [RSP + 0x8],RSI
MOV qword ptr [RSP + 0x18],RAX
XOR EAX,EAX
TEST RSI,RSI
LEA RSI,[RSP + 0x10]
SETNZ AL
MOV dword ptr [RSP + 0x14],EAX
CALL 0x0010c0e0
MOV RAX,qword ptr [RSP + 0x28]
XOR RAX,qword ptr FS:[0x28]
JNZ 0x00168d7e
ADD RSP,0x38
RET
CALL 0x0010b530
(translation_unit "void __gmp_randseed_ui(undefined8 param_1,long param_2)\n\n{\n  long in_FS_OFFSET;\n  long local_30;\n  undefined1 local_28 [4];\n  uint local_24;\n  long *local_20;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  local_20 = &local_30;\n  local_24 = (uint)(param_2 != 0);\n  local_30 = param_2;\n  __gmp_randseed(param_1,local_28);\n  if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "void __gmp_randseed_ui(undefined8 param_1,long param_2)\n\n{\n  long in_FS_OFFSET;\n  long local_30;\n  undefined1 local_28 [4];\n  uint local_24;\n  long *local_20;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  local_20 = &local_30;\n  local_24 = (uint)(param_2 != 0);\n  local_30 = param_2;\n  __gmp_randseed(param_1,local_28);\n  if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "__gmp_randseed_ui(undefined8 param_1,long param_2)" identifier (parameter_list "(undefined8 param_1,long param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long in_FS_OFFSET;\n  long local_30;\n  undefined1 local_28 [4];\n  uint local_24;\n  long *local_20;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  local_20 = &local_30;\n  local_24 = (uint)(param_2 != 0);\n  local_30 = param_2;\n  __gmp_randseed(param_1,local_28);\n  if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_28 [4];" type_identifier (array_declarator "local_28 [4]" identifier [ number_literal ]) ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "long *local_20;" (sized_type_specifier "long" long) (pointer_declarator "*local_20" * identifier) ;) (declaration "long local_10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_10 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_10 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_20 = &local_30;" (assignment_expression "local_20 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "local_24 = (uint)(param_2 != 0);" (assignment_expression "local_24 = (uint)(param_2 != 0)" identifier = (call_expression "(uint)(param_2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )))) ;) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" identifier = identifier) ;) (expression_statement "__gmp_randseed(param_1,local_28);" (call_expression "__gmp_randseed(param_1,local_28)" identifier (argument_list "(param_1,local_28)" ( identifier , identifier ))) ;) (if_statement "if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_10 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_10 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Enum "gmp_randalg_t": Some values do not have unique names */\n\nvoid __gmp_randseed_ui(__gmp_randstate_struct *rstate,ulong seed)\n\n{\n  long lVar1;\n  long in_FS_OFFSET;\n  mp_limb_t zlimbs [1];\n  mpz_t zseed;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  zseed[0]._mp_d = zlimbs;\n  zseed[0]._mp_size = (int)(seed != 0);\n  zlimbs[0] = seed;\n  __gmp_randseed(rstate,zseed);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "void __gmp_randseed_ui(__gmp_randstate_struct *rstate,ulong seed)\n\n{\n  long lVar1;\n  long in_FS_OFFSET;\n  mp_limb_t zlimbs [1];\n  mpz_t zseed;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  zseed[0]._mp_d = zlimbs;\n  zseed[0]._mp_size = (int)(seed != 0);\n  zlimbs[0] = seed;\n  __gmp_randseed(rstate,zseed);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "__gmp_randseed_ui(__gmp_randstate_struct *rstate,ulong seed)" identifier (parameter_list "(__gmp_randstate_struct *rstate,ulong seed)" ( (parameter_declaration "__gmp_randstate_struct *rstate" type_identifier (pointer_declarator "*rstate" * identifier)) , (parameter_declaration "ulong seed" type_identifier identifier) ))) (compound_statement "{\n  long lVar1;\n  long in_FS_OFFSET;\n  mp_limb_t zlimbs [1];\n  mpz_t zseed;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  zseed[0]._mp_d = zlimbs;\n  zseed[0]._mp_size = (int)(seed != 0);\n  zlimbs[0] = seed;\n  __gmp_randseed(rstate,zseed);\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "mp_limb_t zlimbs [1];" type_identifier (array_declarator "zlimbs [1]" identifier [ number_literal ]) ;) (declaration "mpz_t zseed;" type_identifier identifier ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "zseed[0]._mp_d = zlimbs;" (assignment_expression "zseed[0]._mp_d = zlimbs" (field_expression "zseed[0]._mp_d" (subscript_expression "zseed[0]" identifier [ number_literal ]) . field_identifier) = identifier) ;) (expression_statement "zseed[0]._mp_size = (int)(seed != 0);" (assignment_expression "zseed[0]._mp_size = (int)(seed != 0)" (field_expression "zseed[0]._mp_size" (subscript_expression "zseed[0]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(int)(seed != 0)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(seed != 0)" ( (binary_expression "seed != 0" identifier != number_literal) )))) ;) (expression_statement "zlimbs[0] = seed;" (assignment_expression "zlimbs[0] = seed" (subscript_expression "zlimbs[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "__gmp_randseed(rstate,zseed);" (call_expression "__gmp_randseed(rstate,zseed)" identifier (argument_list "(rstate,zseed)" ( identifier , identifier ))) ;) (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void __gmp_randseed_ui(undefined8 param_1,long param_2)\n\n{\n  long in_FS_OFFSET;\n  long local_30;\n  undefined1 local_28 [4];\n  uint local_24;\n  long *local_20;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  local_20 = &local_30;\n  local_24 = (uint)(param_2 != 0);\n  local_30 = param_2;\n  __gmp_randseed(param_1,local_28);\n  if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "void __gmp_randseed_ui(undefined8 param_1,long param_2)\n\n{\n  long in_FS_OFFSET;\n  long local_30;\n  undefined1 local_28 [4];\n  uint local_24;\n  long *local_20;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  local_20 = &local_30;\n  local_24 = (uint)(param_2 != 0);\n  local_30 = param_2;\n  __gmp_randseed(param_1,local_28);\n  if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "__gmp_randseed_ui(undefined8 param_1,long param_2)" identifier (parameter_list "(undefined8 param_1,long param_2)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long in_FS_OFFSET;\n  long local_30;\n  undefined1 local_28 [4];\n  uint local_24;\n  long *local_20;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  local_20 = &local_30;\n  local_24 = (uint)(param_2 != 0);\n  local_30 = param_2;\n  __gmp_randseed(param_1,local_28);\n  if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined1 local_28 [4];" type_identifier (array_declarator "local_28 [4]" identifier [ number_literal ]) ;) (declaration "uint local_24;" type_identifier identifier ;) (declaration "long *local_20;" (sized_type_specifier "long" long) (pointer_declarator "*local_20" * identifier) ;) (declaration "long local_10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_10 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_10 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (expression_statement "local_20 = &local_30;" (assignment_expression "local_20 = &local_30" identifier = (pointer_expression "&local_30" & identifier)) ;) (expression_statement "local_24 = (uint)(param_2 != 0);" (assignment_expression "local_24 = (uint)(param_2 != 0)" identifier = (call_expression "(uint)(param_2 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )))) ;) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" identifier = identifier) ;) (expression_statement "__gmp_randseed(param_1,local_28);" (call_expression "__gmp_randseed(param_1,local_28)" identifier (argument_list "(param_1,local_28)" ( identifier , identifier ))) ;) (if_statement "if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" if (parenthesized_expression "(local_10 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_10 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void __gmp_randseed_ui(undefined8 param_1,long param_2)\n\n{\n  long in_FS_OFFSET;\n  long local_30;\n  undefined1 local_28 [4];\n  uint local_24;\n  long *local_20;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  local_20 = &local_30;\n  local_24 = (uint)(param_2 != 0);\n  local_30 = param_2;\n  __gmp_randseed(param_1,local_28);\n  if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "void") (function_declarator "__gmp_randseed_ui(undefined8 param_1,long param_2)" (identifier "__gmp_randseed_ui") (parameter_list "(undefined8 param_1,long param_2)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  long in_FS_OFFSET;\n  long local_30;\n  undefined1 local_28 [4];\n  uint local_24;\n  long *local_20;\n  long local_10;\n  \n  local_10 = *(long *)(in_FS_OFFSET + 0x28);\n  local_20 = &local_30;\n  local_24 = (uint)(param_2 != 0);\n  local_30 = param_2;\n  __gmp_randseed(param_1,local_28);\n  if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "long local_30;" (sized_type_specifier "long" (long "long")) (identifier "local_30") (; ";")) (declaration "undefined1 local_28 [4];" (type_identifier "undefined1") (array_declarator "local_28 [4]" (identifier "local_28") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint local_24;" (type_identifier "uint") (identifier "local_24") (; ";")) (declaration "long *local_20;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (declaration "long local_10;" (sized_type_specifier "long" (long "long")) (identifier "local_10") (; ";")) (expression_statement "local_10 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_10 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_10") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (expression_statement "local_20 = &local_30;" (assignment_expression "local_20 = &local_30" (identifier "local_20") (= "=") (pointer_expression "&local_30" (& "&") (identifier "local_30"))) (; ";")) (expression_statement "local_24 = (uint)(param_2 != 0);" (assignment_expression "local_24 = (uint)(param_2 != 0)" (identifier "local_24") (= "=") (call_expression "(uint)(param_2 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (expression_statement "local_30 = param_2;" (assignment_expression "local_30 = param_2" (identifier "local_30") (= "=") (identifier "param_2")) (; ";")) (expression_statement "__gmp_randseed(param_1,local_28);" (call_expression "__gmp_randseed(param_1,local_28)" (identifier "__gmp_randseed") (argument_list "(param_1,local_28)" (( "(") (identifier "param_1") (, ",") (identifier "local_28") () ")"))) (; ";")) (if_statement "if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_10 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_10 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_10") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Enum "gmp_randalg_t": Some values do not have unique names */

void function_1(type_1 *rstate,type_2 var_2)

{
  long var_4;
  long var_1;
  type_3 zlimbs [1];
  type_4 zseed;
  
  var_4 = *(long *)(var_1 + 0x28);
  zseed[0]._mp_d = zlimbs;
  zseed[0]._mp_size = (int)(var_2 != 0);
  zlimbs[0] = var_2;
  var_3(rstate,zseed);
  if (var_4 == *(long *)(var_1 + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_5();
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

void MASKED(undefined8 param_1,long param_2)

{
  long in_FS_OFFSET;
  long local_30;
  undefined1 local_28 [4];
  uint local_24;
  long *local_20;
  long local_10;
  
  local_10 = *(long *)(in_FS_OFFSET + 0x28);
  local_20 = &local_30;
  local_24 = (uint)(param_2 != 0);
  local_30 = param_2;
  __gmp_randseed(param_1,local_28);
  if (local_10 == *(long *)(in_FS_OFFSET + 0x28)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

