
istream * operator>>(istream *i,mpz_ptr z)

{
  ctype *pcVar1;
  int *piVar2;
  istream *piVar3;
  int in_GS_OFFSET;
  char c;
  locale local_24;
  int local_20;
  
  __x86_get_pc_thunk_di();
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  std::istream::get((char *)i);
  if (((byte)i[*(int *)(*(int *)i + -0xc) + 0xd] & 0x10) != 0) {
    std::locale::locale(&local_24,(locale *)(i + *(int *)(*(int *)i + -0xc) + 0x6c));
                    /* try { // try from 00013f80 to 00013f84 has its CatchHandler @ 0001400b */
    pcVar1 = std::use_facet<std::ctype<char>>(&local_24);
    std::locale::~locale(&local_24);
    do {
      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;
      piVar2 = (int *)std::istream::get((char *)i);
    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);
  }
  piVar3 = __gmpz_operator_in_nowhite(i,z,'\0');
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return piVar3;
}



/* TEMPNAMEPLACEHOLDERVALUE(std::istream&, __mpz_struct*) */

void operator>>(istream *param_1,__mpz_struct *param_2)

{
  ctype *pcVar1;
  int *piVar2;
  int in_GS_OFFSET;
  locale local_24 [4];
  int local_20;
  
  FUN_00013e0a();
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  std::istream::get((char *)param_1);
  if (((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0) {
    std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));
                    /* try { // try from 00013f80 to 00013f84 has its CatchHandler @ 0001400b */
    pcVar1 = std::use_facet<std::ctype<char>>(local_24);
    std::locale::~locale(local_24);
    do {
      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;
      piVar2 = (int *)std::istream::get((char *)param_1);
    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);
  }
  __gmpz_operator_in_nowhite(param_1,param_2,'\0');
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00014700();
  }
  return;
}


PUSH EBP
MOV EBP,ESP
PUSH EDI
CALL 0x00013e0a
ADD EDI,0x30e7
PUSH ESI
PUSH EBX
SUB ESP,0x34
MOV EAX,dword ptr [EBP + 0xc]
MOV ESI,dword ptr [EBP + 0x8]
MOV dword ptr [EBP + -0x2c],EDI
MOV EBX,EDI
MOV dword ptr [EBP + -0x38],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [EBP + -0x1c],EAX
XOR EAX,EAX
LEA EAX,[EBP + -0x21]
MOV byte ptr [EBP + -0x21],0x0
PUSH EAX
PUSH ESI
MOV dword ptr [EBP + -0x30],EAX
CALL 0x000131d0
MOV EAX,dword ptr [ESI]
ADD ESP,0x10
MOV EBX,dword ptr [EAX + -0xc]
ADD EBX,ESI
TEST byte ptr [EBX + 0xd],0x10
JZ 0x00014000
MOV EAX,EBX
SUB ESP,0x8
LEA ECX,[EBP + -0x20]
MOV EBX,EDI
ADD EAX,0x6c
MOV dword ptr [EBP + -0x34],ECX
PUSH EAX
PUSH ECX
CALL 0x000130b0
POP EDX
PUSH dword ptr [EBP + -0x34]
MOV dword ptr [EBP + -0x2c],EDI
CALL 0x00013060
MOV EDI,EAX
POP EAX
MOV EBX,dword ptr [EBP + -0x2c]
PUSH dword ptr [EBP + -0x34]
CALL 0x000131e0
ADD ESP,0x10
JMP 0x00013fbe
SUB ESP,0x8
PUSH dword ptr [EBP + -0x30]
MOV EBX,dword ptr [EBP + -0x2c]
PUSH ESI
CALL 0x000131d0
ADD ESP,0x10
MOV EDX,dword ptr [EAX]
MOV EDX,dword ptr [EDX + -0xc]
TEST byte ptr [EAX + EDX*0x1 + 0x14],0x5
JNZ 0x00014000
MOVZX ECX,byte ptr [EBP + -0x21]
MOV EDX,dword ptr [EDI + 0x18]
MOV EAX,ECX
TEST byte ptr [EDX + ECX*0x2 + 0x1],0x20
JNZ 0x00013fa0
SUB ESP,0x4
MOVSX EAX,AL
MOV EBX,dword ptr [EBP + -0x2c]
PUSH EAX
PUSH dword ptr [EBP + -0x38]
PUSH ESI
CALL 0x00013040
ADD ESP,0x10
MOV EBX,dword ptr [EBP + -0x1c]
XOR EBX,dword ptr GS:[0x14]
JNZ 0x00014006
LEA ESP,[EBP + -0xc]
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOVZX EAX,byte ptr [EBP + -0x21]
JMP 0x00013fce
CALL 0x00014700
(translation_unit "/* TEMPNAMEPLACEHOLDERVALUE(std::istream&, __mpz_struct*) */\n\nvoid operator>>(istream *param_1,__mpz_struct *param_2)\n\n{\n  ctype *pcVar1;\n  int *piVar2;\n  int in_GS_OFFSET;\n  locale local_24 [4];\n  int local_20;\n  \n  FUN_00013e0a();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  std::istream::get((char *)param_1);\n  if (((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0) {\n    std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));\n                    /* try { // try from 00013f80 to 00013f84 has its CatchHandler @ 0001400b */\n    pcVar1 = std::use_facet<std::ctype<char>>(local_24);\n    std::locale::~locale(local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }\n  __gmpz_operator_in_nowhite(param_1,param_2,'\0');\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00014700();\n  }\n  return;\n}\n\n" comment (declaration "void operator>>(istream *param_1,__mpz_struct *param_2)\n\n{\n  ctype *pcVar1;" primitive_type (ERROR "operator>>(istream" identifier >> ( identifier) (pointer_declarator "*param_1" * identifier) , (ERROR "__mpz_struct *param_2)\n\n{\n  ctype" identifier (pointer_declarator "*param_2" * identifier) ) { identifier) (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "locale local_24 [4];" type_identifier (array_declarator "local_24 [4]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "FUN_00013e0a();" (call_expression "FUN_00013e0a()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (labeled_statement "std::istream::get((char *)param_1);" statement_identifier : (ERROR ":" :) (labeled_statement "istream::get((char *)param_1);" statement_identifier : (ERROR ":" :) (expression_statement "get((char *)param_1);" (call_expression "get((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) (if_statement "if (((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0) {\n    std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));\n                    /* try { // try from 00013f80 to 00013f84 has its CatchHandler @ 0001400b */\n    pcVar1 = std::use_facet<std::ctype<char>>(local_24);\n    std::locale::~locale(local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }" if (parenthesized_expression "(((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0)" ( (binary_expression "((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0" (parenthesized_expression "((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10)" ( (binary_expression "(byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10" (cast_expression "(byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd]" identifier [ (binary_expression "*(int *)(*(int *)param_1 + -0xc) + 0xd" (pointer_expression "*(int *)(*(int *)param_1 + -0xc)" * (cast_expression "(int *)(*(int *)param_1 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + -0xc)" ( (binary_expression "*(int *)param_1 + -0xc" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ])) & number_literal) )) != number_literal) )) (compound_statement "{\n    std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));\n                    /* try { // try from 00013f80 to 00013f84 has its CatchHandler @ 0001400b */\n    pcVar1 = std::use_facet<std::ctype<char>>(local_24);\n    std::locale::~locale(local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }" { (labeled_statement "std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));" statement_identifier : (ERROR ":" :) (labeled_statement "locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));" statement_identifier : (ERROR ":" :) (expression_statement "locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));" (call_expression "locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c))" identifier (argument_list "(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c))" ( identifier , (cast_expression "(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c)" ( (binary_expression "param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c" (binary_expression "param_1 + *(int *)(*(int *)param_1 + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)param_1 + -0xc)" * (cast_expression "(int *)(*(int *)param_1 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + -0xc)" ( (binary_expression "*(int *)param_1 + -0xc" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) + number_literal) ))) ))) ;))) comment (expression_statement "pcVar1 = std::use_facet<std::ctype<char>>(local_24);" (binary_expression "pcVar1 = std::use_facet<std::ctype<char>>(local_24)" (binary_expression "pcVar1 = std::use_facet<std" (assignment_expression "pcVar1 = std" identifier = identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::ctype" : : identifier) < (binary_expression "char>>(local_24)" identifier >> (parenthesized_expression "(local_24)" ( identifier )))) ;) (labeled_statement "std::locale::~locale(local_24);" statement_identifier : (ERROR ":" :) (labeled_statement "locale::~locale(local_24);" statement_identifier : (ERROR ":" :) (expression_statement "~locale(local_24);" (unary_expression "~locale(local_24)" ~ (call_expression "locale(local_24)" identifier (argument_list "(local_24)" ( identifier )))) ;))) (do_statement "do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);" do (compound_statement "{\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    }" { (if_statement "if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;" if (parenthesized_expression "((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20)" ( (binary_expression "*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20" (pointer_expression "*(byte *)(*(int *)(pcVar1 + 0x18) + 1)" * (cast_expression "(byte *)(*(int *)(pcVar1 + 0x18) + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar1 + 0x18) + 1)" ( (binary_expression "*(int *)(pcVar1 + 0x18) + 1" (pointer_expression "*(int *)(pcVar1 + 0x18)" * (cast_expression "(int *)(pcVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x18)" ( (binary_expression "pcVar1 + 0x18" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (ERROR "piVar2 = (int *)std::" (assignment_expression "piVar2 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "istream::get((char *)param_1);" statement_identifier : (ERROR ":" :) (expression_statement "get((char *)param_1);" (call_expression "get((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) }) while (parenthesized_expression "((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0)" ( (binary_expression "(*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0" (parenthesized_expression "(*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5)" ( (binary_expression "*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5" (pointer_expression "*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" * (cast_expression "(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" ( (binary_expression "(int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14" (binary_expression "(int)piVar2 + *(int *)(*piVar2 + -0xc)" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(*piVar2 + -0xc)" * (cast_expression "(int *)(*piVar2 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar2 + -0xc)" ( (binary_expression "*piVar2 + -0xc" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) + number_literal) )))) & number_literal) )) == number_literal) )) ;) })) (expression_statement "__gmpz_operator_in_nowhite(param_1,param_2,'\0');" (call_expression "__gmpz_operator_in_nowhite(param_1,param_2,'\0')" identifier (argument_list "(param_1,param_2,'\0')" ( identifier , identifier , (char_literal "'\0'" ' escape_sequence ') ))) ;) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00014700();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00014700();\n  }" { comment (expression_statement "FUN_00014700();" (call_expression "FUN_00014700()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit "istream * operator>>(istream *i,mpz_ptr z)\n\n{\n  ctype *pcVar1;\n  int *piVar2;\n  istream *piVar3;\n  int in_GS_OFFSET;\n  char c;\n  locale local_24;\n  int local_20;\n  \n  __x86_get_pc_thunk_di();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  std::istream::get((char *)i);\n  if (((byte)i[*(int *)(*(int *)i + -0xc) + 0xd] & 0x10) != 0) {\n    std::locale::locale(&local_24,(locale *)(i + *(int *)(*(int *)i + -0xc) + 0x6c));\n                    /* try { // try from 00013f80 to 00013f84 has its CatchHandler @ 0001400b */\n    pcVar1 = std::use_facet<std::ctype<char>>(&local_24);\n    std::locale::~locale(&local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)i);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }\n  piVar3 = __gmpz_operator_in_nowhite(i,z,'\0');\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return piVar3;\n}\n\n" (ERROR "istream * operator>>(istream *i,mpz_ptr z)" (binary_expression "istream * operator>>(istream *i,mpz_ptr z)" (binary_expression "istream * operator" identifier * identifier) >> (parenthesized_expression "(istream *i,mpz_ptr z)" ( (comma_expression "istream *i,mpz_ptr" (binary_expression "istream *i" identifier * identifier) , identifier) (ERROR "z" identifier) )))) (compound_statement "{\n  ctype *pcVar1;\n  int *piVar2;\n  istream *piVar3;\n  int in_GS_OFFSET;\n  char c;\n  locale local_24;\n  int local_20;\n  \n  __x86_get_pc_thunk_di();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  std::istream::get((char *)i);\n  if (((byte)i[*(int *)(*(int *)i + -0xc) + 0xd] & 0x10) != 0) {\n    std::locale::locale(&local_24,(locale *)(i + *(int *)(*(int *)i + -0xc) + 0x6c));\n                    /* try { // try from 00013f80 to 00013f84 has its CatchHandler @ 0001400b */\n    pcVar1 = std::use_facet<std::ctype<char>>(&local_24);\n    std::locale::~locale(&local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)i);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }\n  piVar3 = __gmpz_operator_in_nowhite(i,z,'\0');\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return piVar3;\n}" { (declaration "ctype *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "istream *piVar3;" type_identifier (pointer_declarator "*piVar3" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char c;" primitive_type identifier ;) (declaration "locale local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "__x86_get_pc_thunk_di();" (call_expression "__x86_get_pc_thunk_di()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (labeled_statement "std::istream::get((char *)i);" statement_identifier : (ERROR ":" :) (labeled_statement "istream::get((char *)i);" statement_identifier : (ERROR ":" :) (expression_statement "get((char *)i);" (call_expression "get((char *)i)" identifier (argument_list "((char *)i)" ( (cast_expression "(char *)i" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) (if_statement "if (((byte)i[*(int *)(*(int *)i + -0xc) + 0xd] & 0x10) != 0) {\n    std::locale::locale(&local_24,(locale *)(i + *(int *)(*(int *)i + -0xc) + 0x6c));\n                    /* try { // try from 00013f80 to 00013f84 has its CatchHandler @ 0001400b */\n    pcVar1 = std::use_facet<std::ctype<char>>(&local_24);\n    std::locale::~locale(&local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)i);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }" if (parenthesized_expression "(((byte)i[*(int *)(*(int *)i + -0xc) + 0xd] & 0x10) != 0)" ( (binary_expression "((byte)i[*(int *)(*(int *)i + -0xc) + 0xd] & 0x10) != 0" (parenthesized_expression "((byte)i[*(int *)(*(int *)i + -0xc) + 0xd] & 0x10)" ( (binary_expression "(byte)i[*(int *)(*(int *)i + -0xc) + 0xd] & 0x10" (cast_expression "(byte)i[*(int *)(*(int *)i + -0xc) + 0xd]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "i[*(int *)(*(int *)i + -0xc) + 0xd]" identifier [ (binary_expression "*(int *)(*(int *)i + -0xc) + 0xd" (pointer_expression "*(int *)(*(int *)i + -0xc)" * (cast_expression "(int *)(*(int *)i + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)i + -0xc)" ( (binary_expression "*(int *)i + -0xc" (pointer_expression "*(int *)i" * (cast_expression "(int *)i" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ])) & number_literal) )) != number_literal) )) (compound_statement "{\n    std::locale::locale(&local_24,(locale *)(i + *(int *)(*(int *)i + -0xc) + 0x6c));\n                    /* try { // try from 00013f80 to 00013f84 has its CatchHandler @ 0001400b */\n    pcVar1 = std::use_facet<std::ctype<char>>(&local_24);\n    std::locale::~locale(&local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)i);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }" { (labeled_statement "std::locale::locale(&local_24,(locale *)(i + *(int *)(*(int *)i + -0xc) + 0x6c));" statement_identifier : (ERROR ":" :) (labeled_statement "locale::locale(&local_24,(locale *)(i + *(int *)(*(int *)i + -0xc) + 0x6c));" statement_identifier : (ERROR ":" :) (expression_statement "locale(&local_24,(locale *)(i + *(int *)(*(int *)i + -0xc) + 0x6c));" (call_expression "locale(&local_24,(locale *)(i + *(int *)(*(int *)i + -0xc) + 0x6c))" identifier (argument_list "(&local_24,(locale *)(i + *(int *)(*(int *)i + -0xc) + 0x6c))" ( (pointer_expression "&local_24" & identifier) , (cast_expression "(locale *)(i + *(int *)(*(int *)i + -0xc) + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(i + *(int *)(*(int *)i + -0xc) + 0x6c)" ( (binary_expression "i + *(int *)(*(int *)i + -0xc) + 0x6c" (binary_expression "i + *(int *)(*(int *)i + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)i + -0xc)" * (cast_expression "(int *)(*(int *)i + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)i + -0xc)" ( (binary_expression "*(int *)i + -0xc" (pointer_expression "*(int *)i" * (cast_expression "(int *)i" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) + number_literal) ))) ))) ;))) comment (expression_statement "pcVar1 = std::use_facet<std::ctype<char>>(&local_24);" (binary_expression "pcVar1 = std::use_facet<std::ctype<char>>(&local_24)" (binary_expression "pcVar1 = std::use_facet<std" (assignment_expression "pcVar1 = std" identifier = identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::ctype" : : identifier) < (binary_expression "char>>(&local_24)" identifier >> (parenthesized_expression "(&local_24)" ( (pointer_expression "&local_24" & identifier) )))) ;) (labeled_statement "std::locale::~locale(&local_24);" statement_identifier : (ERROR ":" :) (labeled_statement "locale::~locale(&local_24);" statement_identifier : (ERROR ":" :) (expression_statement "~locale(&local_24);" (unary_expression "~locale(&local_24)" ~ (call_expression "locale(&local_24)" identifier (argument_list "(&local_24)" ( (pointer_expression "&local_24" & identifier) )))) ;))) (do_statement "do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)i);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);" do (compound_statement "{\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)i);\n    }" { (if_statement "if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;" if (parenthesized_expression "((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20)" ( (binary_expression "*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20" (pointer_expression "*(byte *)(*(int *)(pcVar1 + 0x18) + 1)" * (cast_expression "(byte *)(*(int *)(pcVar1 + 0x18) + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar1 + 0x18) + 1)" ( (binary_expression "*(int *)(pcVar1 + 0x18) + 1" (pointer_expression "*(int *)(pcVar1 + 0x18)" * (cast_expression "(int *)(pcVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x18)" ( (binary_expression "pcVar1 + 0x18" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (ERROR "piVar2 = (int *)std::" (assignment_expression "piVar2 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "istream::get((char *)i);" statement_identifier : (ERROR ":" :) (expression_statement "get((char *)i);" (call_expression "get((char *)i)" identifier (argument_list "((char *)i)" ( (cast_expression "(char *)i" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) }) while (parenthesized_expression "((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0)" ( (binary_expression "(*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0" (parenthesized_expression "(*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5)" ( (binary_expression "*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5" (pointer_expression "*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" * (cast_expression "(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" ( (binary_expression "(int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14" (binary_expression "(int)piVar2 + *(int *)(*piVar2 + -0xc)" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(*piVar2 + -0xc)" * (cast_expression "(int *)(*piVar2 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar2 + -0xc)" ( (binary_expression "*piVar2 + -0xc" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) + number_literal) )))) & number_literal) )) == number_literal) )) ;) })) (expression_statement "piVar3 = __gmpz_operator_in_nowhite(i,z,'\0');" (assignment_expression "piVar3 = __gmpz_operator_in_nowhite(i,z,'\0')" identifier = (call_expression "__gmpz_operator_in_nowhite(i,z,'\0')" identifier (argument_list "(i,z,'\0')" ( identifier , identifier , (char_literal "'\0'" ' escape_sequence ') )))) ;) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return piVar3;" return identifier ;) }))
(translation_unit "void operator>>(istream *param_1,__mpz_struct *param_2)\n\n{\n  ctype *pcVar1;\n  int *piVar2;\n  int in_GS_OFFSET;\n  locale local_24 [4];\n  int local_20;\n  \n  FUN_00013e0a();\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  std::istream::get((char *)param_1);\n  if (((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0) {\n    std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));\n                    \n    pcVar1 = std::use_facet<std::ctype<char>>(local_24);\n    std::locale::~locale(local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }\n  __gmpz_operator_in_nowhite(param_1,param_2,'\0');\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014700();\n  }\n  return;\n}\n\n" (declaration "void operator>>(istream *param_1,__mpz_struct *param_2)\n\n{\n  ctype *pcVar1;" primitive_type (ERROR "operator>>(istream" identifier >> ( identifier) (pointer_declarator "*param_1" * identifier) , (ERROR "__mpz_struct *param_2)\n\n{\n  ctype" identifier (pointer_declarator "*param_2" * identifier) ) { identifier) (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "locale local_24 [4];" type_identifier (array_declarator "local_24 [4]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "FUN_00013e0a();" (call_expression "FUN_00013e0a()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (labeled_statement "std::istream::get((char *)param_1);" statement_identifier : (ERROR ":" :) (labeled_statement "istream::get((char *)param_1);" statement_identifier : (ERROR ":" :) (expression_statement "get((char *)param_1);" (call_expression "get((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;))) (if_statement "if (((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0) {\n    std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));\n                    \n    pcVar1 = std::use_facet<std::ctype<char>>(local_24);\n    std::locale::~locale(local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }" if (parenthesized_expression "(((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0)" ( (binary_expression "((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0" (parenthesized_expression "((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10)" ( (binary_expression "(byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10" (cast_expression "(byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd]" identifier [ (binary_expression "*(int *)(*(int *)param_1 + -0xc) + 0xd" (pointer_expression "*(int *)(*(int *)param_1 + -0xc)" * (cast_expression "(int *)(*(int *)param_1 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + -0xc)" ( (binary_expression "*(int *)param_1 + -0xc" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) + number_literal) ])) & number_literal) )) != number_literal) )) (compound_statement "{\n    std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));\n                    \n    pcVar1 = std::use_facet<std::ctype<char>>(local_24);\n    std::locale::~locale(local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }" { (labeled_statement "std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));" statement_identifier : (ERROR ":" :) (labeled_statement "locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));" statement_identifier : (ERROR ":" :) (expression_statement "locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));" (call_expression "locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c))" identifier (argument_list "(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c))" ( identifier , (cast_expression "(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c)" ( (type_descriptor "locale *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c)" ( (binary_expression "param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c" (binary_expression "param_1 + *(int *)(*(int *)param_1 + -0xc)" identifier + (pointer_expression "*(int *)(*(int *)param_1 + -0xc)" * (cast_expression "(int *)(*(int *)param_1 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)param_1 + -0xc)" ( (binary_expression "*(int *)param_1 + -0xc" (pointer_expression "*(int *)param_1" * (cast_expression "(int *)param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) + number_literal) ))) ))) ;))) (expression_statement "pcVar1 = std::use_facet<std::ctype<char>>(local_24);" (binary_expression "pcVar1 = std::use_facet<std::ctype<char>>(local_24)" (binary_expression "pcVar1 = std::use_facet<std" (assignment_expression "pcVar1 = std" identifier = identifier) (ERROR "::use_facet" : : identifier) < identifier) (ERROR "::ctype" : : identifier) < (binary_expression "char>>(local_24)" identifier >> (parenthesized_expression "(local_24)" ( identifier )))) ;) (labeled_statement "std::locale::~locale(local_24);" statement_identifier : (ERROR ":" :) (labeled_statement "locale::~locale(local_24);" statement_identifier : (ERROR ":" :) (expression_statement "~locale(local_24);" (unary_expression "~locale(local_24)" ~ (call_expression "locale(local_24)" identifier (argument_list "(local_24)" ( identifier )))) ;))) (do_statement "do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);" do (compound_statement "{\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    }" { (if_statement "if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;" if (parenthesized_expression "((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0)" ( (binary_expression "(*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20)" ( (binary_expression "*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20" (pointer_expression "*(byte *)(*(int *)(pcVar1 + 0x18) + 1)" * (cast_expression "(byte *)(*(int *)(pcVar1 + 0x18) + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar1 + 0x18) + 1)" ( (binary_expression "*(int *)(pcVar1 + 0x18) + 1" (pointer_expression "*(int *)(pcVar1 + 0x18)" * (cast_expression "(int *)(pcVar1 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar1 + 0x18)" ( (binary_expression "pcVar1 + 0x18" identifier + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) (ERROR "piVar2 = (int *)std::" (assignment_expression "piVar2 = (int *)std" identifier = (cast_expression "(int *)std" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) : :) (labeled_statement "istream::get((char *)param_1);" statement_identifier : (ERROR ":" :) (expression_statement "get((char *)param_1);" (call_expression "get((char *)param_1)" identifier (argument_list "((char *)param_1)" ( (cast_expression "(char *)param_1" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) }) while (parenthesized_expression "((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0)" ( (binary_expression "(*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0" (parenthesized_expression "(*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5)" ( (binary_expression "*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5" (pointer_expression "*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" * (cast_expression "(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" ( (binary_expression "(int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14" (binary_expression "(int)piVar2 + *(int *)(*piVar2 + -0xc)" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)(*piVar2 + -0xc)" * (cast_expression "(int *)(*piVar2 + -0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar2 + -0xc)" ( (binary_expression "*piVar2 + -0xc" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) + number_literal) )))) & number_literal) )) == number_literal) )) ;) })) (expression_statement "__gmpz_operator_in_nowhite(param_1,param_2,'\0');" (call_expression "__gmpz_operator_in_nowhite(param_1,param_2,'\0')" identifier (argument_list "(param_1,param_2,'\0')" ( identifier , identifier , (char_literal "'\0'" ' escape_sequence ') ))) ;) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014700();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_00014700();\n  }" { (expression_statement "FUN_00014700();" (call_expression "FUN_00014700()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return;" return ;) (ERROR "}" }))
(translation_unit (declaration TYPE (ERROR IDENT >> ( IDENT) (pointer_declarator * IDENT) , (ERROR IDENT (pointer_declarator * IDENT) ) { IDENT) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) + LIT) ])) & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) + LIT) ))) ))) ;))) (expression_statement (binary_expression (binary_expression (assignment_expression IDENT = IDENT) (ERROR : : IDENT) < IDENT) (ERROR : : IDENT) < (binary_expression IDENT >> (parenthesized_expression ( IDENT )))) ;) (labeled_statement statement_identifier : (ERROR :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (unary_expression ~ (call_expression IDENT (argument_list ( IDENT )))) ;))) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) & LIT) )) == LIT) )) (break_statement break ;)) (ERROR (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) : :) (labeled_statement statement_identifier : (ERROR :) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;)) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) + LIT) )))) & LIT) )) == LIT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (char_literal ' escape_sequence ') ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return ;) (ERROR }))
(declaration "void operator>>(istream *param_1,__mpz_struct *param_2)\n\n{\n  ctype *pcVar1;" (primitive_type "void") (ERROR "operator>>(istream" (identifier "operator") (>> ">>") (( "(") (identifier "istream")) (pointer_declarator "*param_1" (* "*") (identifier "param_1")) (, ",") (ERROR "__mpz_struct *param_2)\n\n{\n  ctype" (identifier "__mpz_struct") (pointer_declarator "*param_2" (* "*") (identifier "param_2")) () ")") ({ "{") (identifier "ctype")) (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "locale local_24 [4];" (type_identifier "locale") (array_declarator "local_24 [4]" (identifier "local_24") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "FUN_00013e0a();" (call_expression "FUN_00013e0a()" (identifier "FUN_00013e0a") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (labeled_statement "std::istream::get((char *)param_1);" (statement_identifier "std") (: ":") (ERROR ":" (: ":")) (labeled_statement "istream::get((char *)param_1);" (statement_identifier "istream") (: ":") (ERROR ":" (: ":")) (expression_statement "get((char *)param_1);" (call_expression "get((char *)param_1)" (identifier "get") (argument_list "((char *)param_1)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) () ")"))) (; ";")))) (if_statement "if (((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0) {\n    std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));\n                    \n    pcVar1 = std::use_facet<std::ctype<char>>(local_24);\n    std::locale::~locale(local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }" (if "if") (parenthesized_expression "(((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0)" (( "(") (binary_expression "((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0" (parenthesized_expression "((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10)" (( "(") (binary_expression "(byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10" (cast_expression "(byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd]" (identifier "param_1") ([ "[") (binary_expression "*(int *)(*(int *)param_1 + -0xc) + 0xd" (pointer_expression "*(int *)(*(int *)param_1 + -0xc)" (* "*") (cast_expression "(int *)(*(int *)param_1 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_1 + -0xc)" (( "(") (binary_expression "*(int *)param_1 + -0xc" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (+ "+") (number_literal "-0xc")) () ")")))) (+ "+") (number_literal "0xd")) (] "]"))) (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));\n                    \n    pcVar1 = std::use_facet<std::ctype<char>>(local_24);\n    std::locale::~locale(local_24);\n    do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);\n  }" ({ "{") (labeled_statement "std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));" (statement_identifier "std") (: ":") (ERROR ":" (: ":")) (labeled_statement "locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));" (statement_identifier "locale") (: ":") (ERROR ":" (: ":")) (expression_statement "locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));" (call_expression "locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c))" (identifier "locale") (argument_list "(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c))" (( "(") (identifier "local_24") (, ",") (cast_expression "(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c)" (( "(") (type_descriptor "locale *" (type_identifier "locale") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c)" (( "(") (binary_expression "param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c" (binary_expression "param_1 + *(int *)(*(int *)param_1 + -0xc)" (identifier "param_1") (+ "+") (pointer_expression "*(int *)(*(int *)param_1 + -0xc)" (* "*") (cast_expression "(int *)(*(int *)param_1 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)param_1 + -0xc)" (( "(") (binary_expression "*(int *)param_1 + -0xc" (pointer_expression "*(int *)param_1" (* "*") (cast_expression "(int *)param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (+ "+") (number_literal "-0xc")) () ")"))))) (+ "+") (number_literal "0x6c")) () ")"))) () ")"))) (; ";")))) (expression_statement "pcVar1 = std::use_facet<std::ctype<char>>(local_24);" (binary_expression "pcVar1 = std::use_facet<std::ctype<char>>(local_24)" (binary_expression "pcVar1 = std::use_facet<std" (assignment_expression "pcVar1 = std" (identifier "pcVar1") (= "=") (identifier "std")) (ERROR "::use_facet" (: ":") (: ":") (identifier "use_facet")) (< "<") (identifier "std")) (ERROR "::ctype" (: ":") (: ":") (identifier "ctype")) (< "<") (binary_expression "char>>(local_24)" (identifier "char") (>> ">>") (parenthesized_expression "(local_24)" (( "(") (identifier "local_24") () ")")))) (; ";")) (labeled_statement "std::locale::~locale(local_24);" (statement_identifier "std") (: ":") (ERROR ":" (: ":")) (labeled_statement "locale::~locale(local_24);" (statement_identifier "locale") (: ":") (ERROR ":" (: ":")) (expression_statement "~locale(local_24);" (unary_expression "~locale(local_24)" (~ "~") (call_expression "locale(local_24)" (identifier "locale") (argument_list "(local_24)" (( "(") (identifier "local_24") () ")")))) (; ";")))) (do_statement "do {\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);" (do "do") (compound_statement "{\n      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;\n      piVar2 = (int *)std::istream::get((char *)param_1);\n    }" ({ "{") (if_statement "if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;" (if "if") (parenthesized_expression "((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0)" (( "(") (binary_expression "(*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0" (parenthesized_expression "(*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20)" (( "(") (binary_expression "*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20" (pointer_expression "*(byte *)(*(int *)(pcVar1 + 0x18) + 1)" (* "*") (cast_expression "(byte *)(*(int *)(pcVar1 + 0x18) + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar1 + 0x18) + 1)" (( "(") (binary_expression "*(int *)(pcVar1 + 0x18) + 1" (pointer_expression "*(int *)(pcVar1 + 0x18)" (* "*") (cast_expression "(int *)(pcVar1 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar1 + 0x18)" (( "(") (binary_expression "pcVar1 + 0x18" (identifier "pcVar1") (+ "+") (number_literal "0x18")) () ")")))) (+ "+") (number_literal "1")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (ERROR "piVar2 = (int *)std::" (assignment_expression "piVar2 = (int *)std" (identifier "piVar2") (= "=") (cast_expression "(int *)std" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "std"))) (: ":") (: ":")) (labeled_statement "istream::get((char *)param_1);" (statement_identifier "istream") (: ":") (ERROR ":" (: ":")) (expression_statement "get((char *)param_1);" (call_expression "get((char *)param_1)" (identifier "get") (argument_list "((char *)param_1)" (( "(") (cast_expression "(char *)param_1" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1")) () ")"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0)" (( "(") (binary_expression "(*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0" (parenthesized_expression "(*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5)" (( "(") (binary_expression "*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5" (pointer_expression "*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" (* "*") (cast_expression "(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14)" (( "(") (binary_expression "(int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14" (binary_expression "(int)piVar2 + *(int *)(*piVar2 + -0xc)" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (+ "+") (pointer_expression "*(int *)(*piVar2 + -0xc)" (* "*") (cast_expression "(int *)(*piVar2 + -0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar2 + -0xc)" (( "(") (binary_expression "*piVar2 + -0xc" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "-0xc")) () ")"))))) (+ "+") (number_literal "0x14")) () ")")))) (& "&") (number_literal "5")) () ")")) (== "==") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "__gmpz_operator_in_nowhite(param_1,param_2,'\0');" (call_expression "__gmpz_operator_in_nowhite(param_1,param_2,'\0')" (identifier "__gmpz_operator_in_nowhite") (argument_list "(param_1,param_2,'\0')" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")) () ")"))) (; ";")) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_00014700();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_00014700();\n  }" ({ "{") (expression_statement "FUN_00014700();" (call_expression "FUN_00014700()" (identifier "FUN_00014700") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (ERROR "}" (} "}"))

type_2 * operator>>(type_2 *var_4,mpz_ptr z)

{
  type_1 *var_7;
  int *piVar2;
  type_2 *piVar3;
  int var_2;
  char c;
  type_3 local_24;
  int var_9;
  
  var_1();
  var_9 = *(int *)(var_2 + 0x14);
  std::istream::var_3((char *)var_4);
  if (((type_4)var_4[*(int *)(*(int *)var_4 + -0xc) + 0xd] & 0x10) != 0) {
    std::locale::type_3(&local_24,(type_3 *)(var_4 + *(int *)(*(int *)var_4 + -0xc) + 0x6c));
                    /* try { // try from 00013f80 to 00013f84 has its CatchHandler @ 0001400b */
    var_7 = var_5::use_facet<var_5::type_1<var_6>>(&local_24);
    std::locale::~type_3(&local_24);
    do {
      if ((*(type_4 *)(*(int *)(var_7 + 0x18) + 1) & 0x20) == 0) break;
      piVar2 = (int *)var_5::istream::var_3((char *)var_4);
    } while ((*(type_4 *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);
  }
  piVar3 = var_8(var_4,z,'\0');
  if (var_9 != *(int *)(var_2 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_10();
  }
  return piVar3;
}


(translation_unit (declaration type: (primitive_type) (ERROR (identifier) (identifier)) declarator: (pointer_declarator declarator: (identifier)) (ERROR (identifier) (pointer_declarator declarator: (identifier)) (identifier)) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_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: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (number_literal)))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal)))))) right: (number_literal))))))))) (expression_statement (binary_expression left: (binary_expression left: (assignment_expression left: (identifier) right: (identifier)) (ERROR (identifier)) right: (identifier)) (ERROR (identifier)) right: (binary_expression left: (identifier) right: (parenthesized_expression (identifier))))) (labeled_statement label: (statement_identifier) (ERROR) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (unary_expression argument: (call_expression function: (identifier) arguments: (argument_list (identifier))))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (break_statement)) (ERROR (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) (labeled_statement label: (statement_identifier) (ERROR) (expression_statement (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal)))))) right: (number_literal))))) right: (number_literal))) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (char_literal (escape_sequence))))) (if_statement condition: (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: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (return_statement) (ERROR))

/* TEMPNAMEPLACEHOLDERVALUE(std::istream&, __mpz_struct*) */

void MASKED(istream *param_1,__mpz_struct *param_2)

{
  ctype *pcVar1;
  int *piVar2;
  int in_GS_OFFSET;
  locale local_24 [4];
  int local_20;
  
  FUN_00013e0a();
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  std::istream::get((char *)param_1);
  if (((byte)param_1[*(int *)(*(int *)param_1 + -0xc) + 0xd] & 0x10) != 0) {
    std::locale::locale(local_24,(locale *)(param_1 + *(int *)(*(int *)param_1 + -0xc) + 0x6c));
                    /* try { // try from 00013f80 to 00013f84 has its CatchHandler @ 0001400b */
    pcVar1 = std::use_facet<std::ctype<char>>(local_24);
    std::locale::~locale(local_24);
    do {
      if ((*(byte *)(*(int *)(pcVar1 + 0x18) + 1) & 0x20) == 0) break;
      piVar2 = (int *)std::istream::get((char *)param_1);
    } while ((*(byte *)((int)piVar2 + *(int *)(*piVar2 + -0xc) + 0x14) & 5) == 0);
  }
  __gmpz_operator_in_nowhite(param_1,param_2,'\0');
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_00014700();
  }
  return;
}

