
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void do_gc_mark_symbol(Target_powerpc<64,_true> * this, Symbol_table *
   symtab, Symbol * sym) */

void __thiscall
anon_unknown.dwarf_2af53c::Target_powerpc<64,_true>::do_gc_mark_symbol
          (Target_powerpc<64,_true> *this,Symbol_table *symtab,Symbol *sym)

{
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3
FUN_0006af70(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5
            ,int param_6)

{
  uint uVar1;
  int iVar2;
  byte *pbVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  int local_14;
  int local_10;
  
  local_10 = 0x6af78;
  if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);
  }
  if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&
     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {
    iVar5 = FUN_00053620();
    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;
    if (*(char *)(iVar4 + 0x14d) == '\0') {
      iVar5 = *(int *)(iVar4 + 0x168);
      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;
      if (uVar7 <= uVar6) {
        uVar1 = uVar6 + 1;
        if (uVar7 < uVar1) {
          FUN_00054e60();
          iVar5 = *(int *)(iVar4 + 0x168);
        }
        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)
                ) {
          *(int *)(iVar4 + 0x16c) = iVar2;
        }
      }
      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);
      *pbVar3 = *pbVar3 | 2;
    }
    else {
      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;
      if (uVar7 <= uVar6) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);
      }
      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);
      if (iVar5 == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);
      }
      local_14 = iVar4;
      local_10 = iVar5;
      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);
    }
  }
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x0003a210
ADD EBX,0x3a9088
SUB ESP,0x10
MOV EAX,dword ptr [ESP + 0x28]
TEST byte ptr [EAX + 0x2a],0x7
JNZ 0x0006b072
MOV EDX,dword ptr [EAX + 0xc]
TEST byte ptr [EAX + 0x2b],0x20
JZ 0x0006af9c
TEST EDX,EDX
JNZ 0x0006afa8
ADD ESP,0x10
POP EBX
POP ESI
POP EDI
RET
MOV ESI,dword ptr [EAX + 0x8]
CMP dword ptr [ESI + 0x140],EDX
JNZ 0x0006af9c
CALL 0x00053620
MOV EAX,dword ptr [EAX + 0x30]
SHR EAX,0x4
CMP byte ptr [ESI + 0x14d],0x0
JZ 0x0006b018
MOV ECX,dword ptr [ESI + 0x168]
MOV EDX,dword ptr [ESI + 0x16c]
SUB EDX,ECX
SAR EDX,0x4
CMP EAX,EDX
JNC 0x0006b0a4
SHL EAX,0x4
MOV EAX,dword ptr [ECX + EAX*0x1]
TEST EAX,EAX
JZ 0x0006b08b
MOV dword ptr [ESP + 0x8],ESI
SUB ESP,0x8
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[ESP + 0x10]
PUSH EAX
MOV EAX,dword ptr [ESP + 0x30]
PUSH dword ptr [EAX + 0x158]
CALL 0x000aa900
ADD ESP,0x10
JMP 0x0006af9c
MOV EDX,dword ptr [ESI + 0x16c]
MOV ECX,dword ptr [ESI + 0x168]
MOV EBX,EAX
MOV EAX,EDX
SUB EAX,ECX
SAR EAX,0x4
CMP EBX,EAX
JNC 0x0006b040
MOV EAX,EBX
SHL EAX,0x4
OR byte ptr [ECX + EAX*0x1 + 0x4],0x2
JMP 0x0006af9c
LEA EDI,[EBX + 0x1]
CMP EAX,EDI
JC 0x0006b05b
JBE 0x0006b031
SHL EDI,0x4
LEA EAX,[ECX + EDI*0x1]
CMP EDX,EAX
JZ 0x0006b031
MOV dword ptr [ESI + 0x16c],EAX
JMP 0x0006b031
SUB EDI,EAX
LEA EAX,[ESI + 0x168]
MOV EDX,EDI
CALL 0x00054e60
MOV ECX,dword ptr [ESI + 0x168]
JMP 0x0006b031
LEA EAX,[EBX + 0xffee20f4]
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xffee2f2e]
PUSH 0xa1
PUSH EAX
CALL 0x000da200
PUSH EAX
LEA EAX,[EBX + 0xffee1948]
PUSH EAX
LEA EAX,[EBX + 0xffee2e84]
PUSH 0xc5
PUSH EAX
CALL 0x000da200
LEA EAX,[EBX + 0xffee1948]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xffee2e84]
PUSH 0xc4
PUSH EAX
CALL 0x000da200
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3\nFUN_0006af70(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5\n            ,int param_6)\n\n{\n  uint uVar1;\n  int iVar2;\n  byte *pbVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int local_14;\n  int local_10;\n  \n  local_10 = 0x6af78;\n  if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }\n  if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3\nFUN_0006af70(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5\n            ,int param_6)\n\n{\n  uint uVar1;\n  int iVar2;\n  byte *pbVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int local_14;\n  int local_10;\n  \n  local_10 = 0x6af78;\n  if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }\n  if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0006af70(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5\n            ,int param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5\n            ,int param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  byte *pbVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int local_14;\n  int local_10;\n  \n  local_10 = 0x6af78;\n  if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }\n  if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (declaration "int local_10;" primitive_type identifier ;) (expression_statement "local_10 = 0x6af78;" (assignment_expression "local_10 = 0x6af78" identifier = number_literal) ;) (if_statement "if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }" if (parenthesized_expression "((*(byte *)(param_6 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)(param_6 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_6 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_6 + 0x2a) & 7" (pointer_expression "*(byte *)(param_6 + 0x2a)" * (cast_expression "(byte *)(param_6 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x2a)" ( (binary_expression "param_6 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }" { comment (expression_statement "FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);" (call_expression "FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3)" identifier (argument_list "("../../gold/symtab.h",0xa1,"object",param_3)" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") , identifier ))) ;) })) (if_statement "if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }" if (parenthesized_expression "((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc)))" ( (binary_expression "(((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))" (parenthesized_expression "(((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0))" ( (binary_expression "((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)" (parenthesized_expression "((*(byte *)(param_6 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(param_6 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_6 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(param_6 + 0x2b) & 0x20" (pointer_expression "*(byte *)(param_6 + 0x2b)" * (cast_expression "(byte *)(param_6 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x2b)" ( (binary_expression "param_6 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(param_6 + 0xc) != 0)" ( (binary_expression "*(int *)(param_6 + 0xc) != 0" (pointer_expression "*(int *)(param_6 + 0xc)" * (cast_expression "(int *)(param_6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0xc)" ( (binary_expression "param_6 + 0xc" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))" ( (comma_expression "iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc)" (assignment_expression "iVar4 = *(int *)(param_6 + 8)" identifier = (pointer_expression "*(int *)(param_6 + 8)" * (cast_expression "(int *)(param_6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 8)" ( (binary_expression "param_6 + 8" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc)" (pointer_expression "*(int *)(iVar4 + 0x140)" * (cast_expression "(int *)(iVar4 + 0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x140)" ( (binary_expression "iVar4 + 0x140" identifier + number_literal) )))) == (pointer_expression "*(int *)(param_6 + 0xc)" * (cast_expression "(int *)(param_6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0xc)" ( (binary_expression "param_6 + 0xc" identifier + number_literal) )))))) ))) )) (compound_statement "{\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }" { (expression_statement "iVar5 = FUN_00053620();" (assignment_expression "iVar5 = FUN_00053620()" identifier = (call_expression "FUN_00053620()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x30) >> 4;" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x30) >> 4" identifier = (binary_expression "*(uint *)(iVar5 + 0x30) >> 4" (pointer_expression "*(uint *)(iVar5 + 0x30)" * (cast_expression "(uint *)(iVar5 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) )))) >> number_literal)) ;) (if_statement "if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }" if (parenthesized_expression "(*(char *)(iVar4 + 0x14d) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x14d) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x14d)" * (cast_expression "(char *)(iVar4 + 0x14d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14d)" ( (binary_expression "iVar4 + 0x14d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }" { (expression_statement "iVar5 = *(int *)(iVar4 + 0x168);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x168)" identifier = (pointer_expression "*(int *)(iVar4 + 0x168)" * (cast_expression "(int *)(iVar4 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x168)" ( (binary_expression "iVar4 + 0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;" (assignment_expression "uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4" identifier = (binary_expression "*(int *)(iVar4 + 0x16c) - iVar5 >> 4" (binary_expression "*(int *)(iVar4 + 0x16c) - iVar5" (pointer_expression "*(int *)(iVar4 + 0x16c)" * (cast_expression "(int *)(iVar4 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x16c)" ( (binary_expression "iVar4 + 0x16c" identifier + number_literal) )))) - identifier) >> number_literal)) ;) (if_statement "if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }" if (parenthesized_expression "(uVar7 <= uVar6)" ( (binary_expression "uVar7 <= uVar6" identifier <= identifier) )) (compound_statement "{\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }" { (expression_statement "uVar1 = uVar6 + 1;" (assignment_expression "uVar1 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (if_statement "if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" if (parenthesized_expression "(uVar7 < uVar1)" ( (binary_expression "uVar7 < uVar1" identifier < identifier) )) (compound_statement "{\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }" { (expression_statement "FUN_00054e60();" (call_expression "FUN_00054e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = *(int *)(iVar4 + 0x168);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x168)" identifier = (pointer_expression "*(int *)(iVar4 + 0x168)" * (cast_expression "(int *)(iVar4 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x168)" ( (binary_expression "iVar4 + 0x168" identifier + number_literal) ))))) ;) }) (else_clause "else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" else (if_statement "if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" if (parenthesized_expression "((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                )" ( (binary_expression "(uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)" (parenthesized_expression "(uVar1 < uVar7)" ( (binary_expression "uVar1 < uVar7" identifier < identifier) )) && (parenthesized_expression "(iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)" ( (comma_expression "iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2" (assignment_expression "iVar2 = iVar5 + uVar1 * 0x10" identifier = (binary_expression "iVar5 + uVar1 * 0x10" identifier + (binary_expression "uVar1 * 0x10" identifier * number_literal))) , (binary_expression "*(int *)(iVar4 + 0x16c) != iVar2" (pointer_expression "*(int *)(iVar4 + 0x16c)" * (cast_expression "(int *)(iVar4 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x16c)" ( (binary_expression "iVar4 + 0x16c" identifier + number_literal) )))) != identifier)) ))) )) (compound_statement "{\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" { (expression_statement "*(int *)(iVar4 + 0x16c) = iVar2;" (assignment_expression "*(int *)(iVar4 + 0x16c) = iVar2" (pointer_expression "*(int *)(iVar4 + 0x16c)" * (cast_expression "(int *)(iVar4 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x16c)" ( (binary_expression "iVar4 + 0x16c" identifier + number_literal) )))) = identifier) ;) })))) })) (expression_statement "pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);" (assignment_expression "pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10)" identifier = (cast_expression "(byte *)(iVar5 + 4 + uVar6 * 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4 + uVar6 * 0x10)" ( (binary_expression "iVar5 + 4 + uVar6 * 0x10" (binary_expression "iVar5 + 4" identifier + number_literal) + (binary_expression "uVar6 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "*pbVar3 = *pbVar3 | 2;" (assignment_expression "*pbVar3 = *pbVar3 | 2" (pointer_expression "*pbVar3" * identifier) = (binary_expression "*pbVar3 | 2" (pointer_expression "*pbVar3" * identifier) | number_literal)) ;) }) (else_clause "else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }" else (compound_statement "{\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }" { (expression_statement "uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;" (assignment_expression "uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4" identifier = (binary_expression "*(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4" (binary_expression "*(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168)" (pointer_expression "*(int *)(iVar4 + 0x16c)" * (cast_expression "(int *)(iVar4 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x16c)" ( (binary_expression "iVar4 + 0x16c" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x168)" * (cast_expression "(int *)(iVar4 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x168)" ( (binary_expression "iVar4 + 0x168" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (uVar7 <= uVar6) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }" if (parenthesized_expression "(uVar7 <= uVar6)" ( (binary_expression "uVar7 <= uVar6" identifier <= identifier) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }" { comment (expression_statement "FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);" (call_expression "FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7)" identifier (argument_list "("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7)" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""get_opd_ent"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);" (assignment_expression "iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" identifier = (pointer_expression "*(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" ( (binary_expression "*(int *)(iVar4 + 0x168) + uVar6 * 0x10" (pointer_expression "*(int *)(iVar4 + 0x168)" * (cast_expression "(int *)(iVar4 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x168)" ( (binary_expression "iVar4 + 0x168" identifier + number_literal) )))) + (binary_expression "uVar6 * 0x10" identifier * number_literal)) ))))) ;) (if_statement "if (iVar5 == 0) {\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }" { comment (expression_statement "FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);" (call_expression "FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0)" identifier (argument_list "("../../gold/powerpc.cc",0xc5,"get_opd_ent",0)" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""get_opd_ent"" " string_content ") , number_literal ))) ;) })) (expression_statement "local_14 = iVar4;" (assignment_expression "local_14 = iVar4" identifier = identifier) ;) (expression_statement "local_10 = iVar5;" (assignment_expression "local_10 = iVar5" identifier = identifier) ;) (expression_statement "FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);" (call_expression "FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14)" identifier (argument_list "(*(undefined4 *)(param_5 + 0x158),&local_14)" ( (pointer_expression "*(undefined4 *)(param_5 + 0x158)" * (cast_expression "(undefined4 *)(param_5 + 0x158)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x158)" ( (binary_expression "param_5 + 0x158" identifier + number_literal) )))) , (pointer_expression "&local_14" & identifier) ))) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "DT": Some values do not have unique names */\n/* DWARF original prototype: void do_gc_mark_symbol(Target_powerpc<64,_true> * this, Symbol_table *\n   symtab, Symbol * sym) */\n\nvoid __thiscall\nanon_unknown.dwarf_2af53c::Target_powerpc<64,_true>::do_gc_mark_symbol\n          (Target_powerpc<64,_true> *this,Symbol_table *symtab,Symbol *sym)\n\n{\n}\n\n" comment comment comment (ERROR "void __thiscall\nanon_unknown.dwarf_2af53c::Target_powerpc<64,_true>::do_gc_mark_symbol\n          (Target_powerpc<64,_true> *this,Symbol_table *symtab,Symbol *sym)" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_2af53c::" identifier . identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::" identifier > : :) (function_declarator "do_gc_mark_symbol\n          (Target_powerpc<64,_true> *this,Symbol_table *symtab,Symbol *sym)" identifier (parameter_list "(Target_powerpc<64,_true> *this,Symbol_table *symtab,Symbol *sym)" ( (parameter_declaration "Target_powerpc" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Symbol_table *symtab" type_identifier (pointer_declarator "*symtab" * identifier)) , (parameter_declaration "Symbol *sym" type_identifier (pointer_declarator "*sym" * identifier)) )))) (compound_statement "{\n}" { }))
(translation_unit "void __regparm3\nFUN_0006af70(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5\n            ,int param_6)\n\n{\n  uint uVar1;\n  int iVar2;\n  byte *pbVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int local_14;\n  int local_10;\n  \n  local_10 = 0x6af78;\n  if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {\n                    \n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }\n  if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }\n  return;\n}\n\n" (function_definition "void __regparm3\nFUN_0006af70(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5\n            ,int param_6)\n\n{\n  uint uVar1;\n  int iVar2;\n  byte *pbVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int local_14;\n  int local_10;\n  \n  local_10 = 0x6af78;\n  if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {\n                    \n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }\n  if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0006af70(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5\n            ,int param_6)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5\n            ,int param_6)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  byte *pbVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int local_14;\n  int local_10;\n  \n  local_10 = 0x6af78;\n  if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {\n                    \n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }\n  if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "byte *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "int local_14;" primitive_type identifier ;) (declaration "int local_10;" primitive_type identifier ;) (expression_statement "local_10 = 0x6af78;" (assignment_expression "local_10 = 0x6af78" identifier = number_literal) ;) (if_statement "if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {\n                    \n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }" if (parenthesized_expression "((*(byte *)(param_6 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)(param_6 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_6 + 0x2a) & 7)" ( (binary_expression "*(byte *)(param_6 + 0x2a) & 7" (pointer_expression "*(byte *)(param_6 + 0x2a)" * (cast_expression "(byte *)(param_6 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x2a)" ( (binary_expression "param_6 + 0x2a" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                    \n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }" { (expression_statement "FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);" (call_expression "FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3)" identifier (argument_list "("../../gold/symtab.h",0xa1,"object",param_3)" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") , identifier ))) ;) })) (if_statement "if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }" if (parenthesized_expression "((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc)))" ( (binary_expression "(((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))" (parenthesized_expression "(((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0))" ( (binary_expression "((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)" (parenthesized_expression "((*(byte *)(param_6 + 0x2b) & 0x20) != 0)" ( (binary_expression "(*(byte *)(param_6 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_6 + 0x2b) & 0x20)" ( (binary_expression "*(byte *)(param_6 + 0x2b) & 0x20" (pointer_expression "*(byte *)(param_6 + 0x2b)" * (cast_expression "(byte *)(param_6 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0x2b)" ( (binary_expression "param_6 + 0x2b" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(int *)(param_6 + 0xc) != 0)" ( (binary_expression "*(int *)(param_6 + 0xc) != 0" (pointer_expression "*(int *)(param_6 + 0xc)" * (cast_expression "(int *)(param_6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0xc)" ( (binary_expression "param_6 + 0xc" identifier + number_literal) )))) != number_literal) ))) )) && (parenthesized_expression "(iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))" ( (comma_expression "iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc)" (assignment_expression "iVar4 = *(int *)(param_6 + 8)" identifier = (pointer_expression "*(int *)(param_6 + 8)" * (cast_expression "(int *)(param_6 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 8)" ( (binary_expression "param_6 + 8" identifier + number_literal) ))))) , (binary_expression "*(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc)" (pointer_expression "*(int *)(iVar4 + 0x140)" * (cast_expression "(int *)(iVar4 + 0x140)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x140)" ( (binary_expression "iVar4 + 0x140" identifier + number_literal) )))) == (pointer_expression "*(int *)(param_6 + 0xc)" * (cast_expression "(int *)(param_6 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + 0xc)" ( (binary_expression "param_6 + 0xc" identifier + number_literal) )))))) ))) )) (compound_statement "{\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }" { (expression_statement "iVar5 = FUN_00053620();" (assignment_expression "iVar5 = FUN_00053620()" identifier = (call_expression "FUN_00053620()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x30) >> 4;" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x30) >> 4" identifier = (binary_expression "*(uint *)(iVar5 + 0x30) >> 4" (pointer_expression "*(uint *)(iVar5 + 0x30)" * (cast_expression "(uint *)(iVar5 + 0x30)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x30)" ( (binary_expression "iVar5 + 0x30" identifier + number_literal) )))) >> number_literal)) ;) (if_statement "if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }" if (parenthesized_expression "(*(char *)(iVar4 + 0x14d) == '\0')" ( (binary_expression "*(char *)(iVar4 + 0x14d) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x14d)" * (cast_expression "(char *)(iVar4 + 0x14d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14d)" ( (binary_expression "iVar4 + 0x14d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }" { (expression_statement "iVar5 = *(int *)(iVar4 + 0x168);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x168)" identifier = (pointer_expression "*(int *)(iVar4 + 0x168)" * (cast_expression "(int *)(iVar4 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x168)" ( (binary_expression "iVar4 + 0x168" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;" (assignment_expression "uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4" identifier = (binary_expression "*(int *)(iVar4 + 0x16c) - iVar5 >> 4" (binary_expression "*(int *)(iVar4 + 0x16c) - iVar5" (pointer_expression "*(int *)(iVar4 + 0x16c)" * (cast_expression "(int *)(iVar4 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x16c)" ( (binary_expression "iVar4 + 0x16c" identifier + number_literal) )))) - identifier) >> number_literal)) ;) (if_statement "if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }" if (parenthesized_expression "(uVar7 <= uVar6)" ( (binary_expression "uVar7 <= uVar6" identifier <= identifier) )) (compound_statement "{\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }" { (expression_statement "uVar1 = uVar6 + 1;" (assignment_expression "uVar1 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (if_statement "if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" if (parenthesized_expression "(uVar7 < uVar1)" ( (binary_expression "uVar7 < uVar1" identifier < identifier) )) (compound_statement "{\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }" { (expression_statement "FUN_00054e60();" (call_expression "FUN_00054e60()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = *(int *)(iVar4 + 0x168);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x168)" identifier = (pointer_expression "*(int *)(iVar4 + 0x168)" * (cast_expression "(int *)(iVar4 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x168)" ( (binary_expression "iVar4 + 0x168" identifier + number_literal) ))))) ;) }) (else_clause "else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" else (if_statement "if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" if (parenthesized_expression "((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                )" ( (binary_expression "(uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)" (parenthesized_expression "(uVar1 < uVar7)" ( (binary_expression "uVar1 < uVar7" identifier < identifier) )) && (parenthesized_expression "(iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)" ( (comma_expression "iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2" (assignment_expression "iVar2 = iVar5 + uVar1 * 0x10" identifier = (binary_expression "iVar5 + uVar1 * 0x10" identifier + (binary_expression "uVar1 * 0x10" identifier * number_literal))) , (binary_expression "*(int *)(iVar4 + 0x16c) != iVar2" (pointer_expression "*(int *)(iVar4 + 0x16c)" * (cast_expression "(int *)(iVar4 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x16c)" ( (binary_expression "iVar4 + 0x16c" identifier + number_literal) )))) != identifier)) ))) )) (compound_statement "{\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" { (expression_statement "*(int *)(iVar4 + 0x16c) = iVar2;" (assignment_expression "*(int *)(iVar4 + 0x16c) = iVar2" (pointer_expression "*(int *)(iVar4 + 0x16c)" * (cast_expression "(int *)(iVar4 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x16c)" ( (binary_expression "iVar4 + 0x16c" identifier + number_literal) )))) = identifier) ;) })))) })) (expression_statement "pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);" (assignment_expression "pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10)" identifier = (cast_expression "(byte *)(iVar5 + 4 + uVar6 * 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4 + uVar6 * 0x10)" ( (binary_expression "iVar5 + 4 + uVar6 * 0x10" (binary_expression "iVar5 + 4" identifier + number_literal) + (binary_expression "uVar6 * 0x10" identifier * number_literal)) )))) ;) (expression_statement "*pbVar3 = *pbVar3 | 2;" (assignment_expression "*pbVar3 = *pbVar3 | 2" (pointer_expression "*pbVar3" * identifier) = (binary_expression "*pbVar3 | 2" (pointer_expression "*pbVar3" * identifier) | number_literal)) ;) }) (else_clause "else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }" else (compound_statement "{\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }" { (expression_statement "uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;" (assignment_expression "uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4" identifier = (binary_expression "*(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4" (binary_expression "*(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168)" (pointer_expression "*(int *)(iVar4 + 0x16c)" * (cast_expression "(int *)(iVar4 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x16c)" ( (binary_expression "iVar4 + 0x16c" identifier + number_literal) )))) - (pointer_expression "*(int *)(iVar4 + 0x168)" * (cast_expression "(int *)(iVar4 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x168)" ( (binary_expression "iVar4 + 0x168" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }" if (parenthesized_expression "(uVar7 <= uVar6)" ( (binary_expression "uVar7 <= uVar6" identifier <= identifier) )) (compound_statement "{\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }" { (expression_statement "FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);" (call_expression "FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7)" identifier (argument_list "("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7)" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""get_opd_ent"" " string_content ") , identifier ))) ;) })) (expression_statement "iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);" (assignment_expression "iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" identifier = (pointer_expression "*(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" * (cast_expression "(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" ( (binary_expression "*(int *)(iVar4 + 0x168) + uVar6 * 0x10" (pointer_expression "*(int *)(iVar4 + 0x168)" * (cast_expression "(int *)(iVar4 + 0x168)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x168)" ( (binary_expression "iVar4 + 0x168" identifier + number_literal) )))) + (binary_expression "uVar6 * 0x10" identifier * number_literal)) ))))) ;) (if_statement "if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }" { (expression_statement "FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);" (call_expression "FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0)" identifier (argument_list "("../../gold/powerpc.cc",0xc5,"get_opd_ent",0)" ( (string_literal ""../../gold/powerpc.cc"" " string_content ") , number_literal , (string_literal ""get_opd_ent"" " string_content ") , number_literal ))) ;) })) (expression_statement "local_14 = iVar4;" (assignment_expression "local_14 = iVar4" identifier = identifier) ;) (expression_statement "local_10 = iVar5;" (assignment_expression "local_10 = iVar5" identifier = identifier) ;) (expression_statement "FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);" (call_expression "FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14)" identifier (argument_list "(*(undefined4 *)(param_5 + 0x158),&local_14)" ( (pointer_expression "*(undefined4 *)(param_5 + 0x158)" * (cast_expression "(undefined4 *)(param_5 + 0x158)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x158)" ( (binary_expression "param_5 + 0x158" identifier + number_literal) )))) , (pointer_expression "&local_14" & identifier) ))) ;) }))) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (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 IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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) ))))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression & IDENT) ))) ;) }))) })) (return_statement return ;) })))
(function_definition "void __regparm3\nFUN_0006af70(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5\n            ,int param_6)\n\n{\n  uint uVar1;\n  int iVar2;\n  byte *pbVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int local_14;\n  int local_10;\n  \n  local_10 = 0x6af78;\n  if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {\n                    \n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }\n  if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0006af70(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5\n            ,int param_6)" (identifier "FUN_0006af70") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5\n            ,int param_6)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  byte *pbVar3;\n  int iVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  int local_14;\n  int local_10;\n  \n  local_10 = 0x6af78;\n  if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {\n                    \n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }\n  if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "byte *pbVar3;" (type_identifier "byte") (pointer_declarator "*pbVar3" (* "*") (identifier "pbVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (declaration "int local_10;" (primitive_type "int") (identifier "local_10") (; ";")) (expression_statement "local_10 = 0x6af78;" (assignment_expression "local_10 = 0x6af78" (identifier "local_10") (= "=") (number_literal "0x6af78")) (; ";")) (if_statement "if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {\n                    \n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_6 + 0x2a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)(param_6 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)(param_6 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)(param_6 + 0x2a) & 7" (pointer_expression "*(byte *)(param_6 + 0x2a)" (* "*") (cast_expression "(byte *)(param_6 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x2a)" (( "(") (binary_expression "param_6 + 0x2a" (identifier "param_6") (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);\n  }" ({ "{") (expression_statement "FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);" (call_expression "FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3)" (identifier "FUN_000da200") (argument_list "("../../gold/symtab.h",0xa1,"object",param_3)" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xa1") (, ",") (string_literal ""object"" (" """) (string_content "object") (" """)) (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (if_statement "if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }" (if "if") (parenthesized_expression "((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc)))" (( "(") (binary_expression "(((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&\n     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))" (parenthesized_expression "(((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0))" (( "(") (binary_expression "((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)" (parenthesized_expression "((*(byte *)(param_6 + 0x2b) & 0x20) != 0)" (( "(") (binary_expression "(*(byte *)(param_6 + 0x2b) & 0x20) != 0" (parenthesized_expression "(*(byte *)(param_6 + 0x2b) & 0x20)" (( "(") (binary_expression "*(byte *)(param_6 + 0x2b) & 0x20" (pointer_expression "*(byte *)(param_6 + 0x2b)" (* "*") (cast_expression "(byte *)(param_6 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0x2b)" (( "(") (binary_expression "param_6 + 0x2b" (identifier "param_6") (+ "+") (number_literal "0x2b")) () ")")))) (& "&") (number_literal "0x20")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_6 + 0xc) != 0)" (( "(") (binary_expression "*(int *)(param_6 + 0xc) != 0" (pointer_expression "*(int *)(param_6 + 0xc)" (* "*") (cast_expression "(int *)(param_6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0xc)" (( "(") (binary_expression "param_6 + 0xc" (identifier "param_6") (+ "+") (number_literal "0xc")) () ")")))) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))" (( "(") (comma_expression "iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc)" (assignment_expression "iVar4 = *(int *)(param_6 + 8)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(param_6 + 8)" (* "*") (cast_expression "(int *)(param_6 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 8)" (( "(") (binary_expression "param_6 + 8" (identifier "param_6") (+ "+") (number_literal "8")) () ")"))))) (, ",") (binary_expression "*(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc)" (pointer_expression "*(int *)(iVar4 + 0x140)" (* "*") (cast_expression "(int *)(iVar4 + 0x140)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x140)" (( "(") (binary_expression "iVar4 + 0x140" (identifier "iVar4") (+ "+") (number_literal "0x140")) () ")")))) (== "==") (pointer_expression "*(int *)(param_6 + 0xc)" (* "*") (cast_expression "(int *)(param_6 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + 0xc)" (( "(") (binary_expression "param_6 + 0xc" (identifier "param_6") (+ "+") (number_literal "0xc")) () ")")))))) () ")"))) () ")")) (compound_statement "{\n    iVar5 = FUN_00053620();\n    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;\n    if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }\n  }" ({ "{") (expression_statement "iVar5 = FUN_00053620();" (assignment_expression "iVar5 = FUN_00053620()" (identifier "iVar5") (= "=") (call_expression "FUN_00053620()" (identifier "FUN_00053620") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar6 = *(uint *)(iVar5 + 0x30) >> 4;" (assignment_expression "uVar6 = *(uint *)(iVar5 + 0x30) >> 4" (identifier "uVar6") (= "=") (binary_expression "*(uint *)(iVar5 + 0x30) >> 4" (pointer_expression "*(uint *)(iVar5 + 0x30)" (* "*") (cast_expression "(uint *)(iVar5 + 0x30)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x30)" (( "(") (binary_expression "iVar5 + 0x30" (identifier "iVar5") (+ "+") (number_literal "0x30")) () ")")))) (>> ">>") (number_literal "4"))) (; ";")) (if_statement "if (*(char *)(iVar4 + 0x14d) == '\0') {\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }\n    else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar4 + 0x14d) == '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 0x14d) == '\0'" (pointer_expression "*(char *)(iVar4 + 0x14d)" (* "*") (cast_expression "(char *)(iVar4 + 0x14d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14d)" (( "(") (binary_expression "iVar4 + 0x14d" (identifier "iVar4") (+ "+") (number_literal "0x14d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar5 = *(int *)(iVar4 + 0x168);\n      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;\n      if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }\n      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);\n      *pbVar3 = *pbVar3 | 2;\n    }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar4 + 0x168);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x168)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar4 + 0x168)" (* "*") (cast_expression "(int *)(iVar4 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x168)" (( "(") (binary_expression "iVar4 + 0x168" (identifier "iVar4") (+ "+") (number_literal "0x168")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;" (assignment_expression "uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4" (identifier "uVar7") (= "=") (binary_expression "*(int *)(iVar4 + 0x16c) - iVar5 >> 4" (binary_expression "*(int *)(iVar4 + 0x16c) - iVar5" (pointer_expression "*(int *)(iVar4 + 0x16c)" (* "*") (cast_expression "(int *)(iVar4 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x16c)" (( "(") (binary_expression "iVar4 + 0x16c" (identifier "iVar4") (+ "+") (number_literal "0x16c")) () ")")))) (- "-") (identifier "iVar5")) (>> ">>") (number_literal "4"))) (; ";")) (if_statement "if (uVar7 <= uVar6) {\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }" (if "if") (parenthesized_expression "(uVar7 <= uVar6)" (( "(") (binary_expression "uVar7 <= uVar6" (identifier "uVar7") (<= "<=") (identifier "uVar6")) () ")")) (compound_statement "{\n        uVar1 = uVar6 + 1;\n        if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }\n      }" ({ "{") (expression_statement "uVar1 = uVar6 + 1;" (assignment_expression "uVar1 = uVar6 + 1" (identifier "uVar1") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar7 < uVar1) {\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }\n        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" (if "if") (parenthesized_expression "(uVar7 < uVar1)" (( "(") (binary_expression "uVar7 < uVar1" (identifier "uVar7") (< "<") (identifier "uVar1")) () ")")) (compound_statement "{\n          FUN_00054e60();\n          iVar5 = *(int *)(iVar4 + 0x168);\n        }" ({ "{") (expression_statement "FUN_00054e60();" (call_expression "FUN_00054e60()" (identifier "FUN_00054e60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(iVar4 + 0x168);" (assignment_expression "iVar5 = *(int *)(iVar4 + 0x168)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar4 + 0x168)" (* "*") (cast_expression "(int *)(iVar4 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x168)" (( "(") (binary_expression "iVar4 + 0x168" (identifier "iVar4") (+ "+") (number_literal "0x168")) () ")"))))) (; ";")) (} "}")) (else_clause "else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" (else "else") (if_statement "if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                ) {\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" (if "if") (parenthesized_expression "((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)\n                )" (( "(") (binary_expression "(uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)" (parenthesized_expression "(uVar1 < uVar7)" (( "(") (binary_expression "uVar1 < uVar7" (identifier "uVar1") (< "<") (identifier "uVar7")) () ")")) (&& "&&") (parenthesized_expression "(iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)" (( "(") (comma_expression "iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2" (assignment_expression "iVar2 = iVar5 + uVar1 * 0x10" (identifier "iVar2") (= "=") (binary_expression "iVar5 + uVar1 * 0x10" (identifier "iVar5") (+ "+") (binary_expression "uVar1 * 0x10" (identifier "uVar1") (* "*") (number_literal "0x10")))) (, ",") (binary_expression "*(int *)(iVar4 + 0x16c) != iVar2" (pointer_expression "*(int *)(iVar4 + 0x16c)" (* "*") (cast_expression "(int *)(iVar4 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x16c)" (( "(") (binary_expression "iVar4 + 0x16c" (identifier "iVar4") (+ "+") (number_literal "0x16c")) () ")")))) (!= "!=") (identifier "iVar2"))) () ")"))) () ")")) (compound_statement "{\n          *(int *)(iVar4 + 0x16c) = iVar2;\n        }" ({ "{") (expression_statement "*(int *)(iVar4 + 0x16c) = iVar2;" (assignment_expression "*(int *)(iVar4 + 0x16c) = iVar2" (pointer_expression "*(int *)(iVar4 + 0x16c)" (* "*") (cast_expression "(int *)(iVar4 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x16c)" (( "(") (binary_expression "iVar4 + 0x16c" (identifier "iVar4") (+ "+") (number_literal "0x16c")) () ")")))) (= "=") (identifier "iVar2")) (; ";")) (} "}"))))) (} "}"))) (expression_statement "pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);" (assignment_expression "pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10)" (identifier "pbVar3") (= "=") (cast_expression "(byte *)(iVar5 + 4 + uVar6 * 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4 + uVar6 * 0x10)" (( "(") (binary_expression "iVar5 + 4 + uVar6 * 0x10" (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) (+ "+") (binary_expression "uVar6 * 0x10" (identifier "uVar6") (* "*") (number_literal "0x10"))) () ")")))) (; ";")) (expression_statement "*pbVar3 = *pbVar3 | 2;" (assignment_expression "*pbVar3 = *pbVar3 | 2" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (= "=") (binary_expression "*pbVar3 | 2" (pointer_expression "*pbVar3" (* "*") (identifier "pbVar3")) (| "|") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }" (else "else") (compound_statement "{\n      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;\n      if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }\n      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);\n      if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }\n      local_14 = iVar4;\n      local_10 = iVar5;\n      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);\n    }" ({ "{") (expression_statement "uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;" (assignment_expression "uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4" (identifier "uVar7") (= "=") (binary_expression "*(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4" (binary_expression "*(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168)" (pointer_expression "*(int *)(iVar4 + 0x16c)" (* "*") (cast_expression "(int *)(iVar4 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x16c)" (( "(") (binary_expression "iVar4 + 0x16c" (identifier "iVar4") (+ "+") (number_literal "0x16c")) () ")")))) (- "-") (pointer_expression "*(int *)(iVar4 + 0x168)" (* "*") (cast_expression "(int *)(iVar4 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x168)" (( "(") (binary_expression "iVar4 + 0x168" (identifier "iVar4") (+ "+") (number_literal "0x168")) () ")"))))) (>> ">>") (number_literal "4"))) (; ";")) (if_statement "if (uVar7 <= uVar6) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }" (if "if") (parenthesized_expression "(uVar7 <= uVar6)" (( "(") (binary_expression "uVar7 <= uVar6" (identifier "uVar7") (<= "<=") (identifier "uVar6")) () ")")) (compound_statement "{\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);\n      }" ({ "{") (expression_statement "FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);" (call_expression "FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7)" (identifier "FUN_000da200") (argument_list "("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7)" (( "(") (string_literal ""../../gold/powerpc.cc"" (" """) (string_content "../../gold/powerpc.cc") (" """)) (, ",") (number_literal "0xc4") (, ",") (string_literal ""get_opd_ent"" (" """) (string_content "get_opd_ent") (" """)) (, ",") (identifier "uVar7") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);" (assignment_expression "iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" (* "*") (cast_expression "(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar4 + 0x168) + uVar6 * 0x10)" (( "(") (binary_expression "*(int *)(iVar4 + 0x168) + uVar6 * 0x10" (pointer_expression "*(int *)(iVar4 + 0x168)" (* "*") (cast_expression "(int *)(iVar4 + 0x168)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x168)" (( "(") (binary_expression "iVar4 + 0x168" (identifier "iVar4") (+ "+") (number_literal "0x168")) () ")")))) (+ "+") (binary_expression "uVar6 * 0x10" (identifier "uVar6") (* "*") (number_literal "0x10"))) () ")"))))) (; ";")) (if_statement "if (iVar5 == 0) {\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);\n      }" ({ "{") (expression_statement "FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);" (call_expression "FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0)" (identifier "FUN_000da200") (argument_list "("../../gold/powerpc.cc",0xc5,"get_opd_ent",0)" (( "(") (string_literal ""../../gold/powerpc.cc"" (" """) (string_content "../../gold/powerpc.cc") (" """)) (, ",") (number_literal "0xc5") (, ",") (string_literal ""get_opd_ent"" (" """) (string_content "get_opd_ent") (" """)) (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "local_14 = iVar4;" (assignment_expression "local_14 = iVar4" (identifier "local_14") (= "=") (identifier "iVar4")) (; ";")) (expression_statement "local_10 = iVar5;" (assignment_expression "local_10 = iVar5" (identifier "local_10") (= "=") (identifier "iVar5")) (; ";")) (expression_statement "FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);" (call_expression "FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14)" (identifier "FUN_000aa900") (argument_list "(*(undefined4 *)(param_5 + 0x158),&local_14)" (( "(") (pointer_expression "*(undefined4 *)(param_5 + 0x158)" (* "*") (cast_expression "(undefined4 *)(param_5 + 0x158)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x158)" (( "(") (binary_expression "param_5 + 0x158" (identifier "param_5") (+ "+") (number_literal "0x158")) () ")")))) (, ",") (pointer_expression "&local_14" (& "&") (identifier "local_14")) () ")"))) (; ";")) (} "}")))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* WARNING: Enum "DT": Some values do not have unique names */
/* DWARF original prototype: void do_gc_mark_symbol(Target_powerpc<64,_true> * this, Symbol_table *
   symtab, Symbol * sym) */

void __thiscall
anon_unknown.dwarf_2af53c::Target_powerpc<64,_true>::do_gc_mark_symbol
          (Target_powerpc<64,_true> *this,Symbol_table *symtab,Symbol *sym)

{
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3
MASKED(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4,int param_5
            ,int param_6)

{
  uint uVar1;
  int iVar2;
  byte *pbVar3;
  int iVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  int local_14;
  int local_10;
  
  local_10 = 0x6af78;
  if ((*(byte *)(param_6 + 0x2a) & 7) != 0) {
                    /* WARNING: Subroutine does not return */
    FUN_000da200("../../gold/symtab.h",0xa1,"object",param_3);
  }
  if ((((*(byte *)(param_6 + 0x2b) & 0x20) != 0) && (*(int *)(param_6 + 0xc) != 0)) &&
     (iVar4 = *(int *)(param_6 + 8), *(int *)(iVar4 + 0x140) == *(int *)(param_6 + 0xc))) {
    iVar5 = FUN_00053620();
    uVar6 = *(uint *)(iVar5 + 0x30) >> 4;
    if (*(char *)(iVar4 + 0x14d) == '\0') {
      iVar5 = *(int *)(iVar4 + 0x168);
      uVar7 = *(int *)(iVar4 + 0x16c) - iVar5 >> 4;
      if (uVar7 <= uVar6) {
        uVar1 = uVar6 + 1;
        if (uVar7 < uVar1) {
          FUN_00054e60();
          iVar5 = *(int *)(iVar4 + 0x168);
        }
        else if ((uVar1 < uVar7) && (iVar2 = iVar5 + uVar1 * 0x10, *(int *)(iVar4 + 0x16c) != iVar2)
                ) {
          *(int *)(iVar4 + 0x16c) = iVar2;
        }
      }
      pbVar3 = (byte *)(iVar5 + 4 + uVar6 * 0x10);
      *pbVar3 = *pbVar3 | 2;
    }
    else {
      uVar7 = *(int *)(iVar4 + 0x16c) - *(int *)(iVar4 + 0x168) >> 4;
      if (uVar7 <= uVar6) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/powerpc.cc",0xc4,"get_opd_ent",uVar7);
      }
      iVar5 = *(int *)(*(int *)(iVar4 + 0x168) + uVar6 * 0x10);
      if (iVar5 == 0) {
                    /* WARNING: Subroutine does not return */
        FUN_000da200("../../gold/powerpc.cc",0xc5,"get_opd_ent",0);
      }
      local_14 = iVar4;
      local_10 = iVar5;
      FUN_000aa900(*(undefined4 *)(param_5 + 0x158),&local_14);
    }
  }
  return;
}

