
/* DWARF original prototype: bool add_local(Output_data_got<64,_true> * this, Relobj * object, uint
   symndx, uint got_type, uint64_t addend) */

bool __thiscall
gold::Output_data_got<64,_true>::add_local
          (Output_data_got<64,_true> *this,Relobj *object,uint symndx,uint got_type,uint64_t addend)

{
  _func_int_varargs **pp_Var1;
  Got_entry got_entry;
  int iVar2;
  uint uVar3;
  Relobj *pRVar4;
  undefined4 uStack_3c;
  
  iVar2 = (*(object->super_Object)._vptr_Object[0x2b])(object,(ulong)symndx,(ulong)got_type,addend);
  if ((char)iVar2 != '\0') {
    return false;
  }
  if ((2 < symndx + 0x80000003) && (symndx == (symndx & 0x7fffffff))) {
    got_entry._8_8_ = CONCAT44(uStack_3c,symndx) & 0xffffffff7fffffff;
    got_entry.u_.object = object;
    got_entry.addend_ = addend;
    pRVar4 = object;
    uVar3 = add_got_entry(this,got_entry);
    pp_Var1 = (object->super_Object)._vptr_Object;
    (*pp_Var1[0x2d])(object,(ulong)symndx,(ulong)got_type,(ulong)uVar3,addend,pp_Var1,pRVar4);
    return true;
  }
                    /* WARNING: Subroutine does not return */
  do_gold_unreachable("../../gold/output.h",0xa5d,"Got_entry");
}



undefined8
FUN_001d7520(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)

{
  char cVar1;
  undefined4 uVar2;
  uint uVar3;
  long *plVar4;
  undefined8 uVar5;
  
  cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);
  if (cVar1 != '\0') {
    return 0;
  }
  uVar3 = param_3 & 0x7fffffff;
  if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {
    plVar4 = param_2;
    uVar5 = param_5;
    uVar2 = FUN_001d6ee0(param_1);
    (**(code **)(*param_2 + 0x168))
              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);
    return 1;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");
}


PUSH R14
MOV R14D,EDX
PUSH R13
MOV R13,RSI
PUSH R12
MOV R12,R8
PUSH RBP
MOV RBP,RDI
MOV RDI,R13
PUSH RBX
MOV EBX,ECX
MOV RCX,R8
MOV EDX,EBX
SUB RSP,0x20
MOV RAX,qword ptr [RSI]
MOV ESI,R14D
CALL qword ptr [RAX + 0x158]
TEST AL,AL
JNZ 0x001d75e0
MOV EAX,dword ptr [RSP + 0x8]
MOV EDX,R14D
MOV qword ptr [RSP + 0x10],R12
AND EDX,0x7fffffff
AND EAX,0x80000000
OR EAX,EDX
MOV dword ptr [RSP + 0x8],EAX
SHR EAX,0x18
AND EAX,0x7f
MOV byte ptr [RSP + 0xb],AL
LEA EAX,[R14 + -0x7ffffffd]
CMP EAX,0x2
JBE 0x001d75ef
CMP R14D,EDX
JNZ 0x001d75ef
MOV qword ptr [RSP],R13
SUB RSP,0x8
MOV RDI,RBP
PUSH qword ptr [RSP + 0x18]
PUSH qword ptr [RSP + 0x18]
PUSH R13
CALL 0x001d6ee0
MOV R9,qword ptr [R13]
ADD RSP,0x20
MOV R8,R12
MOV ECX,EAX
MOV EDX,EBX
MOV ESI,R14D
MOV RDI,R13
CALL qword ptr [R9 + 0x168]
ADD RSP,0x20
MOV EAX,0x1
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
ADD RSP,0x20
XOR EAX,EAX
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
LEA RDX,[0x3189e8]
MOV ESI,0xa5d
LEA RDI,[0x30e9f4]
CALL 0x0016cdf0
(translation_unit "undefined8\nFUN_001d7520(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  long *plVar4;\n  undefined8 uVar5;\n  \n  cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);\n  if (cVar1 != '\0') {\n    return 0;\n  }\n  uVar3 = param_3 & 0x7fffffff;\n  if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");\n}\n\n" (function_definition "undefined8\nFUN_001d7520(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  long *plVar4;\n  undefined8 uVar5;\n  \n  cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);\n  if (cVar1 != '\0') {\n    return 0;\n  }\n  uVar3 = param_3 & 0x7fffffff;\n  if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");\n}" type_identifier (function_declarator "FUN_001d7520(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)" identifier (parameter_list "(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  long *plVar4;\n  undefined8 uVar5;\n  \n  cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);\n  if (cVar1 != '\0') {\n    return 0;\n  }\n  uVar3 = param_3 & 0x7fffffff;\n  if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (expression_statement "cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);" (assignment_expression "cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5)" identifier = (call_expression "(**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5)" (parenthesized_expression "(**(code **)(*param_2 + 0x158))" ( (pointer_expression "**(code **)(*param_2 + 0x158)" * (pointer_expression "*(code **)(*param_2 + 0x158)" * (cast_expression "(code **)(*param_2 + 0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x158)" ( (binary_expression "*param_2 + 0x158" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_3,param_4,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (cVar1 != '\0') {\n    return 0;\n  }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar3 = param_3 & 0x7fffffff;" (assignment_expression "uVar3 = param_3 & 0x7fffffff" identifier = (binary_expression "param_3 & 0x7fffffff" identifier & number_literal)) ;) (if_statement "if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }" if (parenthesized_expression "((2 < param_3 + 0x80000003) && (param_3 == uVar3))" ( (binary_expression "(2 < param_3 + 0x80000003) && (param_3 == uVar3)" (parenthesized_expression "(2 < param_3 + 0x80000003)" ( (binary_expression "2 < param_3 + 0x80000003" number_literal < (binary_expression "param_3 + 0x80000003" identifier + number_literal)) )) && (parenthesized_expression "(param_3 == uVar3)" ( (binary_expression "param_3 == uVar3" identifier == identifier) ))) )) (compound_statement "{\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }" { (expression_statement "plVar4 = param_2;" (assignment_expression "plVar4 = param_2" identifier = identifier) ;) (expression_statement "uVar5 = param_5;" (assignment_expression "uVar5 = param_5" identifier = identifier) ;) (expression_statement "uVar2 = FUN_001d6ee0(param_1);" (assignment_expression "uVar2 = FUN_001d6ee0(param_1)" identifier = (call_expression "FUN_001d6ee0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "(**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);" (call_expression "(**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5)" (parenthesized_expression "(**(code **)(*param_2 + 0x168))" ( (pointer_expression "**(code **)(*param_2 + 0x168)" * (pointer_expression "*(code **)(*param_2 + 0x168)" * (cast_expression "(code **)(*param_2 + 0x168)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x168)" ( (binary_expression "*param_2 + 0x168" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "*param_2" * identifier) , identifier , identifier , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) comment (expression_statement "FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");" (call_expression "FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry")" identifier (argument_list "("../../gold/output.h",0xa5d,"Got_entry")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""Got_entry"" " string_content ") ))) ;) })))
(translation_unit "/* DWARF original prototype: bool add_local(Output_data_got<64,_true> * this, Relobj * object, uint\n   symndx, uint got_type, uint64_t addend) */\n\nbool __thiscall\ngold::Output_data_got<64,_true>::add_local\n          (Output_data_got<64,_true> *this,Relobj *object,uint symndx,uint got_type,uint64_t addend)\n\n{\n  _func_int_varargs **pp_Var1;\n  Got_entry got_entry;\n  int iVar2;\n  uint uVar3;\n  Relobj *pRVar4;\n  undefined4 uStack_3c;\n  \n  iVar2 = (*(object->super_Object)._vptr_Object[0x2b])(object,(ulong)symndx,(ulong)got_type,addend);\n  if ((char)iVar2 != '\0') {\n    return false;\n  }\n  if ((2 < symndx + 0x80000003) && (symndx == (symndx & 0x7fffffff))) {\n    got_entry._8_8_ = CONCAT44(uStack_3c,symndx) & 0xffffffff7fffffff;\n    got_entry.u_.object = object;\n    got_entry.addend_ = addend;\n    pRVar4 = object;\n    uVar3 = add_got_entry(this,got_entry);\n    pp_Var1 = (object->super_Object)._vptr_Object;\n    (*pp_Var1[0x2d])(object,(ulong)symndx,(ulong)got_type,(ulong)uVar3,addend,pp_Var1,pRVar4);\n    return true;\n  }\n                    /* WARNING: Subroutine does not return */\n  do_gold_unreachable("../../gold/output.h",0xa5d,"Got_entry");\n}\n\n" comment (declaration "bool __thiscall\ngold::Output_data_got<64,_true>::add_local\n          (Output_data_got<64,_true> *this,Relobj *object,uint symndx,uint got_type,uint64_t addend)\n\n{\n  _func_int_varargs **pp_Var1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::" identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::add_local\n          (Output_data_got<64,_true> *this,Relobj *object,uint symndx,uint got_type,uint64_t addend)\n\n{\n  _func_int_varargs" identifier > : : (function_declarator "add_local\n          (Output_data_got<64,_true> *this,Relobj *object,uint symndx,uint got_type,uint64_t addend)" identifier (parameter_list "(Output_data_got<64,_true> *this,Relobj *object,uint symndx,uint got_type,uint64_t addend)" ( (parameter_declaration "Output_data_got" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Relobj *object" type_identifier (pointer_declarator "*object" * identifier)) , (parameter_declaration "uint symndx" type_identifier identifier) , (parameter_declaration "uint got_type" type_identifier identifier) , (parameter_declaration "uint64_t addend" primitive_type identifier) ))) { identifier) (pointer_declarator "**pp_Var1" * (pointer_declarator "*pp_Var1" * identifier)) ;) (declaration "Got_entry got_entry;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "Relobj *pRVar4;" type_identifier (pointer_declarator "*pRVar4" * identifier) ;) (declaration "undefined4 uStack_3c;" type_identifier identifier ;) (expression_statement "iVar2 = (*(object->super_Object)._vptr_Object[0x2b])(object,(ulong)symndx,(ulong)got_type,addend);" (assignment_expression "iVar2 = (*(object->super_Object)._vptr_Object[0x2b])(object,(ulong)symndx,(ulong)got_type,addend)" identifier = (call_expression "(*(object->super_Object)._vptr_Object[0x2b])(object,(ulong)symndx,(ulong)got_type,addend)" (parenthesized_expression "(*(object->super_Object)._vptr_Object[0x2b])" ( (pointer_expression "*(object->super_Object)._vptr_Object[0x2b]" * (subscript_expression "(object->super_Object)._vptr_Object[0x2b]" (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) )) (argument_list "(object,(ulong)symndx,(ulong)got_type,addend)" ( identifier , (cast_expression "(ulong)symndx" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)got_type" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier )))) ;) (if_statement "if ((char)iVar2 != '\0') {\n    return false;\n  }" if (parenthesized_expression "((char)iVar2 != '\0')" ( (binary_expression "(char)iVar2 != '\0'" (cast_expression "(char)iVar2" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (if_statement "if ((2 < symndx + 0x80000003) && (symndx == (symndx & 0x7fffffff))) {\n    got_entry._8_8_ = CONCAT44(uStack_3c,symndx) & 0xffffffff7fffffff;\n    got_entry.u_.object = object;\n    got_entry.addend_ = addend;\n    pRVar4 = object;\n    uVar3 = add_got_entry(this,got_entry);\n    pp_Var1 = (object->super_Object)._vptr_Object;\n    (*pp_Var1[0x2d])(object,(ulong)symndx,(ulong)got_type,(ulong)uVar3,addend,pp_Var1,pRVar4);\n    return true;\n  }" if (parenthesized_expression "((2 < symndx + 0x80000003) && (symndx == (symndx & 0x7fffffff)))" ( (binary_expression "(2 < symndx + 0x80000003) && (symndx == (symndx & 0x7fffffff))" (parenthesized_expression "(2 < symndx + 0x80000003)" ( (binary_expression "2 < symndx + 0x80000003" number_literal < (binary_expression "symndx + 0x80000003" identifier + number_literal)) )) && (parenthesized_expression "(symndx == (symndx & 0x7fffffff))" ( (binary_expression "symndx == (symndx & 0x7fffffff)" identifier == (parenthesized_expression "(symndx & 0x7fffffff)" ( (binary_expression "symndx & 0x7fffffff" identifier & number_literal) ))) ))) )) (compound_statement "{\n    got_entry._8_8_ = CONCAT44(uStack_3c,symndx) & 0xffffffff7fffffff;\n    got_entry.u_.object = object;\n    got_entry.addend_ = addend;\n    pRVar4 = object;\n    uVar3 = add_got_entry(this,got_entry);\n    pp_Var1 = (object->super_Object)._vptr_Object;\n    (*pp_Var1[0x2d])(object,(ulong)symndx,(ulong)got_type,(ulong)uVar3,addend,pp_Var1,pRVar4);\n    return true;\n  }" { (expression_statement "got_entry._8_8_ = CONCAT44(uStack_3c,symndx) & 0xffffffff7fffffff;" (assignment_expression "got_entry._8_8_ = CONCAT44(uStack_3c,symndx) & 0xffffffff7fffffff" (field_expression "got_entry._8_8_" identifier . field_identifier) = (binary_expression "CONCAT44(uStack_3c,symndx) & 0xffffffff7fffffff" (call_expression "CONCAT44(uStack_3c,symndx)" identifier (argument_list "(uStack_3c,symndx)" ( identifier , identifier ))) & number_literal)) ;) (expression_statement "got_entry.u_.object = object;" (assignment_expression "got_entry.u_.object = object" (field_expression "got_entry.u_.object" (field_expression "got_entry.u_" identifier . field_identifier) . field_identifier) = identifier) ;) (expression_statement "got_entry.addend_ = addend;" (assignment_expression "got_entry.addend_ = addend" (field_expression "got_entry.addend_" identifier . field_identifier) = identifier) ;) (expression_statement "pRVar4 = object;" (assignment_expression "pRVar4 = object" identifier = identifier) ;) (expression_statement "uVar3 = add_got_entry(this,got_entry);" (assignment_expression "uVar3 = add_got_entry(this,got_entry)" identifier = (call_expression "add_got_entry(this,got_entry)" identifier (argument_list "(this,got_entry)" ( identifier , identifier )))) ;) (expression_statement "pp_Var1 = (object->super_Object)._vptr_Object;" (assignment_expression "pp_Var1 = (object->super_Object)._vptr_Object" identifier = (field_expression "(object->super_Object)._vptr_Object" (parenthesized_expression "(object->super_Object)" ( (field_expression "object->super_Object" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "(*pp_Var1[0x2d])(object,(ulong)symndx,(ulong)got_type,(ulong)uVar3,addend,pp_Var1,pRVar4);" (call_expression "(*pp_Var1[0x2d])(object,(ulong)symndx,(ulong)got_type,(ulong)uVar3,addend,pp_Var1,pRVar4)" (parenthesized_expression "(*pp_Var1[0x2d])" ( (pointer_expression "*pp_Var1[0x2d]" * (subscript_expression "pp_Var1[0x2d]" identifier [ number_literal ])) )) (argument_list "(object,(ulong)symndx,(ulong)got_type,(ulong)uVar3,addend,pp_Var1,pRVar4)" ( identifier , (cast_expression "(ulong)symndx" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)got_type" ( (type_descriptor "ulong" type_identifier) ) identifier) , (cast_expression "(ulong)uVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) , identifier , identifier , identifier ))) ;) (return_statement "return true;" return true ;) })) comment (expression_statement "do_gold_unreachable("../../gold/output.h",0xa5d,"Got_entry");" (call_expression "do_gold_unreachable("../../gold/output.h",0xa5d,"Got_entry")" identifier (argument_list "("../../gold/output.h",0xa5d,"Got_entry")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""Got_entry"" " string_content ") ))) ;) (ERROR "}" }))
(translation_unit "undefined8\nFUN_001d7520(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  long *plVar4;\n  undefined8 uVar5;\n  \n  cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);\n  if (cVar1 != '\0') {\n    return 0;\n  }\n  uVar3 = param_3 & 0x7fffffff;\n  if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");\n}\n\n" (function_definition "undefined8\nFUN_001d7520(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  long *plVar4;\n  undefined8 uVar5;\n  \n  cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);\n  if (cVar1 != '\0') {\n    return 0;\n  }\n  uVar3 = param_3 & 0x7fffffff;\n  if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");\n}" type_identifier (function_declarator "FUN_001d7520(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)" identifier (parameter_list "(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  long *plVar4;\n  undefined8 uVar5;\n  \n  cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);\n  if (cVar1 != '\0') {\n    return 0;\n  }\n  uVar3 = param_3 & 0x7fffffff;\n  if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (expression_statement "cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);" (assignment_expression "cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5)" identifier = (call_expression "(**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5)" (parenthesized_expression "(**(code **)(*param_2 + 0x158))" ( (pointer_expression "**(code **)(*param_2 + 0x158)" * (pointer_expression "*(code **)(*param_2 + 0x158)" * (cast_expression "(code **)(*param_2 + 0x158)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x158)" ( (binary_expression "*param_2 + 0x158" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_3,param_4,param_5)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (cVar1 != '\0') {\n    return 0;\n  }" if (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar3 = param_3 & 0x7fffffff;" (assignment_expression "uVar3 = param_3 & 0x7fffffff" identifier = (binary_expression "param_3 & 0x7fffffff" identifier & number_literal)) ;) (if_statement "if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }" if (parenthesized_expression "((2 < param_3 + 0x80000003) && (param_3 == uVar3))" ( (binary_expression "(2 < param_3 + 0x80000003) && (param_3 == uVar3)" (parenthesized_expression "(2 < param_3 + 0x80000003)" ( (binary_expression "2 < param_3 + 0x80000003" number_literal < (binary_expression "param_3 + 0x80000003" identifier + number_literal)) )) && (parenthesized_expression "(param_3 == uVar3)" ( (binary_expression "param_3 == uVar3" identifier == identifier) ))) )) (compound_statement "{\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }" { (expression_statement "plVar4 = param_2;" (assignment_expression "plVar4 = param_2" identifier = identifier) ;) (expression_statement "uVar5 = param_5;" (assignment_expression "uVar5 = param_5" identifier = identifier) ;) (expression_statement "uVar2 = FUN_001d6ee0(param_1);" (assignment_expression "uVar2 = FUN_001d6ee0(param_1)" identifier = (call_expression "FUN_001d6ee0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "(**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);" (call_expression "(**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5)" (parenthesized_expression "(**(code **)(*param_2 + 0x168))" ( (pointer_expression "**(code **)(*param_2 + 0x168)" * (pointer_expression "*(code **)(*param_2 + 0x168)" * (cast_expression "(code **)(*param_2 + 0x168)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_2 + 0x168)" ( (binary_expression "*param_2 + 0x168" (pointer_expression "*param_2" * identifier) + number_literal) ))))) )) (argument_list "(param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5)" ( identifier , identifier , identifier , identifier , identifier , (pointer_expression "*param_2" * identifier) , identifier , identifier , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");" (call_expression "FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry")" identifier (argument_list "("../../gold/output.h",0xa5d,"Got_entry")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""Got_entry"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT + LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (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 , IDENT , IDENT , IDENT , (pointer_expression * IDENT) , IDENT , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "undefined8\nFUN_001d7520(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)\n\n{\n  char cVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  long *plVar4;\n  undefined8 uVar5;\n  \n  cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);\n  if (cVar1 != '\0') {\n    return 0;\n  }\n  uVar3 = param_3 & 0x7fffffff;\n  if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");\n}" (type_identifier "undefined8") (function_declarator "FUN_001d7520(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)" (identifier "FUN_001d7520") (parameter_list "(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "undefined8 param_5" (type_identifier "undefined8") (identifier "param_5")) () ")"))) (compound_statement "{\n  char cVar1;\n  undefined4 uVar2;\n  uint uVar3;\n  long *plVar4;\n  undefined8 uVar5;\n  \n  cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);\n  if (cVar1 != '\0') {\n    return 0;\n  }\n  uVar3 = param_3 & 0x7fffffff;\n  if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }\n                    \n  FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "undefined4 uVar2;" (type_identifier "undefined4") (identifier "uVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "long *plVar4;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar4" (* "*") (identifier "plVar4")) (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (expression_statement "cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);" (assignment_expression "cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5)" (identifier "cVar1") (= "=") (call_expression "(**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5)" (parenthesized_expression "(**(code **)(*param_2 + 0x158))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x158)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x158)" (* "*") (cast_expression "(code **)(*param_2 + 0x158)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x158)" (( "(") (binary_expression "*param_2 + 0x158" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x158")) () ")"))))) () ")")) (argument_list "(param_2,param_3,param_4,param_5)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "param_5") () ")")))) (; ";")) (if_statement "if (cVar1 != '\0') {\n    return 0;\n  }" (if "if") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar3 = param_3 & 0x7fffffff;" (assignment_expression "uVar3 = param_3 & 0x7fffffff" (identifier "uVar3") (= "=") (binary_expression "param_3 & 0x7fffffff" (identifier "param_3") (& "&") (number_literal "0x7fffffff"))) (; ";")) (if_statement "if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }" (if "if") (parenthesized_expression "((2 < param_3 + 0x80000003) && (param_3 == uVar3))" (( "(") (binary_expression "(2 < param_3 + 0x80000003) && (param_3 == uVar3)" (parenthesized_expression "(2 < param_3 + 0x80000003)" (( "(") (binary_expression "2 < param_3 + 0x80000003" (number_literal "2") (< "<") (binary_expression "param_3 + 0x80000003" (identifier "param_3") (+ "+") (number_literal "0x80000003"))) () ")")) (&& "&&") (parenthesized_expression "(param_3 == uVar3)" (( "(") (binary_expression "param_3 == uVar3" (identifier "param_3") (== "==") (identifier "uVar3")) () ")"))) () ")")) (compound_statement "{\n    plVar4 = param_2;\n    uVar5 = param_5;\n    uVar2 = FUN_001d6ee0(param_1);\n    (**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);\n    return 1;\n  }" ({ "{") (expression_statement "plVar4 = param_2;" (assignment_expression "plVar4 = param_2" (identifier "plVar4") (= "=") (identifier "param_2")) (; ";")) (expression_statement "uVar5 = param_5;" (assignment_expression "uVar5 = param_5" (identifier "uVar5") (= "=") (identifier "param_5")) (; ";")) (expression_statement "uVar2 = FUN_001d6ee0(param_1);" (assignment_expression "uVar2 = FUN_001d6ee0(param_1)" (identifier "uVar2") (= "=") (call_expression "FUN_001d6ee0(param_1)" (identifier "FUN_001d6ee0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "(**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);" (call_expression "(**(code **)(*param_2 + 0x168))\n              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5)" (parenthesized_expression "(**(code **)(*param_2 + 0x168))" (( "(") (pointer_expression "**(code **)(*param_2 + 0x168)" (* "*") (pointer_expression "*(code **)(*param_2 + 0x168)" (* "*") (cast_expression "(code **)(*param_2 + 0x168)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_2 + 0x168)" (( "(") (binary_expression "*param_2 + 0x168" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (+ "+") (number_literal "0x168")) () ")"))))) () ")")) (argument_list "(param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (identifier "uVar2") (, ",") (identifier "param_5") (, ",") (pointer_expression "*param_2" (* "*") (identifier "param_2")) (, ",") (identifier "plVar4") (, ",") (identifier "uVar3") (, ",") (identifier "uVar5") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");" (call_expression "FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry")" (identifier "FUN_0016cdf0") (argument_list "("../../gold/output.h",0xa5d,"Got_entry")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xa5d") (, ",") (string_literal ""Got_entry"" (" """) (string_content "Got_entry") (" """)) () ")"))) (; ";")) (} "}")))

/* DWARF original prototype: bool add_local(Output_data_got<64,_true> * this, Relobj * object, uint
   symndx, uint got_type, uint64_t addend) */

bool __thiscall
gold::Output_data_got<64,_true>::add_local
          (Output_data_got<64,_true> *this,type_3 *object,type_2 var_1,type_2 got_type,uint64_t addend)

{
  _func_int_varargs **pp_Var1;
  type_1 got_entry;
  int iVar2;
  type_2 uVar3;
  type_3 *pRVar4;
  type_4 uStack_3c;
  
  iVar2 = (*(object->super_Object)._vptr_Object[0x2b])(object,(type_5)var_1,(type_5)got_type,addend);
  if ((char)iVar2 != '\0') {
    return false;
  }
  if ((2 < var_1 + 0x80000003) && (var_1 == (var_1 & 0x7fffffff))) {
    got_entry._8_8_ = var_2(uStack_3c,var_1) & 0xffffffff7fffffff;
    got_entry.u_.object = object;
    got_entry.addend_ = addend;
    pRVar4 = object;
    uVar3 = var_3(this,got_entry);
    pp_Var1 = (object->super_Object)._vptr_Object;
    (*pp_Var1[0x2d])(object,(type_5)var_1,(type_5)got_type,(type_5)uVar3,addend,pp_Var1,pRVar4);
    return true;
  }
                    /* WARNING: Subroutine does not return */
  var_4("../../gold/output.h",0xa5d,"Got_entry");
}


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

undefined8
MASKED(undefined8 param_1,long *param_2,uint param_3,undefined4 param_4,undefined8 param_5)

{
  char cVar1;
  undefined4 uVar2;
  uint uVar3;
  long *plVar4;
  undefined8 uVar5;
  
  cVar1 = (**(code **)(*param_2 + 0x158))(param_2,param_3,param_4,param_5);
  if (cVar1 != '\0') {
    return 0;
  }
  uVar3 = param_3 & 0x7fffffff;
  if ((2 < param_3 + 0x80000003) && (param_3 == uVar3)) {
    plVar4 = param_2;
    uVar5 = param_5;
    uVar2 = FUN_001d6ee0(param_1);
    (**(code **)(*param_2 + 0x168))
              (param_2,param_3,param_4,uVar2,param_5,*param_2,plVar4,uVar3,uVar5);
    return 1;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0016cdf0("../../gold/output.h",0xa5d,"Got_entry");
}

