
/* stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::seekpos(std::fpos<__mbstate_t>,
   std::_Ios_Openmode) */

undefined1  [16]
stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>>::seekpos(long *param_1,__off64_t param_2)

{
  int iVar1;
  undefined1 auVar2 [16];
  
  if (*(code **)(*param_1 + 0x20) != (code *)PTR_seekoff_004b9e68) {
                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);
    return auVar2;
  }
  iVar1 = fseeko64((FILE *)param_1[8],param_2,0);
  if (iVar1 != 0) {
    return ZEXT816(0xffffffffffffffff);
  }
  auVar2._0_8_ = ftello64((FILE *)param_1[8]);
  auVar2._8_8_ = 0;
  return auVar2;
}



undefined1  [16] FUN_00369f10(long *param_1,__off64_t param_2)

{
  int iVar1;
  undefined1 auVar2 [16];
  
  if (*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68) {
                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);
    return auVar2;
  }
  iVar1 = fseeko64((FILE *)param_1[8],param_2,0);
  if (iVar1 != 0) {
    return ZEXT816(0xffffffffffffffff);
  }
  auVar2._0_8_ = ftello64((FILE *)param_1[8]);
  auVar2._8_8_ = 0;
  return auVar2;
}


MOV RAX,qword ptr [RDI]
MOV RAX,qword ptr [RAX + 0x20]
CMP RAX,qword ptr [0x004b9e68]
JNZ 0x00369f60
PUSH RBX
MOV RBX,RDI
MOV RDI,qword ptr [RDI + 0x40]
XOR EDX,EDX
CALL 0x001500e0
MOV RDX,-0x1
TEST EAX,EAX
JZ 0x00369f48
MOV RAX,RDX
POP RBX
XOR EDX,EDX
RET
MOV RDI,qword ptr [RBX + 0x40]
CALL 0x00150a40
POP RBX
MOV RDX,RAX
MOV RAX,RDX
XOR EDX,EDX
RET
XOR EDX,EDX
JMP RAX
(translation_unit "undefined1  [16] FUN_00369f10(long *param_1,__off64_t param_2)\n\n{\n  int iVar1;\n  undefined1 auVar2 [16];\n  \n  if (*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68) {\n                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }\n  iVar1 = fseeko64((FILE *)param_1[8],param_2,0);\n  if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }\n  auVar2._0_8_ = ftello64((FILE *)param_1[8]);\n  auVar2._8_8_ = 0;\n  return auVar2;\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (expression_statement "FUN_00369f10(long *param_1,__off64_t param_2)" (call_expression "FUN_00369f10(long *param_1,__off64_t param_2)" identifier (argument_list "(long *param_1,__off64_t param_2)" ( (binary_expression "long *param_1" identifier * identifier) , identifier (ERROR "param_2" identifier) ))) ;) (compound_statement "{\n  int iVar1;\n  undefined1 auVar2 [16];\n  \n  if (*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68) {\n                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }\n  iVar1 = fseeko64((FILE *)param_1[8],param_2,0);\n  if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }\n  auVar2._0_8_ = ftello64((FILE *)param_1[8]);\n  auVar2._8_8_ = 0;\n  return auVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 auVar2 [16];" type_identifier (array_declarator "auVar2 [16]" identifier [ number_literal ]) ;) (if_statement "if (*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68) {\n                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }" if (parenthesized_expression "(*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68)" ( (binary_expression "*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68" (pointer_expression "*(code **)(*param_1 + 0x20)" * (cast_expression "(code **)(*param_1 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) )))) != (cast_expression "(code *)PTR_FUN_004b9e68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }" { comment comment (expression_statement "auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);" (assignment_expression "auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0)" identifier = (call_expression "(**(code **)(*param_1 + 0x20))(param_1,param_2,0)" (parenthesized_expression "(**(code **)(*param_1 + 0x20))" ( (pointer_expression "**(code **)(*param_1 + 0x20)" * (pointer_expression "*(code **)(*param_1 + 0x20)" * (cast_expression "(code **)(*param_1 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal )))) ;) (return_statement "return auVar2;" return identifier ;) })) (expression_statement "iVar1 = fseeko64((FILE *)param_1[8],param_2,0);" (assignment_expression "iVar1 = fseeko64((FILE *)param_1[8],param_2,0)" identifier = (call_expression "fseeko64((FILE *)param_1[8],param_2,0)" identifier (argument_list "((FILE *)param_1[8],param_2,0)" ( (cast_expression "(FILE *)param_1[8]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) , identifier , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    return ZEXT816(0xffffffffffffffff);\n  }" { (return_statement "return ZEXT816(0xffffffffffffffff);" return (call_expression "ZEXT816(0xffffffffffffffff)" identifier (argument_list "(0xffffffffffffffff)" ( number_literal ))) ;) })) (expression_statement "auVar2._0_8_ = ftello64((FILE *)param_1[8]);" (assignment_expression "auVar2._0_8_ = ftello64((FILE *)param_1[8])" (field_expression "auVar2._0_8_" identifier . field_identifier) = (call_expression "ftello64((FILE *)param_1[8])" identifier (argument_list "((FILE *)param_1[8])" ( (cast_expression "(FILE *)param_1[8]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) )))) ;) (expression_statement "auVar2._8_8_ = 0;" (assignment_expression "auVar2._8_8_ = 0" (field_expression "auVar2._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return auVar2;" return identifier ;) }))
(translation_unit "/* stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::seekpos(std::fpos<__mbstate_t>,\n   std::_Ios_Openmode) */\n\nundefined1  [16]\nstdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>>::seekpos(long *param_1,__off64_t param_2)\n\n{\n  int iVar1;\n  undefined1 auVar2 [16];\n  \n  if (*(code **)(*param_1 + 0x20) != (code *)PTR_seekoff_004b9e68) {\n                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }\n  iVar1 = fseeko64((FILE *)param_1[8],param_2,0);\n  if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }\n  auVar2._0_8_ = ftello64((FILE *)param_1[8]);\n  auVar2._8_8_ = 0;\n  return auVar2;\n}\n\n" comment (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (ERROR "stdio_sync_filebuf<wchar_t," (binary_expression "stdio_sync_filebuf<wchar_t" identifier < identifier) ,) (labeled_statement "std::char_traits<wchar_t>>::seekpos(long *param_1,__off64_t param_2)\n\n{\n  int iVar1;\n  undefined1 auVar2 [16];\n  \n  if (*(code **)(*param_1 + 0x20) != (code *)PTR_seekoff_004b9e68) {\n                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }\n  iVar1 = fseeko64((FILE *)param_1[8],param_2,0);\n  if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }\n  auVar2._0_8_ = ftello64((FILE *)param_1[8]);\n  auVar2._8_8_ = 0;\n  return auVar2;\n}" statement_identifier : (ERROR ":char_traits<wchar_t>>::seekpos(long *param_1,__off64_t param_2)" : (binary_expression "char_traits<wchar_t>>::seekpos(long *param_1,__off64_t param_2)" identifier < (binary_expression "wchar_t>>::seekpos(long *param_1,__off64_t param_2)" identifier >> (ERROR "::" : :) (call_expression "seekpos(long *param_1,__off64_t param_2)" identifier (argument_list "(long *param_1,__off64_t param_2)" ( (binary_expression "long *param_1" identifier * identifier) , identifier (ERROR "param_2" identifier) )))))) (compound_statement "{\n  int iVar1;\n  undefined1 auVar2 [16];\n  \n  if (*(code **)(*param_1 + 0x20) != (code *)PTR_seekoff_004b9e68) {\n                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }\n  iVar1 = fseeko64((FILE *)param_1[8],param_2,0);\n  if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }\n  auVar2._0_8_ = ftello64((FILE *)param_1[8]);\n  auVar2._8_8_ = 0;\n  return auVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 auVar2 [16];" type_identifier (array_declarator "auVar2 [16]" identifier [ number_literal ]) ;) (if_statement "if (*(code **)(*param_1 + 0x20) != (code *)PTR_seekoff_004b9e68) {\n                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }" if (parenthesized_expression "(*(code **)(*param_1 + 0x20) != (code *)PTR_seekoff_004b9e68)" ( (binary_expression "*(code **)(*param_1 + 0x20) != (code *)PTR_seekoff_004b9e68" (pointer_expression "*(code **)(*param_1 + 0x20)" * (cast_expression "(code **)(*param_1 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) )))) != (cast_expression "(code *)PTR_seekoff_004b9e68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }" { comment comment (expression_statement "auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);" (assignment_expression "auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0)" identifier = (call_expression "(**(code **)(*param_1 + 0x20))(param_1,param_2,0)" (parenthesized_expression "(**(code **)(*param_1 + 0x20))" ( (pointer_expression "**(code **)(*param_1 + 0x20)" * (pointer_expression "*(code **)(*param_1 + 0x20)" * (cast_expression "(code **)(*param_1 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal )))) ;) (return_statement "return auVar2;" return identifier ;) })) (expression_statement "iVar1 = fseeko64((FILE *)param_1[8],param_2,0);" (assignment_expression "iVar1 = fseeko64((FILE *)param_1[8],param_2,0)" identifier = (call_expression "fseeko64((FILE *)param_1[8],param_2,0)" identifier (argument_list "((FILE *)param_1[8],param_2,0)" ( (cast_expression "(FILE *)param_1[8]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) , identifier , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    return ZEXT816(0xffffffffffffffff);\n  }" { (return_statement "return ZEXT816(0xffffffffffffffff);" return (call_expression "ZEXT816(0xffffffffffffffff)" identifier (argument_list "(0xffffffffffffffff)" ( number_literal ))) ;) })) (expression_statement "auVar2._0_8_ = ftello64((FILE *)param_1[8]);" (assignment_expression "auVar2._0_8_ = ftello64((FILE *)param_1[8])" (field_expression "auVar2._0_8_" identifier . field_identifier) = (call_expression "ftello64((FILE *)param_1[8])" identifier (argument_list "((FILE *)param_1[8])" ( (cast_expression "(FILE *)param_1[8]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) )))) ;) (expression_statement "auVar2._8_8_ = 0;" (assignment_expression "auVar2._8_8_ = 0" (field_expression "auVar2._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return auVar2;" return identifier ;) })))
(translation_unit "undefined1  [16] FUN_00369f10(long *param_1,__off64_t param_2)\n\n{\n  int iVar1;\n  undefined1 auVar2 [16];\n  \n  if (*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68) {\n                    \n                    \n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }\n  iVar1 = fseeko64((FILE *)param_1[8],param_2,0);\n  if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }\n  auVar2._0_8_ = ftello64((FILE *)param_1[8]);\n  auVar2._8_8_ = 0;\n  return auVar2;\n}\n\n" (expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" identifier [ number_literal ]) ;) (expression_statement "FUN_00369f10(long *param_1,__off64_t param_2)" (call_expression "FUN_00369f10(long *param_1,__off64_t param_2)" identifier (argument_list "(long *param_1,__off64_t param_2)" ( (binary_expression "long *param_1" identifier * identifier) , identifier (ERROR "param_2" identifier) ))) ;) (compound_statement "{\n  int iVar1;\n  undefined1 auVar2 [16];\n  \n  if (*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68) {\n                    \n                    \n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }\n  iVar1 = fseeko64((FILE *)param_1[8],param_2,0);\n  if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }\n  auVar2._0_8_ = ftello64((FILE *)param_1[8]);\n  auVar2._8_8_ = 0;\n  return auVar2;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined1 auVar2 [16];" type_identifier (array_declarator "auVar2 [16]" identifier [ number_literal ]) ;) (if_statement "if (*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68) {\n                    \n                    \n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }" if (parenthesized_expression "(*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68)" ( (binary_expression "*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68" (pointer_expression "*(code **)(*param_1 + 0x20)" * (cast_expression "(code **)(*param_1 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) )))) != (cast_expression "(code *)PTR_FUN_004b9e68" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\n                    \n                    \n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }" { (expression_statement "auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);" (assignment_expression "auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0)" identifier = (call_expression "(**(code **)(*param_1 + 0x20))(param_1,param_2,0)" (parenthesized_expression "(**(code **)(*param_1 + 0x20))" ( (pointer_expression "**(code **)(*param_1 + 0x20)" * (pointer_expression "*(code **)(*param_1 + 0x20)" * (cast_expression "(code **)(*param_1 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal )))) ;) (return_statement "return auVar2;" return identifier ;) })) (expression_statement "iVar1 = fseeko64((FILE *)param_1[8],param_2,0);" (assignment_expression "iVar1 = fseeko64((FILE *)param_1[8],param_2,0)" identifier = (call_expression "fseeko64((FILE *)param_1[8],param_2,0)" identifier (argument_list "((FILE *)param_1[8],param_2,0)" ( (cast_expression "(FILE *)param_1[8]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) , identifier , number_literal )))) ;) (if_statement "if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    return ZEXT816(0xffffffffffffffff);\n  }" { (return_statement "return ZEXT816(0xffffffffffffffff);" return (call_expression "ZEXT816(0xffffffffffffffff)" identifier (argument_list "(0xffffffffffffffff)" ( number_literal ))) ;) })) (expression_statement "auVar2._0_8_ = ftello64((FILE *)param_1[8]);" (assignment_expression "auVar2._0_8_ = ftello64((FILE *)param_1[8])" (field_expression "auVar2._0_8_" identifier . field_identifier) = (call_expression "ftello64((FILE *)param_1[8])" identifier (argument_list "((FILE *)param_1[8])" ( (cast_expression "(FILE *)param_1[8]" ( (type_descriptor "FILE *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[8]" identifier [ number_literal ])) )))) ;) (expression_statement "auVar2._8_8_ = 0;" (assignment_expression "auVar2._8_8_ = 0" (field_expression "auVar2._8_8_" identifier . field_identifier) = number_literal) ;) (return_statement "return auVar2;" return identifier ;) }))
(translation_unit (expression_statement (subscript_expression IDENT [ LIT ]) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) , IDENT (ERROR IDENT) ))) ;) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT , IDENT , LIT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (return_statement return IDENT ;) }))
(expression_statement "undefined1  [16]" (subscript_expression "undefined1  [16]" (identifier "undefined1") ([ "[") (number_literal "16") (] "]")) (; "")) (expression_statement "FUN_00369f10(long *param_1,__off64_t param_2)" (call_expression "FUN_00369f10(long *param_1,__off64_t param_2)" (identifier "FUN_00369f10") (argument_list "(long *param_1,__off64_t param_2)" (( "(") (binary_expression "long *param_1" (identifier "long") (* "*") (identifier "param_1")) (, ",") (identifier "__off64_t") (ERROR "param_2" (identifier "param_2")) () ")"))) (; "")) (compound_statement "{\n  int iVar1;\n  undefined1 auVar2 [16];\n  \n  if (*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68) {\n                    \n                    \n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }\n  iVar1 = fseeko64((FILE *)param_1[8],param_2,0);\n  if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }\n  auVar2._0_8_ = ftello64((FILE *)param_1[8]);\n  auVar2._8_8_ = 0;\n  return auVar2;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined1 auVar2 [16];" (type_identifier "undefined1") (array_declarator "auVar2 [16]" (identifier "auVar2") ([ "[") (number_literal "16") (] "]")) (; ";")) (if_statement "if (*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68) {\n                    \n                    \n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }" (if "if") (parenthesized_expression "(*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68)" (( "(") (binary_expression "*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68" (pointer_expression "*(code **)(*param_1 + 0x20)" (* "*") (cast_expression "(code **)(*param_1 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x20)" (( "(") (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x20")) () ")")))) (!= "!=") (cast_expression "(code *)PTR_FUN_004b9e68" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_FUN_004b9e68"))) () ")")) (compound_statement "{\n                    \n                    \n    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);\n    return auVar2;\n  }" ({ "{") (expression_statement "auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);" (assignment_expression "auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0)" (identifier "auVar2") (= "=") (call_expression "(**(code **)(*param_1 + 0x20))(param_1,param_2,0)" (parenthesized_expression "(**(code **)(*param_1 + 0x20))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x20)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x20)" (* "*") (cast_expression "(code **)(*param_1 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x20)" (( "(") (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")")))) (; ";")) (return_statement "return auVar2;" (return "return") (identifier "auVar2") (; ";")) (} "}"))) (expression_statement "iVar1 = fseeko64((FILE *)param_1[8],param_2,0);" (assignment_expression "iVar1 = fseeko64((FILE *)param_1[8],param_2,0)" (identifier "iVar1") (= "=") (call_expression "fseeko64((FILE *)param_1[8],param_2,0)" (identifier "fseeko64") (argument_list "((FILE *)param_1[8],param_2,0)" (( "(") (cast_expression "(FILE *)param_1[8]" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    return ZEXT816(0xffffffffffffffff);\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return ZEXT816(0xffffffffffffffff);\n  }" ({ "{") (return_statement "return ZEXT816(0xffffffffffffffff);" (return "return") (call_expression "ZEXT816(0xffffffffffffffff)" (identifier "ZEXT816") (argument_list "(0xffffffffffffffff)" (( "(") (number_literal "0xffffffffffffffff") () ")"))) (; ";")) (} "}"))) (expression_statement "auVar2._0_8_ = ftello64((FILE *)param_1[8]);" (assignment_expression "auVar2._0_8_ = ftello64((FILE *)param_1[8])" (field_expression "auVar2._0_8_" (identifier "auVar2") (. ".") (field_identifier "_0_8_")) (= "=") (call_expression "ftello64((FILE *)param_1[8])" (identifier "ftello64") (argument_list "((FILE *)param_1[8])" (( "(") (cast_expression "(FILE *)param_1[8]" (( "(") (type_descriptor "FILE *" (type_identifier "FILE") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) () ")")))) (; ";")) (expression_statement "auVar2._8_8_ = 0;" (assignment_expression "auVar2._8_8_ = 0" (field_expression "auVar2._8_8_" (identifier "auVar2") (. ".") (field_identifier "_8_8_")) (= "=") (number_literal "0")) (; ";")) (return_statement "return auVar2;" (return "return") (identifier "auVar2") (; ";")) (} "}"))

/* stdio_sync_filebuf<wchar_t, std::char_traits<wchar_t> >::seekpos(std::fpos<__mbstate_t>,
   std::_Ios_Openmode) */

type_1  [16]
stdio_sync_filebuf<wchar_t,std::char_traits<wchar_t>>::seekpos(long *param_1,__off64_t param_2)

{
  int var_2;
  type_1 auVar2 [16];
  
  if (*(type_2 **)(*param_1 + 0x20) != (type_2 *)PTR_seekoff_004b9e68) {
                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    auVar2 = (**(type_2 **)(*param_1 + 0x20))(param_1,param_2,0);
    return auVar2;
  }
  var_2 = var_1((type_3 *)param_1[8],param_2,0);
  if (var_2 != 0) {
    return var_3(0xffffffffffffffff);
  }
  auVar2._0_8_ = var_4((type_3 *)param_1[8]);
  auVar2._8_8_ = 0;
  return auVar2;
}


(translation_unit (expression_statement (subscript_expression argument: (identifier) index: (number_literal)) (MISSING ";")) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (identifier) (ERROR (identifier)))) (MISSING ";")) (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (number_literal))))) (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (call_expression function: (identifier) arguments: (argument_list (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (return_statement (identifier))))

undefined1  [16] MASKED(long *param_1,__off64_t param_2)

{
  int iVar1;
  undefined1 auVar2 [16];
  
  if (*(code **)(*param_1 + 0x20) != (code *)PTR_FUN_004b9e68) {
                    /* WARNING: Could not recover jumptable at 0x00369f62. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    auVar2 = (**(code **)(*param_1 + 0x20))(param_1,param_2,0);
    return auVar2;
  }
  iVar1 = fseeko64((FILE *)param_1[8],param_2,0);
  if (iVar1 != 0) {
    return ZEXT816(0xffffffffffffffff);
  }
  auVar2._0_8_ = ftello64((FILE *)param_1[8]);
  auVar2._8_8_ = 0;
  return auVar2;
}

