
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: Value_type compute_final_value<32>(Symbol_table * this,
   Sized_symbol<32> * sym, Compute_final_value_status * pstatus) */

Value_type __thiscall
gold::Symbol_table::compute_final_value<32>
          (Symbol_table *this,Sized_symbol<32> *sym,Compute_final_value_status *pstatus)

{
}



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

code * FUN_00351050(int param_1,int *param_2,undefined4 *param_3)

{
  char cVar1;
  int *piVar2;
  int iVar3;
  code *pcVar4;
  int *piVar5;
  uint uVar6;
  int iVar7;
  undefined4 extraout_ECX;
  uint uVar8;
  byte bVar9;
  byte bVar10;
  code *pcVar11;
  uint uVar12;
  int **ppiVar13;
  int **ppiVar14;
  undefined8 uVar15;
  int *piStack_40;
  undefined1 auStack_3c [4];
  int *piStack_38;
  uint uStack_34;
  int iStack_30;
  code *pcStack_2c;
  code *pcStack_28;
  int *apiStack_24 [4];
  undefined4 uStack_14;
  
  uStack_14 = 0x351059;
  bVar10 = *(byte *)((int)param_2 + 0x2a);
  piVar2 = (int *)(bVar10 & 7);
  if (4 < (byte)piVar2) {
    piStack_40 = piVar2;
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");
  }
  switch(piVar2) {
  case (int *)0x0:
    if ((bVar10 & 7) != 0) {
      piStack_40 = piVar2;
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");
    }
    piVar2 = (int *)param_2[3];
    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;
    bVar10 = bVar9 & 1;
    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {
      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);
      piVar5 = (int *)FUN_0034c920(piVar2);
      if ((char)piVar5 == '\0') {
        *param_3 = 1;
        return (code *)0x0;
      }
      bVar10 = (byte)pcStack_2c;
      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {
        piStack_40 = piVar5;
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/symtab.h",0xa1,"object");
      }
    }
    ppiVar13 = (int **)auStack_3c;
    pcVar4 = (code *)param_2[2];
    if (((byte)pcVar4[0x2c] & 1) == 0) {
      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);
      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);
      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {
        if (((byte)pcStack_2c != '\0') ||
           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {
          pcStack_28 = FUN_00071550;
          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {
            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);
            ppiVar14 = (int **)auStack_3c;
            if (piVar5 <= piVar2) goto code_r0x003515fc;
            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);
          }
          else {
            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);
          }
          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);
          if (cVar1 == '\0') {
            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);
            if (pcStack_2c == (code *)0x0) {
              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {
                piStack_40 = (int *)&UNK_003515fc;
                piVar5 = (int *)FUN_0034c490();
                ppiVar14 = (int **)auStack_3c;
                goto code_r0x003515fc;
              }
              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {
                piStack_40 = *(int **)(DAT_005ea7c8 + 8);
                if (piStack_40 == (int *)0x0) {
code_r0x0035164c:
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");
                }
                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {
                  piStack_40 = (int *)param_2[5];
                  if (piStack_40 == (int *)0x0) {
                    piStack_40 = (int *)&UNK_0035164c;
                    piStack_40 = (int *)FUN_0034c4c0();
                    goto code_r0x0035164c;
                  }
                  if (piStack_40 != (int *)0xffffffff) {
                    /* WARNING: Subroutine does not return */
                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");
                  }
                }
              }
              *param_3 = 2;
              return (code *)0x0;
            }
          }
          else {
            if (pcStack_2c != (code *)0x0) {
              piStack_40 = param_2;
                    /* WARNING: Subroutine does not return */
              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");
            }
            piStack_40 = piVar2;
            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);
            pcVar4 = pcStack_28;
            piStack_38 = apiStack_24[0];
            if (pcStack_28 == (code *)0x0) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);
            }
            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {
              iStack_30 = *(int *)(pcStack_28 + 0x38);
              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);
              ppiVar14 = &piStack_40;
              if (piVar5 <= apiStack_24[0]) {
code_r0x003515fc:
                *(int **)((int)ppiVar14 + -4) = piVar5;
                *(char **)((int)ppiVar14 + -8) = "do_output_section";
                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;
                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";
                    /* WARNING: Subroutine does not return */
                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;
                FUN_002446e0();
              }
              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);
              pcVar11 = pcStack_28;
            }
            else {
              pcStack_2c = pcStack_28;
              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))
                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);
              pcVar11 = pcStack_2c;
            }
            ppiVar13 = &piStack_40;
            if (iStack_30 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);
            }
            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);
            piVar2 = apiStack_24[0];
          }
          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);
          uVar8 = (uint)uVar15;
          uVar6 = uVar12 & uVar8;
          if (uVar6 == 0xffffffff) {
            iVar3 = param_2[0xc];
            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;
            *(int *)((int)ppiVar13 + -0x14) = iVar3;
            *(int **)((int)ppiVar13 + -0x18) = piVar2;
            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;
            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);
            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;
            pcVar4 = (code *)FUN_002cdbd0();
          }
          else {
            if (uVar12 != 0) {
              *(uint *)((int)ppiVar13 + -4) = uVar6;
              *(char **)((int)ppiVar13 + -8) = "convert_types";
              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;
              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";
                    /* WARNING: Subroutine does not return */
              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;
              FUN_002446e0();
            }
            iVar3 = param_2[0xc];
            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {
              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);
              if (pcVar4 == FUN_00144100) {
                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];
              }
              else {
                *(uint *)((int)ppiVar13 + 8) = uVar8;
                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);
                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;
                iVar7 = (*pcVar4)();
                uVar8 = *(uint *)((int)ppiVar13 + 8);
              }
              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);
            }
            else {
              uVar6 = *(uint *)((int)ppiVar13 + 0x10);
              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;
              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));
            }
          }
          break;
        }
        goto code_r0x003510f8;
      }
    }
  case (int *)0x4:
    pcVar4 = (code *)0x0;
    ppiVar13 = (int **)auStack_3c;
    break;
  case (int *)0x1:
    if ((bVar10 & 7) != 1) {
      piStack_40 = piVar2;
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");
    }
    piVar2 = (int *)param_2[2];
    pcStack_2c = (code *)param_2[0xc];
    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {
      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);
      if (piVar5 == (int *)0x0) {
        piStack_40 = piVar5;
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");
      }
      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {
        uStack_34 = piVar5[0x25];
        iStack_30 = piVar5[0x26];
      }
      else {
        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);
        uStack_34 = (uint)uVar15;
        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);
      }
      bVar10 = *(byte *)(piVar2 + 7);
      uVar6 = uStack_34;
      ppiVar13 = (int **)auStack_3c;
      if (((bVar10 & 1) == 0) ||
         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))
      goto code_r0x00351548;
      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;
      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {
        piStack_40 = piVar2;
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");
      }
    }
    else {
      bVar10 = *(byte *)(piVar2 + 7);
      uVar6 = *(byte *)(param_2 + 10) & 0xf;
      ppiVar13 = (int **)auStack_3c;
      if ((bVar10 & 1) == 0) {
code_r0x00351548:
        *(uint *)((int)ppiVar13 + -4) = uVar6;
        *(char **)((int)ppiVar13 + -8) = "address";
        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;
        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";
                    /* WARNING: Subroutine does not return */
        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;
        FUN_002446e0();
      }
      pcVar4 = (code *)param_2[0xc] + piVar2[1];
    }
    ppiVar13 = (int **)auStack_3c;
    if ((char)param_2[3] != '\0') {
      if ((bVar10 & 2) == 0) {
        piStack_40 = param_2;
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/output.h",0xcf,"data_size");
      }
      pcVar4 = pcVar4 + piVar2[3];
      ppiVar13 = (int **)auStack_3c;
    }
    break;
  case (int *)0x2:
    if ((bVar10 & 7) != 2) {
      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/symtab.h",200,"output_segment");
    }
    iVar3 = param_2[2];
    pcVar4 = (code *)param_2[0xc];
    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {
      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);
    }
    piStack_40 = (int *)param_2[3];
    if (piStack_40 == (int *)0x1) {
      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);
      ppiVar13 = (int **)auStack_3c;
    }
    else {
      ppiVar13 = (int **)auStack_3c;
      if (piStack_40 != (int *)0x0) {
        if (piStack_40 != (int *)0x2) {
                    /* WARNING: Subroutine does not return */
          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");
        }
        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);
        ppiVar13 = (int **)auStack_3c;
      }
    }
    break;
  case (int *)0x3:
code_r0x003510f8:
    pcVar4 = (code *)param_2[0xc];
    ppiVar13 = (int **)auStack_3c;
  }
  **(undefined4 **)((int)ppiVar13 + 0x48) = 0;
  return pcVar4;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x00050b50
ADD EBX,0x298fa7
SUB ESP,0x2c
MOV ESI,dword ptr [ESP + 0x44]
MOVZX EDX,byte ptr [ESI + 0x2a]
MOV EAX,EDX
AND EAX,0x7
CMP AL,0x4
JA 0x003514ce
MOVZX EAX,AL
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xffeaf4cc]
ADD ECX,EBX
JMP ECX
PUSH EAX
LEA EAX,[EBX + 0xffeafb88]
PUSH EAX
LEA EAX,[EBX + 0xffeaf339]
PUSH 0xb6a
PUSH EAX
CALL 0x002446e0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\ncode * FUN_00351050(int param_1,int *param_2,undefined4 *param_3)\n\n{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 extraout_ECX;\n  uint uVar8;\n  byte bVar9;\n  byte bVar10;\n  code *pcVar11;\n  uint uVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  undefined8 uVar15;\n  int *piStack_40;\n  undefined1 auStack_3c [4];\n  int *piStack_38;\n  uint uStack_34;\n  int iStack_30;\n  code *pcStack_2c;\n  code *pcStack_28;\n  int *apiStack_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x351059;\n  bVar10 = *(byte *)((int)param_2 + 0x2a);\n  piVar2 = (int *)(bVar10 & 7);\n  if (4 < (byte)piVar2) {\n    piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  switch(piVar2) {\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    /* WARNING: Subroutine does not return */\n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }\n  **(undefined4 **)((int)ppiVar13 + 0x48) = 0;\n  return pcVar4;\n}\n\n" comment (function_definition "code * FUN_00351050(int param_1,int *param_2,undefined4 *param_3)\n\n{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 extraout_ECX;\n  uint uVar8;\n  byte bVar9;\n  byte bVar10;\n  code *pcVar11;\n  uint uVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  undefined8 uVar15;\n  int *piStack_40;\n  undefined1 auStack_3c [4];\n  int *piStack_38;\n  uint uStack_34;\n  int iStack_30;\n  code *pcStack_2c;\n  code *pcStack_28;\n  int *apiStack_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x351059;\n  bVar10 = *(byte *)((int)param_2 + 0x2a);\n  piVar2 = (int *)(bVar10 & 7);\n  if (4 < (byte)piVar2) {\n    piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  switch(piVar2) {\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    /* WARNING: Subroutine does not return */\n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }\n  **(undefined4 **)((int)ppiVar13 + 0x48) = 0;\n  return pcVar4;\n}" type_identifier (pointer_declarator "* FUN_00351050(int param_1,int *param_2,undefined4 *param_3)" * (function_declarator "FUN_00351050(int param_1,int *param_2,undefined4 *param_3)" identifier (parameter_list "(int param_1,int *param_2,undefined4 *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 extraout_ECX;\n  uint uVar8;\n  byte bVar9;\n  byte bVar10;\n  code *pcVar11;\n  uint uVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  undefined8 uVar15;\n  int *piStack_40;\n  undefined1 auStack_3c [4];\n  int *piStack_38;\n  uint uStack_34;\n  int iStack_30;\n  code *pcStack_2c;\n  code *pcStack_28;\n  int *apiStack_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x351059;\n  bVar10 = *(byte *)((int)param_2 + 0x2a);\n  piVar2 = (int *)(bVar10 & 7);\n  if (4 < (byte)piVar2) {\n    piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  switch(piVar2) {\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    /* WARNING: Subroutine does not return */\n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }\n  **(undefined4 **)((int)ppiVar13 + 0x48) = 0;\n  return pcVar4;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int **ppiVar13;" primitive_type (pointer_declarator "**ppiVar13" * (pointer_declarator "*ppiVar13" * identifier)) ;) (declaration "int **ppiVar14;" primitive_type (pointer_declarator "**ppiVar14" * (pointer_declarator "*ppiVar14" * identifier)) ;) (declaration "undefined8 uVar15;" type_identifier identifier ;) (declaration "int *piStack_40;" primitive_type (pointer_declarator "*piStack_40" * identifier) ;) (declaration "undefined1 auStack_3c [4];" type_identifier (array_declarator "auStack_3c [4]" identifier [ number_literal ]) ;) (declaration "int *piStack_38;" primitive_type (pointer_declarator "*piStack_38" * identifier) ;) (declaration "uint uStack_34;" type_identifier identifier ;) (declaration "int iStack_30;" primitive_type identifier ;) (declaration "code *pcStack_2c;" type_identifier (pointer_declarator "*pcStack_2c" * identifier) ;) (declaration "code *pcStack_28;" type_identifier (pointer_declarator "*pcStack_28" * identifier) ;) (declaration "int *apiStack_24 [4];" primitive_type (pointer_declarator "*apiStack_24 [4]" * (array_declarator "apiStack_24 [4]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x351059;" (assignment_expression "uStack_14 = 0x351059" identifier = number_literal) ;) (expression_statement "bVar10 = *(byte *)((int)param_2 + 0x2a);" (assignment_expression "bVar10 = *(byte *)((int)param_2 + 0x2a)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x2a)" * (cast_expression "(byte *)((int)param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar2 = (int *)(bVar10 & 7);" (assignment_expression "piVar2 = (int *)(bVar10 & 7)" identifier = (cast_expression "(int *)(bVar10 & 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar10 & 7)" ( (binary_expression "bVar10 & 7" identifier & number_literal) )))) ;) (if_statement "if (4 < (byte)piVar2) {\n    piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" if (parenthesized_expression "(4 < (byte)piVar2)" ( (binary_expression "4 < (byte)piVar2" number_literal < (cast_expression "(byte)piVar2" ( (type_descriptor "byte" type_identifier) ) identifier)) )) (compound_statement "{\n    piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" { (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" identifier = identifier) ;) comment (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb6a,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (switch_statement "switch(piVar2) {\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    /* WARNING: Subroutine does not return */\n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }" switch (parenthesized_expression "(piVar2)" ( identifier )) (compound_statement "{\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    /* WARNING: Subroutine does not return */\n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }" { (case_statement "case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }" case (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }" if (parenthesized_expression "((bVar10 & 7) != 0)" ( (binary_expression "(bVar10 & 7) != 0" (parenthesized_expression "(bVar10 & 7)" ( (binary_expression "bVar10 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }" { (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" identifier = identifier) ;) comment (expression_statement "FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "piVar2 = (int *)param_2[3];" (assignment_expression "piVar2 = (int *)param_2[3]" identifier = (cast_expression "(int *)param_2[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;" (assignment_expression "bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5" identifier = (binary_expression "*(byte *)((int)param_2 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_2 + 0x2b)" * (cast_expression "(byte *)((int)param_2 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2b)" ( (binary_expression "(int)param_2 + 0x2b" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "bVar10 = bVar9 & 1;" (assignment_expression "bVar10 = bVar9 & 1" identifier = (binary_expression "bVar9 & 1" identifier & number_literal)) ;) (if_statement "if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }" if (parenthesized_expression "((piVar2 != (int *)0xfff1) && (bVar10 == 0))" ( (binary_expression "(piVar2 != (int *)0xfff1) && (bVar10 == 0)" (parenthesized_expression "(piVar2 != (int *)0xfff1)" ( (binary_expression "piVar2 != (int *)0xfff1" identifier != (cast_expression "(int *)0xfff1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }" { (expression_statement "pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);" (assignment_expression "pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01)" identifier = (cast_expression "(code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01)" ( (binary_expression "CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01" (call_expression "CONCAT31(pcStack_2c._1_3_,bVar9)" identifier (argument_list "(pcStack_2c._1_3_,bVar9)" ( (field_expression "pcStack_2c._1_3_" identifier . field_identifier) , identifier ))) & number_literal) )))) ;) (expression_statement "piVar5 = (int *)FUN_0034c920(piVar2);" (assignment_expression "piVar5 = (int *)FUN_0034c920(piVar2)" identifier = (cast_expression "(int *)FUN_0034c920(piVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034c920(piVar2)" identifier (argument_list "(piVar2)" ( identifier ))))) ;) (if_statement "if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }" if (parenthesized_expression "((char)piVar5 == '\0')" ( (binary_expression "(char)piVar5 == '\0'" (cast_expression "(char)piVar5" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *param_3 = 1;\n        return (code *)0x0;\n      }" { (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" * identifier) = number_literal) ;) (return_statement "return (code *)0x0;" return (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "bVar10 = (byte)pcStack_2c;" (assignment_expression "bVar10 = (byte)pcStack_2c" identifier = (cast_expression "(byte)pcStack_2c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }" if (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_2 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" * (cast_expression "(byte *)((int)param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }" { (expression_statement "piStack_40 = piVar5;" (assignment_expression "piStack_40 = piVar5" identifier = identifier) ;) comment (expression_statement "FUN_002446e0("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;) })) })) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pcVar4 = (code *)param_2[2];" (assignment_expression "pcVar4 = (code *)param_2[2]" identifier = (cast_expression "(code *)param_2[2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (if_statement "if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }" if (parenthesized_expression "(((byte)pcVar4[0x2c] & 1) == 0)" ( (binary_expression "((byte)pcVar4[0x2c] & 1) == 0" (parenthesized_expression "((byte)pcVar4[0x2c] & 1)" ( (binary_expression "(byte)pcVar4[0x2c] & 1" (cast_expression "(byte)pcVar4[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar4[0x2c]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }" { (expression_statement "pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);" (assignment_expression "pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10)" identifier = (cast_expression "(code *)CONCAT31(pcStack_2c._1_3_,bVar10)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(pcStack_2c._1_3_,bVar10)" identifier (argument_list "(pcStack_2c._1_3_,bVar10)" ( (field_expression "pcStack_2c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4)" identifier = (call_expression "(**(code **)(*(int *)pcVar4 + 0x14))(pcVar4)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x14))" ( (pointer_expression "**(code **)(*(int *)pcVar4 + 0x14)" * (pointer_expression "*(code **)(*(int *)pcVar4 + 0x14)" * (cast_expression "(code **)(*(int *)pcVar4 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar4 + 0x14)" ( (binary_expression "*(int *)pcVar4 + 0x14" (pointer_expression "*(int *)pcVar4" * (cast_expression "(int *)pcVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier )))) ;) (if_statement "if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }" if (parenthesized_expression "((iVar3 == 0) && (piVar2 != (int *)0x0))" ( (binary_expression "(iVar3 == 0) && (piVar2 != (int *)0x0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }" { (if_statement "if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }" if (parenthesized_expression "(((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0'))))" ( (binary_expression "((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))" (parenthesized_expression "((byte)pcStack_2c != '\0')" ( (binary_expression "(byte)pcStack_2c != '\0'" (cast_expression "(byte)pcStack_2c" ( (type_descriptor "byte" type_identifier) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))" ( (parenthesized_expression "(piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0'))" ( (binary_expression "piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')" (binary_expression "piVar2 != (int *)0xfff1" identifier != (cast_expression "(int *)0xfff1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')" ( (comma_expression "cVar1 = FUN_0034c920(piVar2), cVar1 == '\0'" (assignment_expression "cVar1 = FUN_0034c920(piVar2)" identifier = (call_expression "FUN_0034c920(piVar2)" identifier (argument_list "(piVar2)" ( identifier )))) , (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }" { (expression_statement "pcStack_28 = FUN_00071550;" (assignment_expression "pcStack_28 = FUN_00071550" identifier = identifier) ;) (if_statement "if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }" if (parenthesized_expression "(*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550)" ( (binary_expression "*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550" (pointer_expression "*(code **)(*(int *)pcVar4 + 0x60)" * (cast_expression "(code **)(*(int *)pcVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar4 + 0x60)" ( (binary_expression "*(int *)pcVar4 + 0x60" (pointer_expression "*(int *)pcVar4" * (cast_expression "(int *)pcVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) )) (compound_statement "{\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }" { (expression_statement "piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);" (assignment_expression "piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2)" identifier = (cast_expression "(int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2)" ( (binary_expression "*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2" (binary_expression "*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38)" (pointer_expression "*(int *)(pcVar4 + 0x3c)" * (cast_expression "(int *)(pcVar4 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x3c)" ( (binary_expression "pcVar4 + 0x3c" identifier + number_literal) )))) - (pointer_expression "*(int *)(pcVar4 + 0x38)" * (cast_expression "(int *)(pcVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x38)" ( (binary_expression "pcVar4 + 0x38" identifier + number_literal) ))))) >> number_literal) )))) ;) (expression_statement "ppiVar14 = (int **)auStack_3c;" (assignment_expression "ppiVar14 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (piVar5 <= piVar2) goto code_r0x003515fc;" if (parenthesized_expression "(piVar5 <= piVar2)" ( (binary_expression "piVar5 <= piVar2" identifier <= identifier) )) (goto_statement "goto code_r0x003515fc;" goto statement_identifier ;)) (expression_statement "pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);" (assignment_expression "pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" identifier = (pointer_expression "*(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" * (cast_expression "(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" ( (binary_expression "*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4" (pointer_expression "*(int *)(pcVar4 + 0x38)" * (cast_expression "(int *)(pcVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x38)" ( (binary_expression "pcVar4 + 0x38" identifier + number_literal) )))) + (binary_expression "(int)piVar2 * 4" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) }) (else_clause "else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }" else (compound_statement "{\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }" { (expression_statement "pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);" (assignment_expression "pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2)" identifier = (cast_expression "(code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x60))" ( (pointer_expression "**(code **)(*(int *)pcVar4 + 0x60)" * (pointer_expression "*(code **)(*(int *)pcVar4 + 0x60)" * (cast_expression "(code **)(*(int *)pcVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar4 + 0x60)" ( (binary_expression "*(int *)pcVar4 + 0x60" (pointer_expression "*(int *)pcVar4" * (cast_expression "(int *)pcVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar4,piVar2)" ( identifier , identifier ))))) ;) }))) (expression_statement "cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);" (assignment_expression "cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2)" identifier = (call_expression "FUN_0034cd20(param_1,pcVar4,piVar2)" identifier (argument_list "(param_1,pcVar4,piVar2)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }" { (expression_statement "uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);" (assignment_expression "uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2)" identifier = (call_expression "(**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x68))" ( (pointer_expression "**(code **)(*(int *)pcVar4 + 0x68)" * (pointer_expression "*(code **)(*(int *)pcVar4 + 0x68)" * (cast_expression "(code **)(*(int *)pcVar4 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar4 + 0x68)" ( (binary_expression "*(int *)pcVar4 + 0x68" (pointer_expression "*(int *)pcVar4" * (cast_expression "(int *)pcVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar4,piVar2)" ( identifier , identifier )))) ;) (if_statement "if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }" if (parenthesized_expression "(pcStack_2c == (code *)0x0)" ( (binary_expression "pcStack_2c == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }" { (if_statement "if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }" if (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x10) == '\0')" ( (binary_expression "*(char *)(DAT_005ea7c8 + 0x10) == '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x10)" * (cast_expression "(char *)(DAT_005ea7c8 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0x10)" ( (binary_expression "DAT_005ea7c8 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }" { (expression_statement "piStack_40 = (int *)&UNK_003515fc;" (assignment_expression "piStack_40 = (int *)&UNK_003515fc" identifier = (cast_expression "(int *)&UNK_003515fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_003515fc" & identifier))) ;) (expression_statement "piVar5 = (int *)FUN_0034c490();" (assignment_expression "piVar5 = (int *)FUN_0034c490()" identifier = (cast_expression "(int *)FUN_0034c490()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034c490()" identifier (argument_list "()" ( ))))) ;) (expression_statement "ppiVar14 = (int **)auStack_3c;" (assignment_expression "ppiVar14 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (goto_statement "goto code_r0x003515fc;" goto statement_identifier ;) })) (if_statement "if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }" if (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x11) == '\0')" ( (binary_expression "*(char *)(DAT_005ea7c8 + 0x11) == '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x11)" * (cast_expression "(char *)(DAT_005ea7c8 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0x11)" ( (binary_expression "DAT_005ea7c8 + 0x11" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }" { (expression_statement "piStack_40 = *(int **)(DAT_005ea7c8 + 8);" (assignment_expression "piStack_40 = *(int **)(DAT_005ea7c8 + 8)" identifier = (pointer_expression "*(int **)(DAT_005ea7c8 + 8)" * (cast_expression "(int **)(DAT_005ea7c8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }" if (parenthesized_expression "(piStack_40 == (int *)0x0)" ( (binary_expression "piStack_40 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\ncode_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }" { (labeled_statement "code_r0x0035164c:\n                    /* WARNING: Subroutine does not return */\n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");" statement_identifier : comment (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }" if (parenthesized_expression "(*(char *)((int)piStack_40 + 0x318d) == '\0')" ( (binary_expression "*(char *)((int)piStack_40 + 0x318d) == '\0'" (pointer_expression "*(char *)((int)piStack_40 + 0x318d)" * (cast_expression "(char *)((int)piStack_40 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piStack_40 + 0x318d)" ( (binary_expression "(int)piStack_40 + 0x318d" (cast_expression "(int)piStack_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }" { (expression_statement "piStack_40 = (int *)param_2[5];" (assignment_expression "piStack_40 = (int *)param_2[5]" identifier = (cast_expression "(int *)param_2[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[5]" identifier [ number_literal ]))) ;) (if_statement "if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }" if (parenthesized_expression "(piStack_40 == (int *)0x0)" ( (binary_expression "piStack_40 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }" { (expression_statement "piStack_40 = (int *)&UNK_0035164c;" (assignment_expression "piStack_40 = (int *)&UNK_0035164c" identifier = (cast_expression "(int *)&UNK_0035164c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_0035164c" & identifier))) ;) (expression_statement "piStack_40 = (int *)FUN_0034c4c0();" (assignment_expression "piStack_40 = (int *)FUN_0034c4c0()" identifier = (cast_expression "(int *)FUN_0034c4c0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034c4c0()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto code_r0x0035164c;" goto statement_identifier ;) })) (if_statement "if (piStack_40 != (int *)0xffffffff) {\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }" if (parenthesized_expression "(piStack_40 != (int *)0xffffffff)" ( (binary_expression "piStack_40 != (int *)0xffffffff" identifier != (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }" { comment (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb21,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) })) })) (expression_statement "*param_3 = 2;" (assignment_expression "*param_3 = 2" (pointer_expression "*param_3" * identifier) = number_literal) ;) (return_statement "return (code *)0x0;" return (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) (else_clause "else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }" else (compound_statement "{\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }" { (if_statement "if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }" if (parenthesized_expression "(pcStack_2c != (code *)0x0)" ( (binary_expression "pcStack_2c != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }" { (expression_statement "piStack_40 = param_2;" (assignment_expression "piStack_40 = param_2" identifier = identifier) ;) comment (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb0c,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" identifier = identifier) ;) (expression_statement "FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);" (call_expression "FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4)" identifier (argument_list "(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4)" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x15c)" * (cast_expression "(undefined4 *)(param_1 + 0x15c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x15c)" ( (binary_expression "param_1 + 0x15c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "pcVar4 = pcStack_28;" (assignment_expression "pcVar4 = pcStack_28" identifier = identifier) ;) (expression_statement "piStack_38 = apiStack_24[0];" (assignment_expression "piStack_38 = apiStack_24[0]" identifier = (subscript_expression "apiStack_24[0]" identifier [ number_literal ])) ;) (if_statement "if (pcStack_28 == (code *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }" if (parenthesized_expression "(pcStack_28 == (code *)0x0)" ( (binary_expression "pcStack_28 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }" { comment (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX)" identifier (argument_list "("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX)" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }" if (parenthesized_expression "(*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c)" ( (binary_expression "*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c" (pointer_expression "*(code **)(*(int *)pcStack_28 + 0x60)" * (cast_expression "(code **)(*(int *)pcStack_28 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcStack_28 + 0x60)" ( (binary_expression "*(int *)pcStack_28 + 0x60" (pointer_expression "*(int *)pcStack_28" * (cast_expression "(int *)pcStack_28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) )) (compound_statement "{\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }" { (expression_statement "iStack_30 = *(int *)(pcStack_28 + 0x38);" (assignment_expression "iStack_30 = *(int *)(pcStack_28 + 0x38)" identifier = (pointer_expression "*(int *)(pcStack_28 + 0x38)" * (cast_expression "(int *)(pcStack_28 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_28 + 0x38)" ( (binary_expression "pcStack_28 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);" (assignment_expression "piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2)" identifier = (cast_expression "(int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2)" ( (binary_expression "*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2" (binary_expression "*(int *)(pcStack_28 + 0x3c) - iStack_30" (pointer_expression "*(int *)(pcStack_28 + 0x3c)" * (cast_expression "(int *)(pcStack_28 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_28 + 0x3c)" ( (binary_expression "pcStack_28 + 0x3c" identifier + number_literal) )))) - identifier) >> number_literal) )))) ;) (expression_statement "ppiVar14 = &piStack_40;" (assignment_expression "ppiVar14 = &piStack_40" identifier = (pointer_expression "&piStack_40" & identifier)) ;) (if_statement "if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }" if (parenthesized_expression "(piVar5 <= apiStack_24[0])" ( (binary_expression "piVar5 <= apiStack_24[0]" identifier <= (subscript_expression "apiStack_24[0]" identifier [ number_literal ])) )) (compound_statement "{\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    /* WARNING: Subroutine does not return */\n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }" { (labeled_statement "code_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;" statement_identifier : (expression_statement "*(int **)((int)ppiVar14 + -4) = piVar5;" (assignment_expression "*(int **)((int)ppiVar14 + -4) = piVar5" (pointer_expression "*(int **)((int)ppiVar14 + -4)" * (cast_expression "(int **)((int)ppiVar14 + -4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar14 + -4)" ( (binary_expression "(int)ppiVar14 + -4" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(char **)((int)ppiVar14 + -8) = "do_output_section";" (assignment_expression "*(char **)((int)ppiVar14 + -8) = "do_output_section"" (pointer_expression "*(char **)((int)ppiVar14 + -8)" * (cast_expression "(char **)((int)ppiVar14 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar14 + -8)" ( (binary_expression "(int)ppiVar14 + -8" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""do_output_section"" " string_content ")) ;) (expression_statement "*(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;" (assignment_expression "*(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8" (pointer_expression "*(undefined4 *)((int)ppiVar14 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar14 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar14 + -0xc)" ( (binary_expression "(int)ppiVar14 + -0xc" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";" (assignment_expression "*(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h"" (pointer_expression "*(char **)((int)ppiVar14 + -0x10)" * (cast_expression "(char **)((int)ppiVar14 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar14 + -0x10)" ( (binary_expression "(int)ppiVar14 + -0x10" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""../../gold/object.h"" " string_content ")) ;) comment (expression_statement "*(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;" (assignment_expression "*(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615" (pointer_expression "*(undefined **)((int)ppiVar14 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar14 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar14 + -0x14)" ( (binary_expression "(int)ppiVar14 + -0x14" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_00351615" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);" (assignment_expression "iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4)" identifier = (pointer_expression "*(int *)(iStack_30 + (int)apiStack_24[0] * 4)" * (cast_expression "(int *)(iStack_30 + (int)apiStack_24[0] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_30 + (int)apiStack_24[0] * 4)" ( (binary_expression "iStack_30 + (int)apiStack_24[0] * 4" identifier + (binary_expression "(int)apiStack_24[0] * 4" (cast_expression "(int)apiStack_24[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apiStack_24[0]" identifier [ number_literal ])) * number_literal)) ))))) ;) (expression_statement "pcVar11 = pcStack_28;" (assignment_expression "pcVar11 = pcStack_28" identifier = identifier) ;) }) (else_clause "else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }" else (compound_statement "{\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }" { (expression_statement "pcStack_2c = pcStack_28;" (assignment_expression "pcStack_2c = pcStack_28" identifier = identifier) ;) (expression_statement "iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);" (assignment_expression "iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28)" identifier = (call_expression "(**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28)" (parenthesized_expression "(**(code **)(*(int *)pcStack_28 + 0x60))" ( (pointer_expression "**(code **)(*(int *)pcStack_28 + 0x60)" * (pointer_expression "*(code **)(*(int *)pcStack_28 + 0x60)" * (cast_expression "(code **)(*(int *)pcStack_28 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcStack_28 + 0x60)" ( (binary_expression "*(int *)pcStack_28 + 0x60" (pointer_expression "*(int *)pcStack_28" * (cast_expression "(int *)pcStack_28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcStack_28,apiStack_24[0],pcStack_28,pcStack_28)" ( identifier , (subscript_expression "apiStack_24[0]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "pcVar11 = pcStack_2c;" (assignment_expression "pcVar11 = pcStack_2c" identifier = identifier) ;) }))) (expression_statement "ppiVar13 = &piStack_40;" (assignment_expression "ppiVar13 = &piStack_40" identifier = (pointer_expression "&piStack_40" & identifier)) ;) (if_statement "if (iStack_30 == 0) {\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }" if (parenthesized_expression "(iStack_30 == 0)" ( (binary_expression "iStack_30 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }" { comment (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11)" identifier (argument_list "("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11)" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);" (assignment_expression "uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38)" identifier = (call_expression "(**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38)" (parenthesized_expression "(**(code **)(*(int *)pcVar11 + 0x68))" ( (pointer_expression "**(code **)(*(int *)pcVar11 + 0x68)" * (pointer_expression "*(code **)(*(int *)pcVar11 + 0x68)" * (cast_expression "(code **)(*(int *)pcVar11 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar11 + 0x68)" ( (binary_expression "*(int *)pcVar11 + 0x68" (pointer_expression "*(int *)pcVar11" * (cast_expression "(int *)pcVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar11,piStack_38)" ( identifier , identifier )))) ;) (expression_statement "piVar2 = apiStack_24[0];" (assignment_expression "piVar2 = apiStack_24[0]" identifier = (subscript_expression "apiStack_24[0]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar12 = (uint)((ulonglong)uVar15 >> 0x20);" (assignment_expression "uVar12 = (uint)((ulonglong)uVar15 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar15 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar15 >> 0x20)" ( (binary_expression "(ulonglong)uVar15 >> 0x20" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar8 = (uint)uVar15;" (assignment_expression "uVar8 = (uint)uVar15" identifier = (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = uVar12 & uVar8;" (assignment_expression "uVar6 = uVar12 & uVar8" identifier = (binary_expression "uVar12 & uVar8" identifier & identifier)) ;) (if_statement "if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }" if (parenthesized_expression "(uVar6 == 0xffffffff)" ( (binary_expression "uVar6 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }" { (expression_statement "iVar3 = param_2[0xc];" (assignment_expression "iVar3 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppiVar13 + -0x14) = iVar3;" (assignment_expression "*(int *)((int)ppiVar13 + -0x14) = iVar3" (pointer_expression "*(int *)((int)ppiVar13 + -0x14)" * (cast_expression "(int *)((int)ppiVar13 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppiVar13 + -0x18) = piVar2;" (assignment_expression "*(int **)((int)ppiVar13 + -0x18) = piVar2" (pointer_expression "*(int **)((int)ppiVar13 + -0x18)" * (cast_expression "(int **)((int)ppiVar13 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x18)" ( (binary_expression "(int)ppiVar13 + -0x18" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)ppiVar13 + -0x1c) = pcVar4;" (assignment_expression "*(code **)((int)ppiVar13 + -0x1c) = pcVar4" (pointer_expression "*(code **)((int)ppiVar13 + -0x1c)" * (cast_expression "(code **)((int)ppiVar13 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x1c)" ( (binary_expression "(int)ppiVar13 + -0x1c" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x20)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x20)" ( (binary_expression "(int)ppiVar13 + -0x20" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x24)" * (cast_expression "(undefined **)((int)ppiVar13 + -0x24)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x24)" ( (binary_expression "(int)ppiVar13 + -0x24" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_003514ac" & identifier)) ;) (expression_statement "pcVar4 = (code *)FUN_002cdbd0();" (assignment_expression "pcVar4 = (code *)FUN_002cdbd0()" identifier = (cast_expression "(code *)FUN_002cdbd0()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002cdbd0()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }" else (compound_statement "{\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }" { (if_statement "if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    /* WARNING: Subroutine does not return */\n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }" { (expression_statement "*(uint *)((int)ppiVar13 + -4) = uVar6;" (assignment_expression "*(uint *)((int)ppiVar13 + -4) = uVar6" (pointer_expression "*(uint *)((int)ppiVar13 + -4)" * (cast_expression "(uint *)((int)ppiVar13 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -4)" ( (binary_expression "(int)ppiVar13 + -4" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(char **)((int)ppiVar13 + -8) = "convert_types";" (assignment_expression "*(char **)((int)ppiVar13 + -8) = "convert_types"" (pointer_expression "*(char **)((int)ppiVar13 + -8)" * (cast_expression "(char **)((int)ppiVar13 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -8)" ( (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""convert_types"" " string_content ")) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0xc)" ( (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";" (assignment_expression "*(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h"" (pointer_expression "*(char **)((int)ppiVar13 + -0x10)" * (cast_expression "(char **)((int)ppiVar13 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""../../gold/gold.h"" " string_content ")) ;) comment (expression_statement "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar13 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_003515de" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar3 = param_2[0xc];" (assignment_expression "iVar3 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }" if (parenthesized_expression "((*(byte *)(param_2 + 10) & 0xf) == 6)" ( (binary_expression "(*(byte *)(param_2 + 10) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_2 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }" { (expression_statement "pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);" (assignment_expression "pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48)" identifier = (pointer_expression "*(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48)" * (cast_expression "(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)((int)ppiVar13 + 0x10) + 0x48)" ( (binary_expression "**(int **)((int)ppiVar13 + 0x10) + 0x48" (pointer_expression "**(int **)((int)ppiVar13 + 0x10)" * (pointer_expression "*(int **)((int)ppiVar13 + 0x10)" * (cast_expression "(int **)((int)ppiVar13 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }" if (parenthesized_expression "(pcVar4 == FUN_00144100)" ( (binary_expression "pcVar4 == FUN_00144100" identifier == identifier) )) (compound_statement "{\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }" { (expression_statement "iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];" (assignment_expression "iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25]" identifier = (subscript_expression "(*(int **)((int)ppiVar13 + 0x10))[0x25]" (parenthesized_expression "(*(int **)((int)ppiVar13 + 0x10))" ( (pointer_expression "*(int **)((int)ppiVar13 + 0x10)" * (cast_expression "(int **)((int)ppiVar13 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ])) ;) }) (else_clause "else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }" else (compound_statement "{\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }" { (expression_statement "*(uint *)((int)ppiVar13 + 8) = uVar8;" (assignment_expression "*(uint *)((int)ppiVar13 + 8) = uVar8" (pointer_expression "*(uint *)((int)ppiVar13 + 8)" * (cast_expression "(uint *)((int)ppiVar13 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 8)" ( (binary_expression "(int)ppiVar13 + 8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar13 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_003514f4" & identifier)) ;) (expression_statement "iVar7 = (*pcVar4)();" (assignment_expression "iVar7 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = *(uint *)((int)ppiVar13 + 8);" (assignment_expression "uVar8 = *(uint *)((int)ppiVar13 + 8)" identifier = (pointer_expression "*(uint *)((int)ppiVar13 + 8)" * (cast_expression "(uint *)((int)ppiVar13 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 8)" ( (binary_expression "(int)ppiVar13 + 8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "pcVar4 = (code *)(iVar7 + iVar3 + uVar8);" (assignment_expression "pcVar4 = (code *)(iVar7 + iVar3 + uVar8)" identifier = (cast_expression "(code *)(iVar7 + iVar3 + uVar8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar3 + uVar8)" ( (binary_expression "iVar7 + iVar3 + uVar8" (binary_expression "iVar7 + iVar3" identifier + identifier) + identifier) )))) ;) }) (else_clause "else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }" else (compound_statement "{\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }" { (expression_statement "uVar6 = *(uint *)((int)ppiVar13 + 0x10);" (assignment_expression "uVar6 = *(uint *)((int)ppiVar13 + 0x10)" identifier = (pointer_expression "*(uint *)((int)ppiVar13 + 0x10)" * (cast_expression "(uint *)((int)ppiVar13 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;" if (parenthesized_expression "((*(byte *)(uVar6 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(uVar6 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(uVar6 + 0x1c) & 1)" ( (binary_expression "*(byte *)(uVar6 + 0x1c) & 1" (pointer_expression "*(byte *)(uVar6 + 0x1c)" * (cast_expression "(byte *)(uVar6 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x1c)" ( (binary_expression "uVar6 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x00351548;" goto statement_identifier ;)) (expression_statement "pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));" (assignment_expression "pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4))" identifier = (cast_expression "(code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4))" ( (binary_expression "iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4)" (binary_expression "iVar3 + uVar8" identifier + identifier) + (pointer_expression "*(int *)(*(int *)((int)ppiVar13 + 0x10) + 4)" * (cast_expression "(int *)(*(int *)((int)ppiVar13 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)ppiVar13 + 0x10) + 4)" ( (binary_expression "*(int *)((int)ppiVar13 + 0x10) + 4" (pointer_expression "*(int *)((int)ppiVar13 + 0x10)" * (cast_expression "(int *)((int)ppiVar13 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )))) ;) }))) }))) (break_statement "break;" break ;) })) (goto_statement "goto code_r0x003510f8;" goto statement_identifier ;) })) }))) (case_statement "case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;" case (cast_expression "(int *)0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "pcVar4 = (code *)0x0;" (assignment_expression "pcVar4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    /* WARNING: Subroutine does not return */\n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;" case (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }" if (parenthesized_expression "((bVar10 & 7) != 1)" ( (binary_expression "(bVar10 & 7) != 1" (parenthesized_expression "(bVar10 & 7)" ( (binary_expression "bVar10 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }" { (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" identifier = identifier) ;) comment (expression_statement "FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xb5,"output_data")" identifier (argument_list "("../../gold/symtab.h",0xb5,"output_data")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_data"" " string_content ") ))) ;) })) (expression_statement "piVar2 = (int *)param_2[2];" (assignment_expression "piVar2 = (int *)param_2[2]" identifier = (cast_expression "(int *)param_2[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "pcStack_2c = (code *)param_2[0xc];" (assignment_expression "pcStack_2c = (code *)param_2[0xc]" identifier = (cast_expression "(code *)param_2[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xc]" identifier [ number_literal ]))) ;) (if_statement "if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    /* WARNING: Subroutine does not return */\n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }" if (parenthesized_expression "((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06')" ( (binary_expression "(char)(*(byte *)(param_2 + 10) & 0xf) == '\x06'" (cast_expression "(char)(*(byte *)(param_2 + 10) & 0xf)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(*(byte *)(param_2 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) & number_literal) ))) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }" { (expression_statement "piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);" (assignment_expression "piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2)" identifier = (cast_expression "(int *)(**(code **)(*piVar2 + 0x24))(piVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar2 + 0x24))(piVar2)" (parenthesized_expression "(**(code **)(*piVar2 + 0x24))" ( (pointer_expression "**(code **)(*piVar2 + 0x24)" * (pointer_expression "*(code **)(*piVar2 + 0x24)" * (cast_expression "(code **)(*piVar2 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x24)" ( (binary_expression "*piVar2 + 0x24" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) )) (argument_list "(piVar2)" ( identifier ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piStack_40 = piVar5;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" { (expression_statement "piStack_40 = piVar5;" (assignment_expression "piStack_40 = piVar5" identifier = identifier) ;) comment (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb43,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (if_statement "if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }" if (parenthesized_expression "(*(code **)(*piVar5 + 0x48) == FUN_00144100)" ( (binary_expression "*(code **)(*piVar5 + 0x48) == FUN_00144100" (pointer_expression "*(code **)(*piVar5 + 0x48)" * (cast_expression "(code **)(*piVar5 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x48)" ( (binary_expression "*piVar5 + 0x48" (pointer_expression "*piVar5" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }" { (expression_statement "uStack_34 = piVar5[0x25];" (assignment_expression "uStack_34 = piVar5[0x25]" identifier = (subscript_expression "piVar5[0x25]" identifier [ number_literal ])) ;) (expression_statement "iStack_30 = piVar5[0x26];" (assignment_expression "iStack_30 = piVar5[0x26]" identifier = (subscript_expression "piVar5[0x26]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }" else (compound_statement "{\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }" { (expression_statement "uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);" (assignment_expression "uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5)" identifier = (call_expression "(**(code **)(*piVar5 + 0x48))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x48))" ( (pointer_expression "**(code **)(*piVar5 + 0x48)" * (pointer_expression "*(code **)(*piVar5 + 0x48)" * (cast_expression "(code **)(*piVar5 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x48)" ( (binary_expression "*piVar5 + 0x48" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) ;) (expression_statement "uStack_34 = (uint)uVar15;" (assignment_expression "uStack_34 = (uint)uVar15" identifier = (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iStack_30 = (int)((ulonglong)uVar15 >> 0x20);" (assignment_expression "iStack_30 = (int)((ulonglong)uVar15 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar15 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar15 >> 0x20)" ( (binary_expression "(ulonglong)uVar15 >> 0x20" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "bVar10 = *(byte *)(piVar2 + 7);" (assignment_expression "bVar10 = *(byte *)(piVar2 + 7)" identifier = (pointer_expression "*(byte *)(piVar2 + 7)" * (cast_expression "(byte *)(piVar2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 7)" ( (binary_expression "piVar2 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = uStack_34;" (assignment_expression "uVar6 = uStack_34" identifier = identifier) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;" if (parenthesized_expression "(((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))" ( (binary_expression "((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0)" (parenthesized_expression "((bVar10 & 1) == 0)" ( (binary_expression "(bVar10 & 1) == 0" (parenthesized_expression "(bVar10 & 1)" ( (binary_expression "bVar10 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0)" ( (comma_expression "uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0" (assignment_expression "uVar6 = piVar2[1]" identifier = (subscript_expression "piVar2[1]" identifier [ number_literal ])) , (comma_expression "ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (binary_expression "(*(byte *)(piVar5 + 7) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 1)" ( (binary_expression "*(byte *)(piVar5 + 7) & 1" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal))) ))) )) (goto_statement "goto code_r0x00351548;" goto statement_identifier ;)) (expression_statement "pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;" (assignment_expression "pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34" identifier = (binary_expression "pcStack_2c + (uVar6 - piVar5[1]) + uStack_34" (binary_expression "pcStack_2c + (uVar6 - piVar5[1])" identifier + (parenthesized_expression "(uVar6 - piVar5[1])" ( (binary_expression "uVar6 - piVar5[1]" identifier - (subscript_expression "piVar5[1]" identifier [ number_literal ])) ))) + identifier)) ;) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" if (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 7) != 1)" ( (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 7) != 1" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_2 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" * (cast_expression "(byte *)((int)param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piStack_40 = piVar2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" { (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" identifier = identifier) ;) comment (expression_statement "FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end")" identifier (argument_list "("../../gold/symtab.h",0xbe,"offset_is_from_end")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""offset_is_from_end"" " string_content ") ))) ;) })) }) (else_clause "else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    /* WARNING: Subroutine does not return */\n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }" else (compound_statement "{\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    /* WARNING: Subroutine does not return */\n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }" { (expression_statement "bVar10 = *(byte *)(piVar2 + 7);" (assignment_expression "bVar10 = *(byte *)(piVar2 + 7)" identifier = (pointer_expression "*(byte *)(piVar2 + 7)" * (cast_expression "(byte *)(piVar2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 7)" ( (binary_expression "piVar2 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(byte *)(param_2 + 10) & 0xf;" (assignment_expression "uVar6 = *(byte *)(param_2 + 10) & 0xf" identifier = (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    /* WARNING: Subroutine does not return */\n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((bVar10 & 1) == 0)" ( (binary_expression "(bVar10 & 1) == 0" (parenthesized_expression "(bVar10 & 1)" ( (binary_expression "bVar10 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    /* WARNING: Subroutine does not return */\n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }" { (labeled_statement "code_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;" statement_identifier : (expression_statement "*(uint *)((int)ppiVar13 + -4) = uVar6;" (assignment_expression "*(uint *)((int)ppiVar13 + -4) = uVar6" (pointer_expression "*(uint *)((int)ppiVar13 + -4)" * (cast_expression "(uint *)((int)ppiVar13 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -4)" ( (binary_expression "(int)ppiVar13 + -4" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(char **)((int)ppiVar13 + -8) = "address";" (assignment_expression "*(char **)((int)ppiVar13 + -8) = "address"" (pointer_expression "*(char **)((int)ppiVar13 + -8)" * (cast_expression "(char **)((int)ppiVar13 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -8)" ( (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""address"" " string_content ")) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0xc)" ( (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";" (assignment_expression "*(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h"" (pointer_expression "*(char **)((int)ppiVar13 + -0x10)" * (cast_expression "(char **)((int)ppiVar13 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""../../gold/output.h"" " string_content ")) ;) comment (expression_statement "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar13 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_00351561" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar4 = (code *)param_2[0xc] + piVar2[1];" (assignment_expression "pcVar4 = (code *)param_2[0xc] + piVar2[1]" identifier = (binary_expression "(code *)param_2[0xc] + piVar2[1]" (cast_expression "(code *)param_2[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xc]" identifier [ number_literal ])) + (subscript_expression "piVar2[1]" identifier [ number_literal ]))) ;) }))) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }" if (parenthesized_expression "((char)param_2[3] != '\0')" ( (binary_expression "(char)param_2[3] != '\0'" (cast_expression "(char)param_2[3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[3]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }" { (if_statement "if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }" if (parenthesized_expression "((bVar10 & 2) == 0)" ( (binary_expression "(bVar10 & 2) == 0" (parenthesized_expression "(bVar10 & 2)" ( (binary_expression "bVar10 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        piStack_40 = param_2;\n                    /* WARNING: Subroutine does not return */\n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }" { (expression_statement "piStack_40 = param_2;" (assignment_expression "piStack_40 = param_2" identifier = identifier) ;) comment (expression_statement "FUN_002446e0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_002446e0("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (expression_statement "pcVar4 = pcVar4 + piVar2[3];" (assignment_expression "pcVar4 = pcVar4 + piVar2[3]" identifier = (binary_expression "pcVar4 + piVar2[3]" identifier + (subscript_expression "piVar2[3]" identifier [ number_literal ]))) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (break_statement "break;" break ;)) (case_statement "case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;" case (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }" if (parenthesized_expression "((bVar10 & 7) != 2)" ( (binary_expression "(bVar10 & 7) != 2" (parenthesized_expression "(bVar10 & 7)" ( (binary_expression "bVar10 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    /* WARNING: Subroutine does not return */\n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }" { (expression_statement "piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));" (assignment_expression "piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4))" identifier = (cast_expression "(int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4))" ( (binary_expression "(int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_004994cc + (int)piVar2 * 4)" * (cast_expression "(int *)(&DAT_004994cc + (int)piVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_004994cc + (int)piVar2 * 4)" ( (binary_expression "&DAT_004994cc + (int)piVar2 * 4" (pointer_expression "&DAT_004994cc" & identifier) + (binary_expression "(int)piVar2 * 4" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) )))) ;) comment (expression_statement "FUN_002446e0("../../gold/symtab.h",200,"output_segment");" (call_expression "FUN_002446e0("../../gold/symtab.h",200,"output_segment")" identifier (argument_list "("../../gold/symtab.h",200,"output_segment")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_segment"" " string_content ") ))) ;) })) (expression_statement "iVar3 = param_2[2];" (assignment_expression "iVar3 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar4 = (code *)param_2[0xc];" (assignment_expression "pcVar4 = (code *)param_2[0xc]" identifier = (cast_expression "(code *)param_2[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xc]" identifier [ number_literal ]))) ;) (if_statement "if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 10) & 0xf) != 6)" ( (binary_expression "(*(byte *)(param_2 + 10) & 0xf) != 6" (parenthesized_expression "(*(byte *)(param_2 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }" { (expression_statement "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);" (assignment_expression "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c)" identifier = (binary_expression "pcVar4 + *(int *)(iVar3 + 0x15c)" identifier + (pointer_expression "*(int *)(iVar3 + 0x15c)" * (cast_expression "(int *)(iVar3 + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x15c)" ( (binary_expression "iVar3 + 0x15c" identifier + number_literal) )))))) ;) })) (expression_statement "piStack_40 = (int *)param_2[3];" (assignment_expression "piStack_40 = (int *)param_2[3]" identifier = (cast_expression "(int *)param_2[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (if_statement "if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }" if (parenthesized_expression "(piStack_40 == (int *)0x1)" ( (binary_expression "piStack_40 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }" { (expression_statement "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);" (assignment_expression "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c)" identifier = (binary_expression "pcVar4 + *(int *)(iVar3 + 0x16c)" identifier + (pointer_expression "*(int *)(iVar3 + 0x16c)" * (cast_expression "(int *)(iVar3 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x16c)" ( (binary_expression "iVar3 + 0x16c" identifier + number_literal) )))))) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }) (else_clause "else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }" else (compound_statement "{\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }" { (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }" if (parenthesized_expression "(piStack_40 != (int *)0x0)" ( (binary_expression "piStack_40 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }" { (if_statement "if (piStack_40 != (int *)0x2) {\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }" if (parenthesized_expression "(piStack_40 != (int *)0x2)" ( (binary_expression "piStack_40 != (int *)0x2" identifier != (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }" { comment (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb5c,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);" (assignment_expression "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c)" identifier = (binary_expression "pcVar4 + *(int *)(iVar3 + 0x18c)" identifier + (pointer_expression "*(int *)(iVar3 + 0x18c)" * (cast_expression "(int *)(iVar3 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18c)" ( (binary_expression "iVar3 + 0x18c" identifier + number_literal) )))))) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) }))) (break_statement "break;" break ;)) (case_statement "case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;" case (cast_expression "(int *)0x3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) : (labeled_statement "code_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];" statement_identifier : (expression_statement "pcVar4 = (code *)param_2[0xc];" (assignment_expression "pcVar4 = (code *)param_2[0xc]" identifier = (cast_expression "(code *)param_2[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xc]" identifier [ number_literal ]))) ;)) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;)) })) (expression_statement "**(undefined4 **)((int)ppiVar13 + 0x48) = 0;" (assignment_expression "**(undefined4 **)((int)ppiVar13 + 0x48) = 0" (pointer_expression "**(undefined4 **)((int)ppiVar13 + 0x48)" * (pointer_expression "*(undefined4 **)((int)ppiVar13 + 0x48)" * (cast_expression "(undefined4 **)((int)ppiVar13 + 0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + 0x48)" ( (binary_expression "(int)ppiVar13 + 0x48" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) = number_literal) ;) (return_statement "return pcVar4;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* DWARF original prototype: Value_type compute_final_value<32>(Symbol_table * this,\n   Sized_symbol<32> * sym, Compute_final_value_status * pstatus) */\n\nValue_type __thiscall\ngold::Symbol_table::compute_final_value<32>\n          (Symbol_table *this,Sized_symbol<32> *sym,Compute_final_value_status *pstatus)\n\n{\n}\n\n" comment comment (function_definition "Value_type __thiscall\ngold::Symbol_table::compute_final_value<32>\n          (Symbol_table *this,Sized_symbol<32> *sym,Compute_final_value_status *pstatus)\n\n{\n}" type_identifier (ms_call_modifier "__thiscall" __thiscall) (ERROR "gold::Symbol_table::" identifier : : identifier : :) (function_declarator "compute_final_value<32>\n          (Symbol_table *this,Sized_symbol<32> *sym,Compute_final_value_status *pstatus)" identifier (ERROR "<32>" < number_literal >) (parameter_list "(Symbol_table *this,Sized_symbol<32> *sym,Compute_final_value_status *pstatus)" ( (parameter_declaration "Symbol_table *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "Sized_symbol<32> *sym" type_identifier (ERROR "<32>" < number_literal >) (pointer_declarator "*sym" * identifier)) , (parameter_declaration "Compute_final_value_status *pstatus" type_identifier (pointer_declarator "*pstatus" * identifier)) ))) (compound_statement "{\n}" { })))
(translation_unit "code * FUN_00351050(int param_1,int *param_2,undefined4 *param_3)\n\n{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 extraout_ECX;\n  uint uVar8;\n  byte bVar9;\n  byte bVar10;\n  code *pcVar11;\n  uint uVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  undefined8 uVar15;\n  int *piStack_40;\n  undefined1 auStack_3c [4];\n  int *piStack_38;\n  uint uStack_34;\n  int iStack_30;\n  code *pcStack_2c;\n  code *pcStack_28;\n  int *apiStack_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x351059;\n  bVar10 = *(byte *)((int)param_2 + 0x2a);\n  piVar2 = (int *)(bVar10 & 7);\n  if (4 < (byte)piVar2) {\n    piStack_40 = piVar2;\n                    \n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  switch(piVar2) {\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }\n  **(undefined4 **)((int)ppiVar13 + 0x48) = 0;\n  return pcVar4;\n}\n\n" (function_definition "code * FUN_00351050(int param_1,int *param_2,undefined4 *param_3)\n\n{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 extraout_ECX;\n  uint uVar8;\n  byte bVar9;\n  byte bVar10;\n  code *pcVar11;\n  uint uVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  undefined8 uVar15;\n  int *piStack_40;\n  undefined1 auStack_3c [4];\n  int *piStack_38;\n  uint uStack_34;\n  int iStack_30;\n  code *pcStack_2c;\n  code *pcStack_28;\n  int *apiStack_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x351059;\n  bVar10 = *(byte *)((int)param_2 + 0x2a);\n  piVar2 = (int *)(bVar10 & 7);\n  if (4 < (byte)piVar2) {\n    piStack_40 = piVar2;\n                    \n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  switch(piVar2) {\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }\n  **(undefined4 **)((int)ppiVar13 + 0x48) = 0;\n  return pcVar4;\n}" type_identifier (pointer_declarator "* FUN_00351050(int param_1,int *param_2,undefined4 *param_3)" * (function_declarator "FUN_00351050(int param_1,int *param_2,undefined4 *param_3)" identifier (parameter_list "(int param_1,int *param_2,undefined4 *param_3)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) )))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 extraout_ECX;\n  uint uVar8;\n  byte bVar9;\n  byte bVar10;\n  code *pcVar11;\n  uint uVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  undefined8 uVar15;\n  int *piStack_40;\n  undefined1 auStack_3c [4];\n  int *piStack_38;\n  uint uStack_34;\n  int iStack_30;\n  code *pcStack_2c;\n  code *pcStack_28;\n  int *apiStack_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x351059;\n  bVar10 = *(byte *)((int)param_2 + 0x2a);\n  piVar2 = (int *)(bVar10 & 7);\n  if (4 < (byte)piVar2) {\n    piStack_40 = piVar2;\n                    \n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  switch(piVar2) {\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }\n  **(undefined4 **)((int)ppiVar13 + 0x48) = 0;\n  return pcVar4;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int **ppiVar13;" primitive_type (pointer_declarator "**ppiVar13" * (pointer_declarator "*ppiVar13" * identifier)) ;) (declaration "int **ppiVar14;" primitive_type (pointer_declarator "**ppiVar14" * (pointer_declarator "*ppiVar14" * identifier)) ;) (declaration "undefined8 uVar15;" type_identifier identifier ;) (declaration "int *piStack_40;" primitive_type (pointer_declarator "*piStack_40" * identifier) ;) (declaration "undefined1 auStack_3c [4];" type_identifier (array_declarator "auStack_3c [4]" identifier [ number_literal ]) ;) (declaration "int *piStack_38;" primitive_type (pointer_declarator "*piStack_38" * identifier) ;) (declaration "uint uStack_34;" type_identifier identifier ;) (declaration "int iStack_30;" primitive_type identifier ;) (declaration "code *pcStack_2c;" type_identifier (pointer_declarator "*pcStack_2c" * identifier) ;) (declaration "code *pcStack_28;" type_identifier (pointer_declarator "*pcStack_28" * identifier) ;) (declaration "int *apiStack_24 [4];" primitive_type (pointer_declarator "*apiStack_24 [4]" * (array_declarator "apiStack_24 [4]" identifier [ number_literal ])) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x351059;" (assignment_expression "uStack_14 = 0x351059" identifier = number_literal) ;) (expression_statement "bVar10 = *(byte *)((int)param_2 + 0x2a);" (assignment_expression "bVar10 = *(byte *)((int)param_2 + 0x2a)" identifier = (pointer_expression "*(byte *)((int)param_2 + 0x2a)" * (cast_expression "(byte *)((int)param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "piVar2 = (int *)(bVar10 & 7);" (assignment_expression "piVar2 = (int *)(bVar10 & 7)" identifier = (cast_expression "(int *)(bVar10 & 7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(bVar10 & 7)" ( (binary_expression "bVar10 & 7" identifier & number_literal) )))) ;) (if_statement "if (4 < (byte)piVar2) {\n    piStack_40 = piVar2;\n                    \n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" if (parenthesized_expression "(4 < (byte)piVar2)" ( (binary_expression "4 < (byte)piVar2" number_literal < (cast_expression "(byte)piVar2" ( (type_descriptor "byte" type_identifier) ) identifier)) )) (compound_statement "{\n    piStack_40 = piVar2;\n                    \n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" { (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" identifier = identifier) ;) (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb6a,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (switch_statement "switch(piVar2) {\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }" switch (parenthesized_expression "(piVar2)" ( identifier )) (compound_statement "{\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }" { (case_statement "case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }" case (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }" if (parenthesized_expression "((bVar10 & 7) != 0)" ( (binary_expression "(bVar10 & 7) != 0" (parenthesized_expression "(bVar10 & 7)" ( (binary_expression "bVar10 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }" { (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" identifier = identifier) ;) (expression_statement "FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xaa,"shndx")" identifier (argument_list "("../../gold/symtab.h",0xaa,"shndx")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""shndx"" " string_content ") ))) ;) })) (expression_statement "piVar2 = (int *)param_2[3];" (assignment_expression "piVar2 = (int *)param_2[3]" identifier = (cast_expression "(int *)param_2[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (expression_statement "bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;" (assignment_expression "bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5" identifier = (binary_expression "*(byte *)((int)param_2 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_2 + 0x2b)" * (cast_expression "(byte *)((int)param_2 + 0x2b)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2b)" ( (binary_expression "(int)param_2 + 0x2b" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) >> number_literal)) ;) (expression_statement "bVar10 = bVar9 & 1;" (assignment_expression "bVar10 = bVar9 & 1" identifier = (binary_expression "bVar9 & 1" identifier & number_literal)) ;) (if_statement "if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }" if (parenthesized_expression "((piVar2 != (int *)0xfff1) && (bVar10 == 0))" ( (binary_expression "(piVar2 != (int *)0xfff1) && (bVar10 == 0)" (parenthesized_expression "(piVar2 != (int *)0xfff1)" ( (binary_expression "piVar2 != (int *)0xfff1" identifier != (cast_expression "(int *)0xfff1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }" { (expression_statement "pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);" (assignment_expression "pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01)" identifier = (cast_expression "(code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01)" ( (binary_expression "CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01" (call_expression "CONCAT31(pcStack_2c._1_3_,bVar9)" identifier (argument_list "(pcStack_2c._1_3_,bVar9)" ( (field_expression "pcStack_2c._1_3_" identifier . field_identifier) , identifier ))) & number_literal) )))) ;) (expression_statement "piVar5 = (int *)FUN_0034c920(piVar2);" (assignment_expression "piVar5 = (int *)FUN_0034c920(piVar2)" identifier = (cast_expression "(int *)FUN_0034c920(piVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034c920(piVar2)" identifier (argument_list "(piVar2)" ( identifier ))))) ;) (if_statement "if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }" if (parenthesized_expression "((char)piVar5 == '\0')" ( (binary_expression "(char)piVar5 == '\0'" (cast_expression "(char)piVar5" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        *param_3 = 1;\n        return (code *)0x0;\n      }" { (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" * identifier) = number_literal) ;) (return_statement "return (code *)0x0;" return (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "bVar10 = (byte)pcStack_2c;" (assignment_expression "bVar10 = (byte)pcStack_2c" identifier = (cast_expression "(byte)pcStack_2c" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }" if (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 7) != 0)" ( (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_2 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" * (cast_expression "(byte *)((int)param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }" { (expression_statement "piStack_40 = piVar5;" (assignment_expression "piStack_40 = piVar5" identifier = identifier) ;) (expression_statement "FUN_002446e0("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xa1,"object")" identifier (argument_list "("../../gold/symtab.h",0xa1,"object")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""object"" " string_content ") ))) ;) })) })) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "pcVar4 = (code *)param_2[2];" (assignment_expression "pcVar4 = (code *)param_2[2]" identifier = (cast_expression "(code *)param_2[2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (if_statement "if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }" if (parenthesized_expression "(((byte)pcVar4[0x2c] & 1) == 0)" ( (binary_expression "((byte)pcVar4[0x2c] & 1) == 0" (parenthesized_expression "((byte)pcVar4[0x2c] & 1)" ( (binary_expression "(byte)pcVar4[0x2c] & 1" (cast_expression "(byte)pcVar4[0x2c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar4[0x2c]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }" { (expression_statement "pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);" (assignment_expression "pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10)" identifier = (cast_expression "(code *)CONCAT31(pcStack_2c._1_3_,bVar10)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(pcStack_2c._1_3_,bVar10)" identifier (argument_list "(pcStack_2c._1_3_,bVar10)" ( (field_expression "pcStack_2c._1_3_" identifier . field_identifier) , identifier ))))) ;) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4)" identifier = (call_expression "(**(code **)(*(int *)pcVar4 + 0x14))(pcVar4)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x14))" ( (pointer_expression "**(code **)(*(int *)pcVar4 + 0x14)" * (pointer_expression "*(code **)(*(int *)pcVar4 + 0x14)" * (cast_expression "(code **)(*(int *)pcVar4 + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar4 + 0x14)" ( (binary_expression "*(int *)pcVar4 + 0x14" (pointer_expression "*(int *)pcVar4" * (cast_expression "(int *)pcVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar4)" ( identifier )))) ;) (if_statement "if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }" if (parenthesized_expression "((iVar3 == 0) && (piVar2 != (int *)0x0))" ( (binary_expression "(iVar3 == 0) && (piVar2 != (int *)0x0)" (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) && (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }" { (if_statement "if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }" if (parenthesized_expression "(((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0'))))" ( (binary_expression "((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))" (parenthesized_expression "((byte)pcStack_2c != '\0')" ( (binary_expression "(byte)pcStack_2c != '\0'" (cast_expression "(byte)pcStack_2c" ( (type_descriptor "byte" type_identifier) ) identifier) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))" ( (parenthesized_expression "(piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0'))" ( (binary_expression "piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')" (binary_expression "piVar2 != (int *)0xfff1" identifier != (cast_expression "(int *)0xfff1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')" ( (comma_expression "cVar1 = FUN_0034c920(piVar2), cVar1 == '\0'" (assignment_expression "cVar1 = FUN_0034c920(piVar2)" identifier = (call_expression "FUN_0034c920(piVar2)" identifier (argument_list "(piVar2)" ( identifier )))) , (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) ))) )) ))) )) (compound_statement "{\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }" { (expression_statement "pcStack_28 = FUN_00071550;" (assignment_expression "pcStack_28 = FUN_00071550" identifier = identifier) ;) (if_statement "if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }" if (parenthesized_expression "(*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550)" ( (binary_expression "*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550" (pointer_expression "*(code **)(*(int *)pcVar4 + 0x60)" * (cast_expression "(code **)(*(int *)pcVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar4 + 0x60)" ( (binary_expression "*(int *)pcVar4 + 0x60" (pointer_expression "*(int *)pcVar4" * (cast_expression "(int *)pcVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) )) (compound_statement "{\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }" { (expression_statement "piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);" (assignment_expression "piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2)" identifier = (cast_expression "(int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2)" ( (binary_expression "*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2" (binary_expression "*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38)" (pointer_expression "*(int *)(pcVar4 + 0x3c)" * (cast_expression "(int *)(pcVar4 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x3c)" ( (binary_expression "pcVar4 + 0x3c" identifier + number_literal) )))) - (pointer_expression "*(int *)(pcVar4 + 0x38)" * (cast_expression "(int *)(pcVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x38)" ( (binary_expression "pcVar4 + 0x38" identifier + number_literal) ))))) >> number_literal) )))) ;) (expression_statement "ppiVar14 = (int **)auStack_3c;" (assignment_expression "ppiVar14 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (piVar5 <= piVar2) goto code_r0x003515fc;" if (parenthesized_expression "(piVar5 <= piVar2)" ( (binary_expression "piVar5 <= piVar2" identifier <= identifier) )) (goto_statement "goto code_r0x003515fc;" goto statement_identifier ;)) (expression_statement "pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);" (assignment_expression "pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" identifier = (pointer_expression "*(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" * (cast_expression "(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" ( (binary_expression "*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4" (pointer_expression "*(int *)(pcVar4 + 0x38)" * (cast_expression "(int *)(pcVar4 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 0x38)" ( (binary_expression "pcVar4 + 0x38" identifier + number_literal) )))) + (binary_expression "(int)piVar2 * 4" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) ;) }) (else_clause "else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }" else (compound_statement "{\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }" { (expression_statement "pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);" (assignment_expression "pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2)" identifier = (cast_expression "(code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x60))" ( (pointer_expression "**(code **)(*(int *)pcVar4 + 0x60)" * (pointer_expression "*(code **)(*(int *)pcVar4 + 0x60)" * (cast_expression "(code **)(*(int *)pcVar4 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar4 + 0x60)" ( (binary_expression "*(int *)pcVar4 + 0x60" (pointer_expression "*(int *)pcVar4" * (cast_expression "(int *)pcVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar4,piVar2)" ( identifier , identifier ))))) ;) }))) (expression_statement "cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);" (assignment_expression "cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2)" identifier = (call_expression "FUN_0034cd20(param_1,pcVar4,piVar2)" identifier (argument_list "(param_1,pcVar4,piVar2)" ( identifier , identifier , identifier )))) ;) (if_statement "if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }" if (parenthesized_expression "(cVar1 == '\0')" ( (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }" { (expression_statement "uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);" (assignment_expression "uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2)" identifier = (call_expression "(**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x68))" ( (pointer_expression "**(code **)(*(int *)pcVar4 + 0x68)" * (pointer_expression "*(code **)(*(int *)pcVar4 + 0x68)" * (cast_expression "(code **)(*(int *)pcVar4 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar4 + 0x68)" ( (binary_expression "*(int *)pcVar4 + 0x68" (pointer_expression "*(int *)pcVar4" * (cast_expression "(int *)pcVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar4,piVar2)" ( identifier , identifier )))) ;) (if_statement "if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }" if (parenthesized_expression "(pcStack_2c == (code *)0x0)" ( (binary_expression "pcStack_2c == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }" { (if_statement "if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }" if (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x10) == '\0')" ( (binary_expression "*(char *)(DAT_005ea7c8 + 0x10) == '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x10)" * (cast_expression "(char *)(DAT_005ea7c8 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0x10)" ( (binary_expression "DAT_005ea7c8 + 0x10" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }" { (expression_statement "piStack_40 = (int *)&UNK_003515fc;" (assignment_expression "piStack_40 = (int *)&UNK_003515fc" identifier = (cast_expression "(int *)&UNK_003515fc" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_003515fc" & identifier))) ;) (expression_statement "piVar5 = (int *)FUN_0034c490();" (assignment_expression "piVar5 = (int *)FUN_0034c490()" identifier = (cast_expression "(int *)FUN_0034c490()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034c490()" identifier (argument_list "()" ( ))))) ;) (expression_statement "ppiVar14 = (int **)auStack_3c;" (assignment_expression "ppiVar14 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (goto_statement "goto code_r0x003515fc;" goto statement_identifier ;) })) (if_statement "if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }" if (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x11) == '\0')" ( (binary_expression "*(char *)(DAT_005ea7c8 + 0x11) == '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x11)" * (cast_expression "(char *)(DAT_005ea7c8 + 0x11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_005ea7c8 + 0x11)" ( (binary_expression "DAT_005ea7c8 + 0x11" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }" { (expression_statement "piStack_40 = *(int **)(DAT_005ea7c8 + 8);" (assignment_expression "piStack_40 = *(int **)(DAT_005ea7c8 + 8)" identifier = (pointer_expression "*(int **)(DAT_005ea7c8 + 8)" * (cast_expression "(int **)(DAT_005ea7c8 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(DAT_005ea7c8 + 8)" ( (binary_expression "DAT_005ea7c8 + 8" identifier + number_literal) ))))) ;) (if_statement "if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }" if (parenthesized_expression "(piStack_40 == (int *)0x0)" ( (binary_expression "piStack_40 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }" { (labeled_statement "code_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");" statement_identifier : (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options")" identifier (argument_list "("../../gold/parameters.h",0x5c,"options")" ( (string_literal ""../../gold/parameters.h"" " string_content ") , number_literal , (string_literal ""options"" " string_content ") ))) ;)) })) (if_statement "if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }" if (parenthesized_expression "(*(char *)((int)piStack_40 + 0x318d) == '\0')" ( (binary_expression "*(char *)((int)piStack_40 + 0x318d) == '\0'" (pointer_expression "*(char *)((int)piStack_40 + 0x318d)" * (cast_expression "(char *)((int)piStack_40 + 0x318d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piStack_40 + 0x318d)" ( (binary_expression "(int)piStack_40 + 0x318d" (cast_expression "(int)piStack_40" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }" { (expression_statement "piStack_40 = (int *)param_2[5];" (assignment_expression "piStack_40 = (int *)param_2[5]" identifier = (cast_expression "(int *)param_2[5]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[5]" identifier [ number_literal ]))) ;) (if_statement "if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }" if (parenthesized_expression "(piStack_40 == (int *)0x0)" ( (binary_expression "piStack_40 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }" { (expression_statement "piStack_40 = (int *)&UNK_0035164c;" (assignment_expression "piStack_40 = (int *)&UNK_0035164c" identifier = (cast_expression "(int *)&UNK_0035164c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&UNK_0035164c" & identifier))) ;) (expression_statement "piStack_40 = (int *)FUN_0034c4c0();" (assignment_expression "piStack_40 = (int *)FUN_0034c4c0()" identifier = (cast_expression "(int *)FUN_0034c4c0()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0034c4c0()" identifier (argument_list "()" ( ))))) ;) (goto_statement "goto code_r0x0035164c;" goto statement_identifier ;) })) (if_statement "if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }" if (parenthesized_expression "(piStack_40 != (int *)0xffffffff)" ( (binary_expression "piStack_40 != (int *)0xffffffff" identifier != (cast_expression "(int *)0xffffffff" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }" { (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb21,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) })) })) (expression_statement "*param_3 = 2;" (assignment_expression "*param_3 = 2" (pointer_expression "*param_3" * identifier) = number_literal) ;) (return_statement "return (code *)0x0;" return (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) }) (else_clause "else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }" else (compound_statement "{\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }" { (if_statement "if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }" if (parenthesized_expression "(pcStack_2c != (code *)0x0)" ( (binary_expression "pcStack_2c != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }" { (expression_statement "piStack_40 = param_2;" (assignment_expression "piStack_40 = param_2" identifier = identifier) ;) (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb0c,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" identifier = identifier) ;) (expression_statement "FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);" (call_expression "FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4)" identifier (argument_list "(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4)" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x15c)" * (cast_expression "(undefined4 *)(param_1 + 0x15c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x15c)" ( (binary_expression "param_1 + 0x15c" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "pcVar4 = pcStack_28;" (assignment_expression "pcVar4 = pcStack_28" identifier = identifier) ;) (expression_statement "piStack_38 = apiStack_24[0];" (assignment_expression "piStack_38 = apiStack_24[0]" identifier = (subscript_expression "apiStack_24[0]" identifier [ number_literal ])) ;) (if_statement "if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }" if (parenthesized_expression "(pcStack_28 == (code *)0x0)" ( (binary_expression "pcStack_28 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }" { (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX)" identifier (argument_list "("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX)" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") , identifier ))) ;) })) (if_statement "if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }" if (parenthesized_expression "(*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c)" ( (binary_expression "*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c" (pointer_expression "*(code **)(*(int *)pcStack_28 + 0x60)" * (cast_expression "(code **)(*(int *)pcStack_28 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcStack_28 + 0x60)" ( (binary_expression "*(int *)pcStack_28 + 0x60" (pointer_expression "*(int *)pcStack_28" * (cast_expression "(int *)pcStack_28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) )))) == identifier) )) (compound_statement "{\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }" { (expression_statement "iStack_30 = *(int *)(pcStack_28 + 0x38);" (assignment_expression "iStack_30 = *(int *)(pcStack_28 + 0x38)" identifier = (pointer_expression "*(int *)(pcStack_28 + 0x38)" * (cast_expression "(int *)(pcStack_28 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_28 + 0x38)" ( (binary_expression "pcStack_28 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);" (assignment_expression "piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2)" identifier = (cast_expression "(int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2)" ( (binary_expression "*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2" (binary_expression "*(int *)(pcStack_28 + 0x3c) - iStack_30" (pointer_expression "*(int *)(pcStack_28 + 0x3c)" * (cast_expression "(int *)(pcStack_28 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_28 + 0x3c)" ( (binary_expression "pcStack_28 + 0x3c" identifier + number_literal) )))) - identifier) >> number_literal) )))) ;) (expression_statement "ppiVar14 = &piStack_40;" (assignment_expression "ppiVar14 = &piStack_40" identifier = (pointer_expression "&piStack_40" & identifier)) ;) (if_statement "if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }" if (parenthesized_expression "(piVar5 <= apiStack_24[0])" ( (binary_expression "piVar5 <= apiStack_24[0]" identifier <= (subscript_expression "apiStack_24[0]" identifier [ number_literal ])) )) (compound_statement "{\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }" { (labeled_statement "code_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;" statement_identifier : (expression_statement "*(int **)((int)ppiVar14 + -4) = piVar5;" (assignment_expression "*(int **)((int)ppiVar14 + -4) = piVar5" (pointer_expression "*(int **)((int)ppiVar14 + -4)" * (cast_expression "(int **)((int)ppiVar14 + -4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar14 + -4)" ( (binary_expression "(int)ppiVar14 + -4" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(char **)((int)ppiVar14 + -8) = "do_output_section";" (assignment_expression "*(char **)((int)ppiVar14 + -8) = "do_output_section"" (pointer_expression "*(char **)((int)ppiVar14 + -8)" * (cast_expression "(char **)((int)ppiVar14 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar14 + -8)" ( (binary_expression "(int)ppiVar14 + -8" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""do_output_section"" " string_content ")) ;) (expression_statement "*(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;" (assignment_expression "*(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8" (pointer_expression "*(undefined4 *)((int)ppiVar14 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar14 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar14 + -0xc)" ( (binary_expression "(int)ppiVar14 + -0xc" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";" (assignment_expression "*(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h"" (pointer_expression "*(char **)((int)ppiVar14 + -0x10)" * (cast_expression "(char **)((int)ppiVar14 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar14 + -0x10)" ( (binary_expression "(int)ppiVar14 + -0x10" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""../../gold/object.h"" " string_content ")) ;) (expression_statement "*(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;" (assignment_expression "*(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615" (pointer_expression "*(undefined **)((int)ppiVar14 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar14 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar14 + -0x14)" ( (binary_expression "(int)ppiVar14 + -0x14" (cast_expression "(int)ppiVar14" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_00351615" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);" (assignment_expression "iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4)" identifier = (pointer_expression "*(int *)(iStack_30 + (int)apiStack_24[0] * 4)" * (cast_expression "(int *)(iStack_30 + (int)apiStack_24[0] * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iStack_30 + (int)apiStack_24[0] * 4)" ( (binary_expression "iStack_30 + (int)apiStack_24[0] * 4" identifier + (binary_expression "(int)apiStack_24[0] * 4" (cast_expression "(int)apiStack_24[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "apiStack_24[0]" identifier [ number_literal ])) * number_literal)) ))))) ;) (expression_statement "pcVar11 = pcStack_28;" (assignment_expression "pcVar11 = pcStack_28" identifier = identifier) ;) }) (else_clause "else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }" else (compound_statement "{\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }" { (expression_statement "pcStack_2c = pcStack_28;" (assignment_expression "pcStack_2c = pcStack_28" identifier = identifier) ;) (expression_statement "iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);" (assignment_expression "iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28)" identifier = (call_expression "(**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28)" (parenthesized_expression "(**(code **)(*(int *)pcStack_28 + 0x60))" ( (pointer_expression "**(code **)(*(int *)pcStack_28 + 0x60)" * (pointer_expression "*(code **)(*(int *)pcStack_28 + 0x60)" * (cast_expression "(code **)(*(int *)pcStack_28 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcStack_28 + 0x60)" ( (binary_expression "*(int *)pcStack_28 + 0x60" (pointer_expression "*(int *)pcStack_28" * (cast_expression "(int *)pcStack_28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcStack_28,apiStack_24[0],pcStack_28,pcStack_28)" ( identifier , (subscript_expression "apiStack_24[0]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "pcVar11 = pcStack_2c;" (assignment_expression "pcVar11 = pcStack_2c" identifier = identifier) ;) }))) (expression_statement "ppiVar13 = &piStack_40;" (assignment_expression "ppiVar13 = &piStack_40" identifier = (pointer_expression "&piStack_40" & identifier)) ;) (if_statement "if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }" if (parenthesized_expression "(iStack_30 == 0)" ( (binary_expression "iStack_30 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }" { (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11)" identifier (argument_list "("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11)" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") , identifier ))) ;) })) (expression_statement "uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);" (assignment_expression "uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38)" identifier = (call_expression "(**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38)" (parenthesized_expression "(**(code **)(*(int *)pcVar11 + 0x68))" ( (pointer_expression "**(code **)(*(int *)pcVar11 + 0x68)" * (pointer_expression "*(code **)(*(int *)pcVar11 + 0x68)" * (cast_expression "(code **)(*(int *)pcVar11 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)pcVar11 + 0x68)" ( (binary_expression "*(int *)pcVar11 + 0x68" (pointer_expression "*(int *)pcVar11" * (cast_expression "(int *)pcVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "(pcVar11,piStack_38)" ( identifier , identifier )))) ;) (expression_statement "piVar2 = apiStack_24[0];" (assignment_expression "piVar2 = apiStack_24[0]" identifier = (subscript_expression "apiStack_24[0]" identifier [ number_literal ])) ;) }))) (expression_statement "uVar12 = (uint)((ulonglong)uVar15 >> 0x20);" (assignment_expression "uVar12 = (uint)((ulonglong)uVar15 >> 0x20)" identifier = (call_expression "(uint)((ulonglong)uVar15 >> 0x20)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ulonglong)uVar15 >> 0x20)" ( (binary_expression "(ulonglong)uVar15 >> 0x20" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "uVar8 = (uint)uVar15;" (assignment_expression "uVar8 = (uint)uVar15" identifier = (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "uVar6 = uVar12 & uVar8;" (assignment_expression "uVar6 = uVar12 & uVar8" identifier = (binary_expression "uVar12 & uVar8" identifier & identifier)) ;) (if_statement "if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }" if (parenthesized_expression "(uVar6 == 0xffffffff)" ( (binary_expression "uVar6 == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }" { (expression_statement "iVar3 = param_2[0xc];" (assignment_expression "iVar3 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)((int)ppiVar13 + -0x14) = iVar3;" (assignment_expression "*(int *)((int)ppiVar13 + -0x14) = iVar3" (pointer_expression "*(int *)((int)ppiVar13 + -0x14)" * (cast_expression "(int *)((int)ppiVar13 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(int **)((int)ppiVar13 + -0x18) = piVar2;" (assignment_expression "*(int **)((int)ppiVar13 + -0x18) = piVar2" (pointer_expression "*(int **)((int)ppiVar13 + -0x18)" * (cast_expression "(int **)((int)ppiVar13 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x18)" ( (binary_expression "(int)ppiVar13 + -0x18" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)ppiVar13 + -0x1c) = pcVar4;" (assignment_expression "*(code **)((int)ppiVar13 + -0x1c) = pcVar4" (pointer_expression "*(code **)((int)ppiVar13 + -0x1c)" * (cast_expression "(code **)((int)ppiVar13 + -0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x1c)" ( (binary_expression "(int)ppiVar13 + -0x1c" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x20)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x20)" ( (binary_expression "(int)ppiVar13 + -0x20" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x24)" * (cast_expression "(undefined **)((int)ppiVar13 + -0x24)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x24)" ( (binary_expression "(int)ppiVar13 + -0x24" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_003514ac" & identifier)) ;) (expression_statement "pcVar4 = (code *)FUN_002cdbd0();" (assignment_expression "pcVar4 = (code *)FUN_002cdbd0()" identifier = (cast_expression "(code *)FUN_002cdbd0()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_002cdbd0()" identifier (argument_list "()" ( ))))) ;) }) (else_clause "else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }" else (compound_statement "{\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }" { (if_statement "if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }" { (expression_statement "*(uint *)((int)ppiVar13 + -4) = uVar6;" (assignment_expression "*(uint *)((int)ppiVar13 + -4) = uVar6" (pointer_expression "*(uint *)((int)ppiVar13 + -4)" * (cast_expression "(uint *)((int)ppiVar13 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -4)" ( (binary_expression "(int)ppiVar13 + -4" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(char **)((int)ppiVar13 + -8) = "convert_types";" (assignment_expression "*(char **)((int)ppiVar13 + -8) = "convert_types"" (pointer_expression "*(char **)((int)ppiVar13 + -8)" * (cast_expression "(char **)((int)ppiVar13 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -8)" ( (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""convert_types"" " string_content ")) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0xc)" ( (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";" (assignment_expression "*(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h"" (pointer_expression "*(char **)((int)ppiVar13 + -0x10)" * (cast_expression "(char **)((int)ppiVar13 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""../../gold/gold.h"" " string_content ")) ;) (expression_statement "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar13 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_003515de" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar3 = param_2[0xc];" (assignment_expression "iVar3 = param_2[0xc]" identifier = (subscript_expression "param_2[0xc]" identifier [ number_literal ])) ;) (if_statement "if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }" if (parenthesized_expression "((*(byte *)(param_2 + 10) & 0xf) == 6)" ( (binary_expression "(*(byte *)(param_2 + 10) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_2 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }" { (expression_statement "pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);" (assignment_expression "pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48)" identifier = (pointer_expression "*(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48)" * (cast_expression "(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)((int)ppiVar13 + 0x10) + 0x48)" ( (binary_expression "**(int **)((int)ppiVar13 + 0x10) + 0x48" (pointer_expression "**(int **)((int)ppiVar13 + 0x10)" * (pointer_expression "*(int **)((int)ppiVar13 + 0x10)" * (cast_expression "(int **)((int)ppiVar13 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }" if (parenthesized_expression "(pcVar4 == FUN_00144100)" ( (binary_expression "pcVar4 == FUN_00144100" identifier == identifier) )) (compound_statement "{\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }" { (expression_statement "iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];" (assignment_expression "iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25]" identifier = (subscript_expression "(*(int **)((int)ppiVar13 + 0x10))[0x25]" (parenthesized_expression "(*(int **)((int)ppiVar13 + 0x10))" ( (pointer_expression "*(int **)((int)ppiVar13 + 0x10)" * (cast_expression "(int **)((int)ppiVar13 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) )) [ number_literal ])) ;) }) (else_clause "else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }" else (compound_statement "{\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }" { (expression_statement "*(uint *)((int)ppiVar13 + 8) = uVar8;" (assignment_expression "*(uint *)((int)ppiVar13 + 8) = uVar8" (pointer_expression "*(uint *)((int)ppiVar13 + 8)" * (cast_expression "(uint *)((int)ppiVar13 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 8)" ( (binary_expression "(int)ppiVar13 + 8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x10)" * (cast_expression "(undefined4 *)((int)ppiVar13 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar13 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_003514f4" & identifier)) ;) (expression_statement "iVar7 = (*pcVar4)();" (assignment_expression "iVar7 = (*pcVar4)()" identifier = (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "uVar8 = *(uint *)((int)ppiVar13 + 8);" (assignment_expression "uVar8 = *(uint *)((int)ppiVar13 + 8)" identifier = (pointer_expression "*(uint *)((int)ppiVar13 + 8)" * (cast_expression "(uint *)((int)ppiVar13 + 8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 8)" ( (binary_expression "(int)ppiVar13 + 8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) }))) (expression_statement "pcVar4 = (code *)(iVar7 + iVar3 + uVar8);" (assignment_expression "pcVar4 = (code *)(iVar7 + iVar3 + uVar8)" identifier = (cast_expression "(code *)(iVar7 + iVar3 + uVar8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + iVar3 + uVar8)" ( (binary_expression "iVar7 + iVar3 + uVar8" (binary_expression "iVar7 + iVar3" identifier + identifier) + identifier) )))) ;) }) (else_clause "else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }" else (compound_statement "{\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }" { (expression_statement "uVar6 = *(uint *)((int)ppiVar13 + 0x10);" (assignment_expression "uVar6 = *(uint *)((int)ppiVar13 + 0x10)" identifier = (pointer_expression "*(uint *)((int)ppiVar13 + 0x10)" * (cast_expression "(uint *)((int)ppiVar13 + 0x10)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;" if (parenthesized_expression "((*(byte *)(uVar6 + 0x1c) & 1) == 0)" ( (binary_expression "(*(byte *)(uVar6 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(uVar6 + 0x1c) & 1)" ( (binary_expression "*(byte *)(uVar6 + 0x1c) & 1" (pointer_expression "*(byte *)(uVar6 + 0x1c)" * (cast_expression "(byte *)(uVar6 + 0x1c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 + 0x1c)" ( (binary_expression "uVar6 + 0x1c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (goto_statement "goto code_r0x00351548;" goto statement_identifier ;)) (expression_statement "pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));" (assignment_expression "pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4))" identifier = (cast_expression "(code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4))" ( (binary_expression "iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4)" (binary_expression "iVar3 + uVar8" identifier + identifier) + (pointer_expression "*(int *)(*(int *)((int)ppiVar13 + 0x10) + 4)" * (cast_expression "(int *)(*(int *)((int)ppiVar13 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)((int)ppiVar13 + 0x10) + 4)" ( (binary_expression "*(int *)((int)ppiVar13 + 0x10) + 4" (pointer_expression "*(int *)((int)ppiVar13 + 0x10)" * (cast_expression "(int *)((int)ppiVar13 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + 0x10)" ( (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) + number_literal) ))))) )))) ;) }))) }))) (break_statement "break;" break ;) })) (goto_statement "goto code_r0x003510f8;" goto statement_identifier ;) })) }))) (case_statement "case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;" case (cast_expression "(int *)0x4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) : (expression_statement "pcVar4 = (code *)0x0;" (assignment_expression "pcVar4 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (break_statement "break;" break ;)) (case_statement "case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;" case (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }" if (parenthesized_expression "((bVar10 & 7) != 1)" ( (binary_expression "(bVar10 & 7) != 1" (parenthesized_expression "(bVar10 & 7)" ( (binary_expression "bVar10 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }" { (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" identifier = identifier) ;) (expression_statement "FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xb5,"output_data")" identifier (argument_list "("../../gold/symtab.h",0xb5,"output_data")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_data"" " string_content ") ))) ;) })) (expression_statement "piVar2 = (int *)param_2[2];" (assignment_expression "piVar2 = (int *)param_2[2]" identifier = (cast_expression "(int *)param_2[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "pcStack_2c = (code *)param_2[0xc];" (assignment_expression "pcStack_2c = (code *)param_2[0xc]" identifier = (cast_expression "(code *)param_2[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xc]" identifier [ number_literal ]))) ;) (if_statement "if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }" if (parenthesized_expression "((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06')" ( (binary_expression "(char)(*(byte *)(param_2 + 10) & 0xf) == '\x06'" (cast_expression "(char)(*(byte *)(param_2 + 10) & 0xf)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(*(byte *)(param_2 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) & number_literal) ))) == (char_literal "'\x06'" ' escape_sequence ')) )) (compound_statement "{\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }" { (expression_statement "piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);" (assignment_expression "piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2)" identifier = (cast_expression "(int *)(**(code **)(*piVar2 + 0x24))(piVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(*piVar2 + 0x24))(piVar2)" (parenthesized_expression "(**(code **)(*piVar2 + 0x24))" ( (pointer_expression "**(code **)(*piVar2 + 0x24)" * (pointer_expression "*(code **)(*piVar2 + 0x24)" * (cast_expression "(code **)(*piVar2 + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar2 + 0x24)" ( (binary_expression "*piVar2 + 0x24" (pointer_expression "*piVar2" * identifier) + number_literal) ))))) )) (argument_list "(piVar2)" ( identifier ))))) ;) (if_statement "if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" if (parenthesized_expression "(piVar5 == (int *)0x0)" ( (binary_expression "piVar5 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" { (expression_statement "piStack_40 = piVar5;" (assignment_expression "piStack_40 = piVar5" identifier = identifier) ;) (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb43,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (if_statement "if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }" if (parenthesized_expression "(*(code **)(*piVar5 + 0x48) == FUN_00144100)" ( (binary_expression "*(code **)(*piVar5 + 0x48) == FUN_00144100" (pointer_expression "*(code **)(*piVar5 + 0x48)" * (cast_expression "(code **)(*piVar5 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x48)" ( (binary_expression "*piVar5 + 0x48" (pointer_expression "*piVar5" * identifier) + number_literal) )))) == identifier) )) (compound_statement "{\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }" { (expression_statement "uStack_34 = piVar5[0x25];" (assignment_expression "uStack_34 = piVar5[0x25]" identifier = (subscript_expression "piVar5[0x25]" identifier [ number_literal ])) ;) (expression_statement "iStack_30 = piVar5[0x26];" (assignment_expression "iStack_30 = piVar5[0x26]" identifier = (subscript_expression "piVar5[0x26]" identifier [ number_literal ])) ;) }) (else_clause "else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }" else (compound_statement "{\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }" { (expression_statement "uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);" (assignment_expression "uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5)" identifier = (call_expression "(**(code **)(*piVar5 + 0x48))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x48))" ( (pointer_expression "**(code **)(*piVar5 + 0x48)" * (pointer_expression "*(code **)(*piVar5 + 0x48)" * (cast_expression "(code **)(*piVar5 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar5 + 0x48)" ( (binary_expression "*piVar5 + 0x48" (pointer_expression "*piVar5" * identifier) + number_literal) ))))) )) (argument_list "(piVar5)" ( identifier )))) ;) (expression_statement "uStack_34 = (uint)uVar15;" (assignment_expression "uStack_34 = (uint)uVar15" identifier = (cast_expression "(uint)uVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "iStack_30 = (int)((ulonglong)uVar15 >> 0x20);" (assignment_expression "iStack_30 = (int)((ulonglong)uVar15 >> 0x20)" identifier = (cast_expression "(int)((ulonglong)uVar15 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar15 >> 0x20)" ( (binary_expression "(ulonglong)uVar15 >> 0x20" (cast_expression "(ulonglong)uVar15" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) }))) (expression_statement "bVar10 = *(byte *)(piVar2 + 7);" (assignment_expression "bVar10 = *(byte *)(piVar2 + 7)" identifier = (pointer_expression "*(byte *)(piVar2 + 7)" * (cast_expression "(byte *)(piVar2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 7)" ( (binary_expression "piVar2 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = uStack_34;" (assignment_expression "uVar6 = uStack_34" identifier = identifier) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;" if (parenthesized_expression "(((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))" ( (binary_expression "((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0)" (parenthesized_expression "((bVar10 & 1) == 0)" ( (binary_expression "(bVar10 & 1) == 0" (parenthesized_expression "(bVar10 & 1)" ( (binary_expression "bVar10 & 1" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0)" ( (comma_expression "uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0" (assignment_expression "uVar6 = piVar2[1]" identifier = (subscript_expression "piVar2[1]" identifier [ number_literal ])) , (comma_expression "ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) , (binary_expression "(*(byte *)(piVar5 + 7) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 1)" ( (binary_expression "*(byte *)(piVar5 + 7) & 1" (pointer_expression "*(byte *)(piVar5 + 7)" * (cast_expression "(byte *)(piVar5 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5 + 7)" ( (binary_expression "piVar5 + 7" identifier + number_literal) )))) & number_literal) )) == number_literal))) ))) )) (goto_statement "goto code_r0x00351548;" goto statement_identifier ;)) (expression_statement "pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;" (assignment_expression "pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34" identifier = (binary_expression "pcStack_2c + (uVar6 - piVar5[1]) + uStack_34" (binary_expression "pcStack_2c + (uVar6 - piVar5[1])" identifier + (parenthesized_expression "(uVar6 - piVar5[1])" ( (binary_expression "uVar6 - piVar5[1]" identifier - (subscript_expression "piVar5[1]" identifier [ number_literal ])) ))) + identifier)) ;) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" if (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 7) != 1)" ( (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 7) != 1" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 7)" ( (binary_expression "*(byte *)((int)param_2 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" * (cast_expression "(byte *)((int)param_2 + 0x2a)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + 0x2a)" ( (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" { (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" identifier = identifier) ;) (expression_statement "FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end")" identifier (argument_list "("../../gold/symtab.h",0xbe,"offset_is_from_end")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""offset_is_from_end"" " string_content ") ))) ;) })) }) (else_clause "else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }" else (compound_statement "{\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }" { (expression_statement "bVar10 = *(byte *)(piVar2 + 7);" (assignment_expression "bVar10 = *(byte *)(piVar2 + 7)" identifier = (pointer_expression "*(byte *)(piVar2 + 7)" * (cast_expression "(byte *)(piVar2 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar2 + 7)" ( (binary_expression "piVar2 + 7" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(byte *)(param_2 + 10) & 0xf;" (assignment_expression "uVar6 = *(byte *)(param_2 + 10) & 0xf" identifier = (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) & number_literal)) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }" if (parenthesized_expression "((bVar10 & 1) == 0)" ( (binary_expression "(bVar10 & 1) == 0" (parenthesized_expression "(bVar10 & 1)" ( (binary_expression "bVar10 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }" { (labeled_statement "code_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;" statement_identifier : (expression_statement "*(uint *)((int)ppiVar13 + -4) = uVar6;" (assignment_expression "*(uint *)((int)ppiVar13 + -4) = uVar6" (pointer_expression "*(uint *)((int)ppiVar13 + -4)" * (cast_expression "(uint *)((int)ppiVar13 + -4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -4)" ( (binary_expression "(int)ppiVar13 + -4" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "*(char **)((int)ppiVar13 + -8) = "address";" (assignment_expression "*(char **)((int)ppiVar13 + -8) = "address"" (pointer_expression "*(char **)((int)ppiVar13 + -8)" * (cast_expression "(char **)((int)ppiVar13 + -8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -8)" ( (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""address"" " string_content ")) ;) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0xc)" * (cast_expression "(undefined4 *)((int)ppiVar13 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppiVar13 + -0xc)" ( (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";" (assignment_expression "*(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h"" (pointer_expression "*(char **)((int)ppiVar13 + -0x10)" * (cast_expression "(char **)((int)ppiVar13 + -0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x10)" ( (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (string_literal ""../../gold/output.h"" " string_content ")) ;) (expression_statement "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x14)" * (cast_expression "(undefined **)((int)ppiVar13 + -0x14)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + -0x14)" ( (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (pointer_expression "&UNK_00351561" & identifier)) ;) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "pcVar4 = (code *)param_2[0xc] + piVar2[1];" (assignment_expression "pcVar4 = (code *)param_2[0xc] + piVar2[1]" identifier = (binary_expression "(code *)param_2[0xc] + piVar2[1]" (cast_expression "(code *)param_2[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xc]" identifier [ number_literal ])) + (subscript_expression "piVar2[1]" identifier [ number_literal ]))) ;) }))) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }" if (parenthesized_expression "((char)param_2[3] != '\0')" ( (binary_expression "(char)param_2[3] != '\0'" (cast_expression "(char)param_2[3]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_2[3]" identifier [ number_literal ])) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }" { (if_statement "if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }" if (parenthesized_expression "((bVar10 & 2) == 0)" ( (binary_expression "(bVar10 & 2) == 0" (parenthesized_expression "(bVar10 & 2)" ( (binary_expression "bVar10 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }" { (expression_statement "piStack_40 = param_2;" (assignment_expression "piStack_40 = param_2" identifier = identifier) ;) (expression_statement "FUN_002446e0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_002446e0("../../gold/output.h",0xcf,"data_size")" identifier (argument_list "("../../gold/output.h",0xcf,"data_size")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""data_size"" " string_content ") ))) ;) })) (expression_statement "pcVar4 = pcVar4 + piVar2[3];" (assignment_expression "pcVar4 = pcVar4 + piVar2[3]" identifier = (binary_expression "pcVar4 + piVar2[3]" identifier + (subscript_expression "piVar2[3]" identifier [ number_literal ]))) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) (break_statement "break;" break ;)) (case_statement "case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;" case (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) : (if_statement "if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }" if (parenthesized_expression "((bVar10 & 7) != 2)" ( (binary_expression "(bVar10 & 7) != 2" (parenthesized_expression "(bVar10 & 7)" ( (binary_expression "bVar10 & 7" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }" { (expression_statement "piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));" (assignment_expression "piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4))" identifier = (cast_expression "(int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4))" ( (binary_expression "(int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4)" (cast_expression "(int)&__DT_PLTGOT" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&__DT_PLTGOT" & identifier)) + (pointer_expression "*(int *)(&DAT_004994cc + (int)piVar2 * 4)" * (cast_expression "(int *)(&DAT_004994cc + (int)piVar2 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&DAT_004994cc + (int)piVar2 * 4)" ( (binary_expression "&DAT_004994cc + (int)piVar2 * 4" (pointer_expression "&DAT_004994cc" & identifier) + (binary_expression "(int)piVar2 * 4" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ))))) )))) ;) (expression_statement "FUN_002446e0("../../gold/symtab.h",200,"output_segment");" (call_expression "FUN_002446e0("../../gold/symtab.h",200,"output_segment")" identifier (argument_list "("../../gold/symtab.h",200,"output_segment")" ( (string_literal ""../../gold/symtab.h"" " string_content ") , number_literal , (string_literal ""output_segment"" " string_content ") ))) ;) })) (expression_statement "iVar3 = param_2[2];" (assignment_expression "iVar3 = param_2[2]" identifier = (subscript_expression "param_2[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar4 = (code *)param_2[0xc];" (assignment_expression "pcVar4 = (code *)param_2[0xc]" identifier = (cast_expression "(code *)param_2[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xc]" identifier [ number_literal ]))) ;) (if_statement "if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }" if (parenthesized_expression "((*(byte *)(param_2 + 10) & 0xf) != 6)" ( (binary_expression "(*(byte *)(param_2 + 10) & 0xf) != 6" (parenthesized_expression "(*(byte *)(param_2 + 10) & 0xf)" ( (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" * (cast_expression "(byte *)(param_2 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 10)" ( (binary_expression "param_2 + 10" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }" { (expression_statement "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);" (assignment_expression "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c)" identifier = (binary_expression "pcVar4 + *(int *)(iVar3 + 0x15c)" identifier + (pointer_expression "*(int *)(iVar3 + 0x15c)" * (cast_expression "(int *)(iVar3 + 0x15c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x15c)" ( (binary_expression "iVar3 + 0x15c" identifier + number_literal) )))))) ;) })) (expression_statement "piStack_40 = (int *)param_2[3];" (assignment_expression "piStack_40 = (int *)param_2[3]" identifier = (cast_expression "(int *)param_2[3]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[3]" identifier [ number_literal ]))) ;) (if_statement "if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }" if (parenthesized_expression "(piStack_40 == (int *)0x1)" ( (binary_expression "piStack_40 == (int *)0x1" identifier == (cast_expression "(int *)0x1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }" { (expression_statement "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);" (assignment_expression "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c)" identifier = (binary_expression "pcVar4 + *(int *)(iVar3 + 0x16c)" identifier + (pointer_expression "*(int *)(iVar3 + 0x16c)" * (cast_expression "(int *)(iVar3 + 0x16c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x16c)" ( (binary_expression "iVar3 + 0x16c" identifier + number_literal) )))))) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) }) (else_clause "else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }" else (compound_statement "{\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }" { (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (if_statement "if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }" if (parenthesized_expression "(piStack_40 != (int *)0x0)" ( (binary_expression "piStack_40 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }" { (if_statement "if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }" if (parenthesized_expression "(piStack_40 != (int *)0x2)" ( (binary_expression "piStack_40 != (int *)0x2" identifier != (cast_expression "(int *)0x2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }" { (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value")" identifier (argument_list "("../../gold/symtab.cc",0xb5c,"compute_final_value")" ( (string_literal ""../../gold/symtab.cc"" " string_content ") , number_literal , (string_literal ""compute_final_value"" " string_content ") ))) ;) })) (expression_statement "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);" (assignment_expression "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c)" identifier = (binary_expression "pcVar4 + *(int *)(iVar3 + 0x18c)" identifier + (pointer_expression "*(int *)(iVar3 + 0x18c)" * (cast_expression "(int *)(iVar3 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x18c)" ( (binary_expression "iVar3 + 0x18c" identifier + number_literal) )))))) ;) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) })) }))) (break_statement "break;" break ;)) (case_statement "case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;" case (cast_expression "(int *)0x3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) : (labeled_statement "code_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];" statement_identifier : (expression_statement "pcVar4 = (code *)param_2[0xc];" (assignment_expression "pcVar4 = (code *)param_2[0xc]" identifier = (cast_expression "(code *)param_2[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[0xc]" identifier [ number_literal ]))) ;)) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" identifier = (cast_expression "(int **)auStack_3c" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;)) })) (expression_statement "**(undefined4 **)((int)ppiVar13 + 0x48) = 0;" (assignment_expression "**(undefined4 **)((int)ppiVar13 + 0x48) = 0" (pointer_expression "**(undefined4 **)((int)ppiVar13 + 0x48)" * (pointer_expression "*(undefined4 **)((int)ppiVar13 + 0x48)" * (cast_expression "(undefined4 **)((int)ppiVar13 + 0x48)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppiVar13 + 0x48)" ( (binary_expression "(int)ppiVar13 + 0x48" (cast_expression "(int)ppiVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) = number_literal) ;) (return_statement "return pcVar4;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression IDENT . field_identifier) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT == (char_literal ' escape_sequence '))) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (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) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT ))))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) })) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) )))) == IDENT) )) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (subscript_expression IDENT [ LIT ])) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (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 ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_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 (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) )) [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + 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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) + LIT) ))))) )))) ;) }))) }))) (break_statement break ;) })) (goto_statement goto statement_identifier ;) })) }))) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (break_statement break ;)) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) ))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) }))) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) , (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) ))) + IDENT)) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) }) (else_clause else (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) + (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) })) (break_statement break ;)) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ))))) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;) })) }))) (break_statement break ;)) (case_statement case (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ;)) })) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) = LIT) ;) (return_statement return IDENT ;) })))
(function_definition "code * FUN_00351050(int param_1,int *param_2,undefined4 *param_3)\n\n{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 extraout_ECX;\n  uint uVar8;\n  byte bVar9;\n  byte bVar10;\n  code *pcVar11;\n  uint uVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  undefined8 uVar15;\n  int *piStack_40;\n  undefined1 auStack_3c [4];\n  int *piStack_38;\n  uint uStack_34;\n  int iStack_30;\n  code *pcStack_2c;\n  code *pcStack_28;\n  int *apiStack_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x351059;\n  bVar10 = *(byte *)((int)param_2 + 0x2a);\n  piVar2 = (int *)(bVar10 & 7);\n  if (4 < (byte)piVar2) {\n    piStack_40 = piVar2;\n                    \n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  switch(piVar2) {\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }\n  **(undefined4 **)((int)ppiVar13 + 0x48) = 0;\n  return pcVar4;\n}" (type_identifier "code") (pointer_declarator "* FUN_00351050(int param_1,int *param_2,undefined4 *param_3)" (* "*") (function_declarator "FUN_00351050(int param_1,int *param_2,undefined4 *param_3)" (identifier "FUN_00351050") (parameter_list "(int param_1,int *param_2,undefined4 *param_3)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")")))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  int *piVar5;\n  uint uVar6;\n  int iVar7;\n  undefined4 extraout_ECX;\n  uint uVar8;\n  byte bVar9;\n  byte bVar10;\n  code *pcVar11;\n  uint uVar12;\n  int **ppiVar13;\n  int **ppiVar14;\n  undefined8 uVar15;\n  int *piStack_40;\n  undefined1 auStack_3c [4];\n  int *piStack_38;\n  uint uStack_34;\n  int iStack_30;\n  code *pcStack_2c;\n  code *pcStack_28;\n  int *apiStack_24 [4];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x351059;\n  bVar10 = *(byte *)((int)param_2 + 0x2a);\n  piVar2 = (int *)(bVar10 & 7);\n  if (4 < (byte)piVar2) {\n    piStack_40 = piVar2;\n                    \n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }\n  switch(piVar2) {\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }\n  **(undefined4 **)((int)ppiVar13 + 0x48) = 0;\n  return pcVar4;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "byte bVar9;" (type_identifier "byte") (identifier "bVar9") (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "code *pcVar11;" (type_identifier "code") (pointer_declarator "*pcVar11" (* "*") (identifier "pcVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int **ppiVar13;" (primitive_type "int") (pointer_declarator "**ppiVar13" (* "*") (pointer_declarator "*ppiVar13" (* "*") (identifier "ppiVar13"))) (; ";")) (declaration "int **ppiVar14;" (primitive_type "int") (pointer_declarator "**ppiVar14" (* "*") (pointer_declarator "*ppiVar14" (* "*") (identifier "ppiVar14"))) (; ";")) (declaration "undefined8 uVar15;" (type_identifier "undefined8") (identifier "uVar15") (; ";")) (declaration "int *piStack_40;" (primitive_type "int") (pointer_declarator "*piStack_40" (* "*") (identifier "piStack_40")) (; ";")) (declaration "undefined1 auStack_3c [4];" (type_identifier "undefined1") (array_declarator "auStack_3c [4]" (identifier "auStack_3c") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int *piStack_38;" (primitive_type "int") (pointer_declarator "*piStack_38" (* "*") (identifier "piStack_38")) (; ";")) (declaration "uint uStack_34;" (type_identifier "uint") (identifier "uStack_34") (; ";")) (declaration "int iStack_30;" (primitive_type "int") (identifier "iStack_30") (; ";")) (declaration "code *pcStack_2c;" (type_identifier "code") (pointer_declarator "*pcStack_2c" (* "*") (identifier "pcStack_2c")) (; ";")) (declaration "code *pcStack_28;" (type_identifier "code") (pointer_declarator "*pcStack_28" (* "*") (identifier "pcStack_28")) (; ";")) (declaration "int *apiStack_24 [4];" (primitive_type "int") (pointer_declarator "*apiStack_24 [4]" (* "*") (array_declarator "apiStack_24 [4]" (identifier "apiStack_24") ([ "[") (number_literal "4") (] "]"))) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x351059;" (assignment_expression "uStack_14 = 0x351059" (identifier "uStack_14") (= "=") (number_literal "0x351059")) (; ";")) (expression_statement "bVar10 = *(byte *)((int)param_2 + 0x2a);" (assignment_expression "bVar10 = *(byte *)((int)param_2 + 0x2a)" (identifier "bVar10") (= "=") (pointer_expression "*(byte *)((int)param_2 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x2a)" (( "(") (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x2a")) () ")"))))) (; ";")) (expression_statement "piVar2 = (int *)(bVar10 & 7);" (assignment_expression "piVar2 = (int *)(bVar10 & 7)" (identifier "piVar2") (= "=") (cast_expression "(int *)(bVar10 & 7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(bVar10 & 7)" (( "(") (binary_expression "bVar10 & 7" (identifier "bVar10") (& "&") (number_literal "7")) () ")")))) (; ";")) (if_statement "if (4 < (byte)piVar2) {\n    piStack_40 = piVar2;\n                    \n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" (if "if") (parenthesized_expression "(4 < (byte)piVar2)" (( "(") (binary_expression "4 < (byte)piVar2" (number_literal "4") (< "<") (cast_expression "(byte)piVar2" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "piVar2"))) () ")")) (compound_statement "{\n    piStack_40 = piVar2;\n                    \n    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");\n  }" ({ "{") (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" (identifier "piStack_40") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value")" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.cc",0xb6a,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb6a") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";")) (} "}"))) (switch_statement "switch(piVar2) {\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }" (switch "switch") (parenthesized_expression "(piVar2)" (( "(") (identifier "piVar2") () ")")) (compound_statement "{\n  case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }\n  case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;\n  case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;\n  case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;\n  case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;\n  }" ({ "{") (case_statement "case (int *)0x0:\n    if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }\n    piVar2 = (int *)param_2[3];\n    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;\n    bVar10 = bVar9 & 1;\n    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }\n    ppiVar13 = (int **)auStack_3c;\n    pcVar4 = (code *)param_2[2];\n    if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }" (case "case") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (: ":") (if_statement "if ((bVar10 & 7) != 0) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }" (if "if") (parenthesized_expression "((bVar10 & 7) != 0)" (( "(") (binary_expression "(bVar10 & 7) != 0" (parenthesized_expression "(bVar10 & 7)" (( "(") (binary_expression "bVar10 & 7" (identifier "bVar10") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");\n    }" ({ "{") (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" (identifier "piStack_40") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xaa,"shndx")" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.h",0xaa,"shndx")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xaa") (, ",") (string_literal ""shndx"" (" """) (string_content "shndx") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)param_2[3];" (assignment_expression "piVar2 = (int *)param_2[3]" (identifier "piVar2") (= "=") (cast_expression "(int *)param_2[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;" (assignment_expression "bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5" (identifier "bVar9") (= "=") (binary_expression "*(byte *)((int)param_2 + 0x2b) >> 5" (pointer_expression "*(byte *)((int)param_2 + 0x2b)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x2b)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x2b)" (( "(") (binary_expression "(int)param_2 + 0x2b" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x2b")) () ")")))) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "bVar10 = bVar9 & 1;" (assignment_expression "bVar10 = bVar9 & 1" (identifier "bVar10") (= "=") (binary_expression "bVar9 & 1" (identifier "bVar9") (& "&") (number_literal "1"))) (; ";")) (if_statement "if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }" (if "if") (parenthesized_expression "((piVar2 != (int *)0xfff1) && (bVar10 == 0))" (( "(") (binary_expression "(piVar2 != (int *)0xfff1) && (bVar10 == 0)" (parenthesized_expression "(piVar2 != (int *)0xfff1)" (( "(") (binary_expression "piVar2 != (int *)0xfff1" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0xfff1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfff1"))) () ")")) (&& "&&") (parenthesized_expression "(bVar10 == 0)" (( "(") (binary_expression "bVar10 == 0" (identifier "bVar10") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);\n      piVar5 = (int *)FUN_0034c920(piVar2);\n      if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }\n      bVar10 = (byte)pcStack_2c;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }\n    }" ({ "{") (expression_statement "pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);" (assignment_expression "pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01)" (identifier "pcStack_2c") (= "=") (cast_expression "(code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01)" (( "(") (binary_expression "CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01" (call_expression "CONCAT31(pcStack_2c._1_3_,bVar9)" (identifier "CONCAT31") (argument_list "(pcStack_2c._1_3_,bVar9)" (( "(") (field_expression "pcStack_2c._1_3_" (identifier "pcStack_2c") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar9") () ")"))) (& "&") (number_literal "0xffffff01")) () ")")))) (; ";")) (expression_statement "piVar5 = (int *)FUN_0034c920(piVar2);" (assignment_expression "piVar5 = (int *)FUN_0034c920(piVar2)" (identifier "piVar5") (= "=") (cast_expression "(int *)FUN_0034c920(piVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0034c920(piVar2)" (identifier "FUN_0034c920") (argument_list "(piVar2)" (( "(") (identifier "piVar2") () ")"))))) (; ";")) (if_statement "if ((char)piVar5 == '\0') {\n        *param_3 = 1;\n        return (code *)0x0;\n      }" (if "if") (parenthesized_expression "((char)piVar5 == '\0')" (( "(") (binary_expression "(char)piVar5 == '\0'" (cast_expression "(char)piVar5" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "piVar5")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        *param_3 = 1;\n        return (code *)0x0;\n      }" ({ "{") (expression_statement "*param_3 = 1;" (assignment_expression "*param_3 = 1" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "1")) (; ";")) (return_statement "return (code *)0x0;" (return "return") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (expression_statement "bVar10 = (byte)pcStack_2c;" (assignment_expression "bVar10 = (byte)pcStack_2c" (identifier "bVar10") (= "=") (cast_expression "(byte)pcStack_2c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "pcStack_2c"))) (; ";")) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 7) != 0)" (( "(") (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 7) != 0" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_2 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x2a)" (( "(") (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xa1,"object");\n      }" ({ "{") (expression_statement "piStack_40 = piVar5;" (assignment_expression "piStack_40 = piVar5" (identifier "piStack_40") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "FUN_002446e0("../../gold/symtab.h",0xa1,"object");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xa1,"object")" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.h",0xa1,"object")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xa1") (, ",") (string_literal ""object"" (" """) (string_content "object") (" """)) () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" (identifier "ppiVar13") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";")) (expression_statement "pcVar4 = (code *)param_2[2];" (assignment_expression "pcVar4 = (code *)param_2[2]" (identifier "pcVar4") (= "=") (cast_expression "(code *)param_2[2]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")))) (; ";")) (if_statement "if (((byte)pcVar4[0x2c] & 1) == 0) {\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }" (if "if") (parenthesized_expression "(((byte)pcVar4[0x2c] & 1) == 0)" (( "(") (binary_expression "((byte)pcVar4[0x2c] & 1) == 0" (parenthesized_expression "((byte)pcVar4[0x2c] & 1)" (( "(") (binary_expression "(byte)pcVar4[0x2c] & 1" (cast_expression "(byte)pcVar4[0x2c]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar4[0x2c]" (identifier "pcVar4") ([ "[") (number_literal "0x2c") (] "]"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);\n      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);\n      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }\n    }" ({ "{") (expression_statement "pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);" (assignment_expression "pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10)" (identifier "pcStack_2c") (= "=") (cast_expression "(code *)CONCAT31(pcStack_2c._1_3_,bVar10)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(pcStack_2c._1_3_,bVar10)" (identifier "CONCAT31") (argument_list "(pcStack_2c._1_3_,bVar10)" (( "(") (field_expression "pcStack_2c._1_3_" (identifier "pcStack_2c") (. ".") (field_identifier "_1_3_")) (, ",") (identifier "bVar10") () ")"))))) (; ";")) (expression_statement "iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);" (assignment_expression "iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(*(int *)pcVar4 + 0x14))(pcVar4)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x14))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar4 + 0x14)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar4 + 0x14)" (* "*") (cast_expression "(code **)(*(int *)pcVar4 + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar4 + 0x14)" (( "(") (binary_expression "*(int *)pcVar4 + 0x14" (pointer_expression "*(int *)pcVar4" (* "*") (cast_expression "(int *)pcVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar4"))) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(pcVar4)" (( "(") (identifier "pcVar4") () ")")))) (; ";")) (if_statement "if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }" (if "if") (parenthesized_expression "((iVar3 == 0) && (piVar2 != (int *)0x0))" (( "(") (binary_expression "(iVar3 == 0) && (piVar2 != (int *)0x0)" (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n        if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }\n        goto code_r0x003510f8;\n      }" ({ "{") (if_statement "if (((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }" (if "if") (parenthesized_expression "(((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0'))))" (( "(") (binary_expression "((byte)pcStack_2c != '\0') ||\n           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))" (parenthesized_expression "((byte)pcStack_2c != '\0')" (( "(") (binary_expression "(byte)pcStack_2c != '\0'" (cast_expression "(byte)pcStack_2c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "pcStack_2c")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))" (( "(") (parenthesized_expression "(piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0'))" (( "(") (binary_expression "piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')" (binary_expression "piVar2 != (int *)0xfff1" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0xfff1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xfff1"))) (&& "&&") (parenthesized_expression "(cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')" (( "(") (comma_expression "cVar1 = FUN_0034c920(piVar2), cVar1 == '\0'" (assignment_expression "cVar1 = FUN_0034c920(piVar2)" (identifier "cVar1") (= "=") (call_expression "FUN_0034c920(piVar2)" (identifier "FUN_0034c920") (argument_list "(piVar2)" (( "(") (identifier "piVar2") () ")")))) (, ",") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          pcStack_28 = FUN_00071550;\n          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }\n          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);\n          if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }\n          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);\n          uVar8 = (uint)uVar15;\n          uVar6 = uVar12 & uVar8;\n          if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }\n          break;\n        }" ({ "{") (expression_statement "pcStack_28 = FUN_00071550;" (assignment_expression "pcStack_28 = FUN_00071550" (identifier "pcStack_28") (= "=") (identifier "FUN_00071550")) (; ";")) (if_statement "if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }\n          else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }" (if "if") (parenthesized_expression "(*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550)" (( "(") (binary_expression "*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550" (pointer_expression "*(code **)(*(int *)pcVar4 + 0x60)" (* "*") (cast_expression "(code **)(*(int *)pcVar4 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar4 + 0x60)" (( "(") (binary_expression "*(int *)pcVar4 + 0x60" (pointer_expression "*(int *)pcVar4" (* "*") (cast_expression "(int *)pcVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar4"))) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (identifier "FUN_00071550")) () ")")) (compound_statement "{\n            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);\n            ppiVar14 = (int **)auStack_3c;\n            if (piVar5 <= piVar2) goto code_r0x003515fc;\n            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);\n          }" ({ "{") (expression_statement "piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);" (assignment_expression "piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2)" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2)" (( "(") (binary_expression "*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2" (binary_expression "*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38)" (pointer_expression "*(int *)(pcVar4 + 0x3c)" (* "*") (cast_expression "(int *)(pcVar4 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x3c)" (( "(") (binary_expression "pcVar4 + 0x3c" (identifier "pcVar4") (+ "+") (number_literal "0x3c")) () ")")))) (- "-") (pointer_expression "*(int *)(pcVar4 + 0x38)" (* "*") (cast_expression "(int *)(pcVar4 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x38)" (( "(") (binary_expression "pcVar4 + 0x38" (identifier "pcVar4") (+ "+") (number_literal "0x38")) () ")"))))) (>> ">>") (number_literal "2")) () ")")))) (; ";")) (expression_statement "ppiVar14 = (int **)auStack_3c;" (assignment_expression "ppiVar14 = (int **)auStack_3c" (identifier "ppiVar14") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";")) (if_statement "if (piVar5 <= piVar2) goto code_r0x003515fc;" (if "if") (parenthesized_expression "(piVar5 <= piVar2)" (( "(") (binary_expression "piVar5 <= piVar2" (identifier "piVar5") (<= "<=") (identifier "piVar2")) () ")")) (goto_statement "goto code_r0x003515fc;" (goto "goto") (statement_identifier "code_r0x003515fc") (; ";"))) (expression_statement "pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);" (assignment_expression "pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" (identifier "pcStack_2c") (= "=") (pointer_expression "*(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" (* "*") (cast_expression "(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4)" (( "(") (binary_expression "*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4" (pointer_expression "*(int *)(pcVar4 + 0x38)" (* "*") (cast_expression "(int *)(pcVar4 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 0x38)" (( "(") (binary_expression "pcVar4 + 0x38" (identifier "pcVar4") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (binary_expression "(int)piVar2 * 4" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }" (else "else") (compound_statement "{\n            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);\n          }" ({ "{") (expression_statement "pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);" (assignment_expression "pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2)" (identifier "pcStack_2c") (= "=") (cast_expression "(code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x60))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar4 + 0x60)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar4 + 0x60)" (* "*") (cast_expression "(code **)(*(int *)pcVar4 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar4 + 0x60)" (( "(") (binary_expression "*(int *)pcVar4 + 0x60" (pointer_expression "*(int *)pcVar4" (* "*") (cast_expression "(int *)pcVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar4"))) (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(pcVar4,piVar2)" (( "(") (identifier "pcVar4") (, ",") (identifier "piVar2") () ")"))))) (; ";")) (} "}")))) (expression_statement "cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);" (assignment_expression "cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2)" (identifier "cVar1") (= "=") (call_expression "FUN_0034cd20(param_1,pcVar4,piVar2)" (identifier "FUN_0034cd20") (argument_list "(param_1,pcVar4,piVar2)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar4") (, ",") (identifier "piVar2") () ")")))) (; ";")) (if_statement "if (cVar1 == '\0') {\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }\n          else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }" (if "if") (parenthesized_expression "(cVar1 == '\0')" (( "(") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);\n            if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }\n          }" ({ "{") (expression_statement "uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);" (assignment_expression "uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2)" (identifier "uVar15") (= "=") (call_expression "(**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2)" (parenthesized_expression "(**(code **)(*(int *)pcVar4 + 0x68))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar4 + 0x68)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar4 + 0x68)" (* "*") (cast_expression "(code **)(*(int *)pcVar4 + 0x68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar4 + 0x68)" (( "(") (binary_expression "*(int *)pcVar4 + 0x68" (pointer_expression "*(int *)pcVar4" (* "*") (cast_expression "(int *)pcVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar4"))) (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (argument_list "(pcVar4,piVar2)" (( "(") (identifier "pcVar4") (, ",") (identifier "piVar2") () ")")))) (; ";")) (if_statement "if (pcStack_2c == (code *)0x0) {\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }" (if "if") (parenthesized_expression "(pcStack_2c == (code *)0x0)" (( "(") (binary_expression "pcStack_2c == (code *)0x0" (identifier "pcStack_2c") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }\n              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }\n              *param_3 = 2;\n              return (code *)0x0;\n            }" ({ "{") (if_statement "if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }" (if "if") (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x10) == '\0')" (( "(") (binary_expression "*(char *)(DAT_005ea7c8 + 0x10) == '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x10)" (* "*") (cast_expression "(char *)(DAT_005ea7c8 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 0x10)" (( "(") (binary_expression "DAT_005ea7c8 + 0x10" (identifier "DAT_005ea7c8") (+ "+") (number_literal "0x10")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                piStack_40 = (int *)&UNK_003515fc;\n                piVar5 = (int *)FUN_0034c490();\n                ppiVar14 = (int **)auStack_3c;\n                goto code_r0x003515fc;\n              }" ({ "{") (expression_statement "piStack_40 = (int *)&UNK_003515fc;" (assignment_expression "piStack_40 = (int *)&UNK_003515fc" (identifier "piStack_40") (= "=") (cast_expression "(int *)&UNK_003515fc" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&UNK_003515fc" (& "&") (identifier "UNK_003515fc")))) (; ";")) (expression_statement "piVar5 = (int *)FUN_0034c490();" (assignment_expression "piVar5 = (int *)FUN_0034c490()" (identifier "piVar5") (= "=") (cast_expression "(int *)FUN_0034c490()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0034c490()" (identifier "FUN_0034c490") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "ppiVar14 = (int **)auStack_3c;" (assignment_expression "ppiVar14 = (int **)auStack_3c" (identifier "ppiVar14") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";")) (goto_statement "goto code_r0x003515fc;" (goto "goto") (statement_identifier "code_r0x003515fc") (; ";")) (} "}"))) (if_statement "if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(*(char *)(DAT_005ea7c8 + 0x11) == '\0')" (( "(") (binary_expression "*(char *)(DAT_005ea7c8 + 0x11) == '\0'" (pointer_expression "*(char *)(DAT_005ea7c8 + 0x11)" (* "*") (cast_expression "(char *)(DAT_005ea7c8 + 0x11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 0x11)" (( "(") (binary_expression "DAT_005ea7c8 + 0x11" (identifier "DAT_005ea7c8") (+ "+") (number_literal "0x11")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                piStack_40 = *(int **)(DAT_005ea7c8 + 8);\n                if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }\n                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }\n              }" ({ "{") (expression_statement "piStack_40 = *(int **)(DAT_005ea7c8 + 8);" (assignment_expression "piStack_40 = *(int **)(DAT_005ea7c8 + 8)" (identifier "piStack_40") (= "=") (pointer_expression "*(int **)(DAT_005ea7c8 + 8)" (* "*") (cast_expression "(int **)(DAT_005ea7c8 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(DAT_005ea7c8 + 8)" (( "(") (binary_expression "DAT_005ea7c8 + 8" (identifier "DAT_005ea7c8") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if (piStack_40 == (int *)0x0) {\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }" (if "if") (parenthesized_expression "(piStack_40 == (int *)0x0)" (( "(") (binary_expression "piStack_40 == (int *)0x0" (identifier "piStack_40") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\ncode_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");\n                }" ({ "{") (labeled_statement "code_r0x0035164c:\n                    \n                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (statement_identifier "code_r0x0035164c") (: ":") (expression_statement "FUN_002446e0("../../gold/parameters.h",0x5c,"options");" (call_expression "FUN_002446e0("../../gold/parameters.h",0x5c,"options")" (identifier "FUN_002446e0") (argument_list "("../../gold/parameters.h",0x5c,"options")" (( "(") (string_literal ""../../gold/parameters.h"" (" """) (string_content "../../gold/parameters.h") (" """)) (, ",") (number_literal "0x5c") (, ",") (string_literal ""options"" (" """) (string_content "options") (" """)) () ")"))) (; ";"))) (} "}"))) (if_statement "if (*(char *)((int)piStack_40 + 0x318d) == '\0') {\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }" (if "if") (parenthesized_expression "(*(char *)((int)piStack_40 + 0x318d) == '\0')" (( "(") (binary_expression "*(char *)((int)piStack_40 + 0x318d) == '\0'" (pointer_expression "*(char *)((int)piStack_40 + 0x318d)" (* "*") (cast_expression "(char *)((int)piStack_40 + 0x318d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piStack_40 + 0x318d)" (( "(") (binary_expression "(int)piStack_40 + 0x318d" (cast_expression "(int)piStack_40" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piStack_40")) (+ "+") (number_literal "0x318d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                  piStack_40 = (int *)param_2[5];\n                  if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }\n                  if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }\n                }" ({ "{") (expression_statement "piStack_40 = (int *)param_2[5];" (assignment_expression "piStack_40 = (int *)param_2[5]" (identifier "piStack_40") (= "=") (cast_expression "(int *)param_2[5]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[5]" (identifier "param_2") ([ "[") (number_literal "5") (] "]")))) (; ";")) (if_statement "if (piStack_40 == (int *)0x0) {\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }" (if "if") (parenthesized_expression "(piStack_40 == (int *)0x0)" (( "(") (binary_expression "piStack_40 == (int *)0x0" (identifier "piStack_40") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    piStack_40 = (int *)&UNK_0035164c;\n                    piStack_40 = (int *)FUN_0034c4c0();\n                    goto code_r0x0035164c;\n                  }" ({ "{") (expression_statement "piStack_40 = (int *)&UNK_0035164c;" (assignment_expression "piStack_40 = (int *)&UNK_0035164c" (identifier "piStack_40") (= "=") (cast_expression "(int *)&UNK_0035164c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&UNK_0035164c" (& "&") (identifier "UNK_0035164c")))) (; ";")) (expression_statement "piStack_40 = (int *)FUN_0034c4c0();" (assignment_expression "piStack_40 = (int *)FUN_0034c4c0()" (identifier "piStack_40") (= "=") (cast_expression "(int *)FUN_0034c4c0()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0034c4c0()" (identifier "FUN_0034c4c0") (argument_list "()" (( "(") () ")"))))) (; ";")) (goto_statement "goto code_r0x0035164c;" (goto "goto") (statement_identifier "code_r0x0035164c") (; ";")) (} "}"))) (if_statement "if (piStack_40 != (int *)0xffffffff) {\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }" (if "if") (parenthesized_expression "(piStack_40 != (int *)0xffffffff)" (( "(") (binary_expression "piStack_40 != (int *)0xffffffff" (identifier "piStack_40") (!= "!=") (cast_expression "(int *)0xffffffff" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) () ")")) (compound_statement "{\n                    \n                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");\n                  }" ({ "{") (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value")" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.cc",0xb21,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb21") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "*param_3 = 2;" (assignment_expression "*param_3 = 2" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (number_literal "2")) (; ";")) (return_statement "return (code *)0x0;" (return "return") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }" (else "else") (compound_statement "{\n            if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }\n            piStack_40 = piVar2;\n            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);\n            pcVar4 = pcStack_28;\n            piStack_38 = apiStack_24[0];\n            if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }\n            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }\n            ppiVar13 = &piStack_40;\n            if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }\n            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);\n            piVar2 = apiStack_24[0];\n          }" ({ "{") (if_statement "if (pcStack_2c != (code *)0x0) {\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }" (if "if") (parenthesized_expression "(pcStack_2c != (code *)0x0)" (( "(") (binary_expression "pcStack_2c != (code *)0x0" (identifier "pcStack_2c") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              piStack_40 = param_2;\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");\n            }" ({ "{") (expression_statement "piStack_40 = param_2;" (assignment_expression "piStack_40 = param_2" (identifier "piStack_40") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value")" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.cc",0xb0c,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb0c") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" (identifier "piStack_40") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);" (call_expression "FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4)" (identifier "FUN_00247be0") (argument_list "(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4)" (( "(") (identifier "apiStack_24") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x15c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x15c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x15c)" (( "(") (binary_expression "param_1 + 0x15c" (identifier "param_1") (+ "+") (number_literal "0x15c")) () ")")))) (, ",") (identifier "pcVar4") () ")"))) (; ";")) (expression_statement "pcVar4 = pcStack_28;" (assignment_expression "pcVar4 = pcStack_28" (identifier "pcVar4") (= "=") (identifier "pcStack_28")) (; ";")) (expression_statement "piStack_38 = apiStack_24[0];" (assignment_expression "piStack_38 = apiStack_24[0]" (identifier "piStack_38") (= "=") (subscript_expression "apiStack_24[0]" (identifier "apiStack_24") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (pcStack_28 == (code *)0x0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }" (if "if") (parenthesized_expression "(pcStack_28 == (code *)0x0)" (( "(") (binary_expression "pcStack_28 == (code *)0x0" (identifier "pcStack_28") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);\n            }" ({ "{") (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX)" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX)" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb10") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }\n            else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }" (if "if") (parenthesized_expression "(*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c)" (( "(") (binary_expression "*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c" (pointer_expression "*(code **)(*(int *)pcStack_28 + 0x60)" (* "*") (cast_expression "(code **)(*(int *)pcStack_28 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcStack_28 + 0x60)" (( "(") (binary_expression "*(int *)pcStack_28 + 0x60" (pointer_expression "*(int *)pcStack_28" (* "*") (cast_expression "(int *)pcStack_28" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcStack_28"))) (+ "+") (number_literal "0x60")) () ")")))) (== "==") (identifier "pcStack_2c")) () ")")) (compound_statement "{\n              iStack_30 = *(int *)(pcStack_28 + 0x38);\n              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);\n              ppiVar14 = &piStack_40;\n              if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }\n              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);\n              pcVar11 = pcStack_28;\n            }" ({ "{") (expression_statement "iStack_30 = *(int *)(pcStack_28 + 0x38);" (assignment_expression "iStack_30 = *(int *)(pcStack_28 + 0x38)" (identifier "iStack_30") (= "=") (pointer_expression "*(int *)(pcStack_28 + 0x38)" (* "*") (cast_expression "(int *)(pcStack_28 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_28 + 0x38)" (( "(") (binary_expression "pcStack_28 + 0x38" (identifier "pcStack_28") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);" (assignment_expression "piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2)" (identifier "piVar5") (= "=") (cast_expression "(int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2)" (( "(") (binary_expression "*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2" (binary_expression "*(int *)(pcStack_28 + 0x3c) - iStack_30" (pointer_expression "*(int *)(pcStack_28 + 0x3c)" (* "*") (cast_expression "(int *)(pcStack_28 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_28 + 0x3c)" (( "(") (binary_expression "pcStack_28 + 0x3c" (identifier "pcStack_28") (+ "+") (number_literal "0x3c")) () ")")))) (- "-") (identifier "iStack_30")) (>> ">>") (number_literal "2")) () ")")))) (; ";")) (expression_statement "ppiVar14 = &piStack_40;" (assignment_expression "ppiVar14 = &piStack_40" (identifier "ppiVar14") (= "=") (pointer_expression "&piStack_40" (& "&") (identifier "piStack_40"))) (; ";")) (if_statement "if (piVar5 <= apiStack_24[0]) {\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }" (if "if") (parenthesized_expression "(piVar5 <= apiStack_24[0])" (( "(") (binary_expression "piVar5 <= apiStack_24[0]" (identifier "piVar5") (<= "<=") (subscript_expression "apiStack_24[0]" (identifier "apiStack_24") ([ "[") (number_literal "0") (] "]"))) () ")")) (compound_statement "{\ncode_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;\n                *(char **)((int)ppiVar14 + -8) = "do_output_section";\n                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;\n                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";\n                    \n                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;\n                FUN_002446e0();\n              }" ({ "{") (labeled_statement "code_r0x003515fc:\n                *(int **)((int)ppiVar14 + -4) = piVar5;" (statement_identifier "code_r0x003515fc") (: ":") (expression_statement "*(int **)((int)ppiVar14 + -4) = piVar5;" (assignment_expression "*(int **)((int)ppiVar14 + -4) = piVar5" (pointer_expression "*(int **)((int)ppiVar14 + -4)" (* "*") (cast_expression "(int **)((int)ppiVar14 + -4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar14 + -4)" (( "(") (binary_expression "(int)ppiVar14 + -4" (cast_expression "(int)ppiVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar14")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "piVar5")) (; ";"))) (expression_statement "*(char **)((int)ppiVar14 + -8) = "do_output_section";" (assignment_expression "*(char **)((int)ppiVar14 + -8) = "do_output_section"" (pointer_expression "*(char **)((int)ppiVar14 + -8)" (* "*") (cast_expression "(char **)((int)ppiVar14 + -8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar14 + -8)" (( "(") (binary_expression "(int)ppiVar14 + -8" (cast_expression "(int)ppiVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar14")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (string_literal ""do_output_section"" (" """) (string_content "do_output_section") (" """))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;" (assignment_expression "*(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8" (pointer_expression "*(undefined4 *)((int)ppiVar14 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar14 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar14 + -0xc)" (( "(") (binary_expression "(int)ppiVar14 + -0xc" (cast_expression "(int)ppiVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar14")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x5c8")) (; ";")) (expression_statement "*(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";" (assignment_expression "*(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h"" (pointer_expression "*(char **)((int)ppiVar14 + -0x10)" (* "*") (cast_expression "(char **)((int)ppiVar14 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar14 + -0x10)" (( "(") (binary_expression "(int)ppiVar14 + -0x10" (cast_expression "(int)ppiVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar14")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (string_literal ""../../gold/object.h"" (" """) (string_content "../../gold/object.h") (" """))) (; ";")) (expression_statement "*(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;" (assignment_expression "*(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615" (pointer_expression "*(undefined **)((int)ppiVar14 + -0x14)" (* "*") (cast_expression "(undefined **)((int)ppiVar14 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar14 + -0x14)" (( "(") (binary_expression "(int)ppiVar14 + -0x14" (cast_expression "(int)ppiVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar14")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_00351615" (& "&") (identifier "UNK_00351615"))) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);" (assignment_expression "iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4)" (identifier "iStack_30") (= "=") (pointer_expression "*(int *)(iStack_30 + (int)apiStack_24[0] * 4)" (* "*") (cast_expression "(int *)(iStack_30 + (int)apiStack_24[0] * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iStack_30 + (int)apiStack_24[0] * 4)" (( "(") (binary_expression "iStack_30 + (int)apiStack_24[0] * 4" (identifier "iStack_30") (+ "+") (binary_expression "(int)apiStack_24[0] * 4" (cast_expression "(int)apiStack_24[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "apiStack_24[0]" (identifier "apiStack_24") ([ "[") (number_literal "0") (] "]"))) (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "pcVar11 = pcStack_28;" (assignment_expression "pcVar11 = pcStack_28" (identifier "pcVar11") (= "=") (identifier "pcStack_28")) (; ";")) (} "}")) (else_clause "else {\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }" (else "else") (compound_statement "{\n              pcStack_2c = pcStack_28;\n              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);\n              pcVar11 = pcStack_2c;\n            }" ({ "{") (expression_statement "pcStack_2c = pcStack_28;" (assignment_expression "pcStack_2c = pcStack_28" (identifier "pcStack_2c") (= "=") (identifier "pcStack_28")) (; ";")) (expression_statement "iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);" (assignment_expression "iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28)" (identifier "iStack_30") (= "=") (call_expression "(**(code **)(*(int *)pcStack_28 + 0x60))\n                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28)" (parenthesized_expression "(**(code **)(*(int *)pcStack_28 + 0x60))" (( "(") (pointer_expression "**(code **)(*(int *)pcStack_28 + 0x60)" (* "*") (pointer_expression "*(code **)(*(int *)pcStack_28 + 0x60)" (* "*") (cast_expression "(code **)(*(int *)pcStack_28 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcStack_28 + 0x60)" (( "(") (binary_expression "*(int *)pcStack_28 + 0x60" (pointer_expression "*(int *)pcStack_28" (* "*") (cast_expression "(int *)pcStack_28" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcStack_28"))) (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(pcStack_28,apiStack_24[0],pcStack_28,pcStack_28)" (( "(") (identifier "pcStack_28") (, ",") (subscript_expression "apiStack_24[0]" (identifier "apiStack_24") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "pcStack_28") (, ",") (identifier "pcStack_28") () ")")))) (; ";")) (expression_statement "pcVar11 = pcStack_2c;" (assignment_expression "pcVar11 = pcStack_2c" (identifier "pcVar11") (= "=") (identifier "pcStack_2c")) (; ";")) (} "}")))) (expression_statement "ppiVar13 = &piStack_40;" (assignment_expression "ppiVar13 = &piStack_40" (identifier "ppiVar13") (= "=") (pointer_expression "&piStack_40" (& "&") (identifier "piStack_40"))) (; ";")) (if_statement "if (iStack_30 == 0) {\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }" (if "if") (parenthesized_expression "(iStack_30 == 0)" (( "(") (binary_expression "iStack_30 == 0" (identifier "iStack_30") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);\n            }" ({ "{") (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11)" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11)" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb15") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) (, ",") (identifier "pcVar11") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);" (assignment_expression "uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38)" (identifier "uVar15") (= "=") (call_expression "(**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38)" (parenthesized_expression "(**(code **)(*(int *)pcVar11 + 0x68))" (( "(") (pointer_expression "**(code **)(*(int *)pcVar11 + 0x68)" (* "*") (pointer_expression "*(code **)(*(int *)pcVar11 + 0x68)" (* "*") (cast_expression "(code **)(*(int *)pcVar11 + 0x68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)pcVar11 + 0x68)" (( "(") (binary_expression "*(int *)pcVar11 + 0x68" (pointer_expression "*(int *)pcVar11" (* "*") (cast_expression "(int *)pcVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar11"))) (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (argument_list "(pcVar11,piStack_38)" (( "(") (identifier "pcVar11") (, ",") (identifier "piStack_38") () ")")))) (; ";")) (expression_statement "piVar2 = apiStack_24[0];" (assignment_expression "piVar2 = apiStack_24[0]" (identifier "piVar2") (= "=") (subscript_expression "apiStack_24[0]" (identifier "apiStack_24") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")))) (expression_statement "uVar12 = (uint)((ulonglong)uVar15 >> 0x20);" (assignment_expression "uVar12 = (uint)((ulonglong)uVar15 >> 0x20)" (identifier "uVar12") (= "=") (call_expression "(uint)((ulonglong)uVar15 >> 0x20)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ulonglong)uVar15 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar15 >> 0x20" (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar8 = (uint)uVar15;" (assignment_expression "uVar8 = (uint)uVar15" (identifier "uVar8") (= "=") (cast_expression "(uint)uVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar15"))) (; ";")) (expression_statement "uVar6 = uVar12 & uVar8;" (assignment_expression "uVar6 = uVar12 & uVar8" (identifier "uVar6") (= "=") (binary_expression "uVar12 & uVar8" (identifier "uVar12") (& "&") (identifier "uVar8"))) (; ";")) (if_statement "if (uVar6 == 0xffffffff) {\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }\n          else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }" (if "if") (parenthesized_expression "(uVar6 == 0xffffffff)" (( "(") (binary_expression "uVar6 == 0xffffffff" (identifier "uVar6") (== "==") (number_literal "0xffffffff")) () ")")) (compound_statement "{\n            iVar3 = param_2[0xc];\n            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;\n            *(int *)((int)ppiVar13 + -0x14) = iVar3;\n            *(int **)((int)ppiVar13 + -0x18) = piVar2;\n            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;\n            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);\n            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;\n            pcVar4 = (code *)FUN_002cdbd0();\n          }" ({ "{") (expression_statement "iVar3 = param_2[0xc];" (assignment_expression "iVar3 = param_2[0xc]" (identifier "iVar3") (= "=") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = 0;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = 0" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x10)" (( "(") (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(int *)((int)ppiVar13 + -0x14) = iVar3;" (assignment_expression "*(int *)((int)ppiVar13 + -0x14) = iVar3" (pointer_expression "*(int *)((int)ppiVar13 + -0x14)" (* "*") (cast_expression "(int *)((int)ppiVar13 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x14)" (( "(") (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "*(int **)((int)ppiVar13 + -0x18) = piVar2;" (assignment_expression "*(int **)((int)ppiVar13 + -0x18) = piVar2" (pointer_expression "*(int **)((int)ppiVar13 + -0x18)" (* "*") (cast_expression "(int **)((int)ppiVar13 + -0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x18)" (( "(") (binary_expression "(int)ppiVar13 + -0x18" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "piVar2")) (; ";")) (expression_statement "*(code **)((int)ppiVar13 + -0x1c) = pcVar4;" (assignment_expression "*(code **)((int)ppiVar13 + -0x1c) = pcVar4" (pointer_expression "*(code **)((int)ppiVar13 + -0x1c)" (* "*") (cast_expression "(code **)((int)ppiVar13 + -0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x1c)" (( "(") (binary_expression "(int)ppiVar13 + -0x1c" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "pcVar4")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x20)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x20)" (( "(") (binary_expression "(int)ppiVar13 + -0x20" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x20")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x10)" (( "(") (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x24)" (* "*") (cast_expression "(undefined **)((int)ppiVar13 + -0x24)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x24)" (( "(") (binary_expression "(int)ppiVar13 + -0x24" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x24")) () ")")))) (= "=") (pointer_expression "&UNK_003514ac" (& "&") (identifier "UNK_003514ac"))) (; ";")) (expression_statement "pcVar4 = (code *)FUN_002cdbd0();" (assignment_expression "pcVar4 = (code *)FUN_002cdbd0()" (identifier "pcVar4") (= "=") (cast_expression "(code *)FUN_002cdbd0()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_002cdbd0()" (identifier "FUN_002cdbd0") (argument_list "()" (( "(") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }" (else "else") (compound_statement "{\n            if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }\n            iVar3 = param_2[0xc];\n            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }\n          }" ({ "{") (if_statement "if (uVar12 != 0) {\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              *(uint *)((int)ppiVar13 + -4) = uVar6;\n              *(char **)((int)ppiVar13 + -8) = "convert_types";\n              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;\n              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";\n                    \n              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;\n              FUN_002446e0();\n            }" ({ "{") (expression_statement "*(uint *)((int)ppiVar13 + -4) = uVar6;" (assignment_expression "*(uint *)((int)ppiVar13 + -4) = uVar6" (pointer_expression "*(uint *)((int)ppiVar13 + -4)" (* "*") (cast_expression "(uint *)((int)ppiVar13 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -4)" (( "(") (binary_expression "(int)ppiVar13 + -4" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "*(char **)((int)ppiVar13 + -8) = "convert_types";" (assignment_expression "*(char **)((int)ppiVar13 + -8) = "convert_types"" (pointer_expression "*(char **)((int)ppiVar13 + -8)" (* "*") (cast_expression "(char **)((int)ppiVar13 + -8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + -8)" (( "(") (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (string_literal ""convert_types"" (" """) (string_content "convert_types") (" """))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0xc)" (( "(") (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc0")) (; ";")) (expression_statement "*(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";" (assignment_expression "*(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h"" (pointer_expression "*(char **)((int)ppiVar13 + -0x10)" (* "*") (cast_expression "(char **)((int)ppiVar13 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x10)" (( "(") (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (string_literal ""../../gold/gold.h"" (" """) (string_content "../../gold/gold.h") (" """))) (; ";")) (expression_statement "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x14)" (* "*") (cast_expression "(undefined **)((int)ppiVar13 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x14)" (( "(") (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_003515de" (& "&") (identifier "UNK_003515de"))) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = param_2[0xc];" (assignment_expression "iVar3 = param_2[0xc]" (identifier "iVar3") (= "=") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]"))) (; ";")) (if_statement "if ((*(byte *)(param_2 + 10) & 0xf) == 6) {\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }\n            else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 10) & 0xf) == 6)" (( "(") (binary_expression "(*(byte *)(param_2 + 10) & 0xf) == 6" (parenthesized_expression "(*(byte *)(param_2 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" (* "*") (cast_expression "(byte *)(param_2 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (== "==") (number_literal "6")) () ")")) (compound_statement "{\n              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);\n              if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }\n              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);\n            }" ({ "{") (expression_statement "pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);" (assignment_expression "pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48)" (identifier "pcVar4") (= "=") (pointer_expression "*(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48)" (* "*") (cast_expression "(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(**(int **)((int)ppiVar13 + 0x10) + 0x48)" (( "(") (binary_expression "**(int **)((int)ppiVar13 + 0x10) + 0x48" (pointer_expression "**(int **)((int)ppiVar13 + 0x10)" (* "*") (pointer_expression "*(int **)((int)ppiVar13 + 0x10)" (* "*") (cast_expression "(int **)((int)ppiVar13 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x10)" (( "(") (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x10")) () ")"))))) (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (if_statement "if (pcVar4 == FUN_00144100) {\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }\n              else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }" (if "if") (parenthesized_expression "(pcVar4 == FUN_00144100)" (( "(") (binary_expression "pcVar4 == FUN_00144100" (identifier "pcVar4") (== "==") (identifier "FUN_00144100")) () ")")) (compound_statement "{\n                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];\n              }" ({ "{") (expression_statement "iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];" (assignment_expression "iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25]" (identifier "iVar7") (= "=") (subscript_expression "(*(int **)((int)ppiVar13 + 0x10))[0x25]" (parenthesized_expression "(*(int **)((int)ppiVar13 + 0x10))" (( "(") (pointer_expression "*(int **)((int)ppiVar13 + 0x10)" (* "*") (cast_expression "(int **)((int)ppiVar13 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x10)" (( "(") (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x10")) () ")")))) () ")")) ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }" (else "else") (compound_statement "{\n                *(uint *)((int)ppiVar13 + 8) = uVar8;\n                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);\n                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;\n                iVar7 = (*pcVar4)();\n                uVar8 = *(uint *)((int)ppiVar13 + 8);\n              }" ({ "{") (expression_statement "*(uint *)((int)ppiVar13 + 8) = uVar8;" (assignment_expression "*(uint *)((int)ppiVar13 + 8) = uVar8" (pointer_expression "*(uint *)((int)ppiVar13 + 8)" (* "*") (cast_expression "(uint *)((int)ppiVar13 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 8)" (( "(") (binary_expression "(int)ppiVar13 + 8" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10)" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x10)" (( "(") (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)((int)ppiVar13 + 0x10)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x10)" (( "(") (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x14)" (* "*") (cast_expression "(undefined **)((int)ppiVar13 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x14)" (( "(") (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_003514f4" (& "&") (identifier "UNK_003514f4"))) (; ";")) (expression_statement "iVar7 = (*pcVar4)();" (assignment_expression "iVar7 = (*pcVar4)()" (identifier "iVar7") (= "=") (call_expression "(*pcVar4)()" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar8 = *(uint *)((int)ppiVar13 + 8);" (assignment_expression "uVar8 = *(uint *)((int)ppiVar13 + 8)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)((int)ppiVar13 + 8)" (* "*") (cast_expression "(uint *)((int)ppiVar13 + 8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 8)" (( "(") (binary_expression "(int)ppiVar13 + 8" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")))) (expression_statement "pcVar4 = (code *)(iVar7 + iVar3 + uVar8);" (assignment_expression "pcVar4 = (code *)(iVar7 + iVar3 + uVar8)" (identifier "pcVar4") (= "=") (cast_expression "(code *)(iVar7 + iVar3 + uVar8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + iVar3 + uVar8)" (( "(") (binary_expression "iVar7 + iVar3 + uVar8" (binary_expression "iVar7 + iVar3" (identifier "iVar7") (+ "+") (identifier "iVar3")) (+ "+") (identifier "uVar8")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }" (else "else") (compound_statement "{\n              uVar6 = *(uint *)((int)ppiVar13 + 0x10);\n              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;\n              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));\n            }" ({ "{") (expression_statement "uVar6 = *(uint *)((int)ppiVar13 + 0x10);" (assignment_expression "uVar6 = *(uint *)((int)ppiVar13 + 0x10)" (identifier "uVar6") (= "=") (pointer_expression "*(uint *)((int)ppiVar13 + 0x10)" (* "*") (cast_expression "(uint *)((int)ppiVar13 + 0x10)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x10)" (( "(") (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;" (if "if") (parenthesized_expression "((*(byte *)(uVar6 + 0x1c) & 1) == 0)" (( "(") (binary_expression "(*(byte *)(uVar6 + 0x1c) & 1) == 0" (parenthesized_expression "(*(byte *)(uVar6 + 0x1c) & 1)" (( "(") (binary_expression "*(byte *)(uVar6 + 0x1c) & 1" (pointer_expression "*(byte *)(uVar6 + 0x1c)" (* "*") (cast_expression "(byte *)(uVar6 + 0x1c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar6 + 0x1c)" (( "(") (binary_expression "uVar6 + 0x1c" (identifier "uVar6") (+ "+") (number_literal "0x1c")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto code_r0x00351548;" (goto "goto") (statement_identifier "code_r0x00351548") (; ";"))) (expression_statement "pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));" (assignment_expression "pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4))" (identifier "pcVar4") (= "=") (cast_expression "(code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4))" (( "(") (binary_expression "iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4)" (binary_expression "iVar3 + uVar8" (identifier "iVar3") (+ "+") (identifier "uVar8")) (+ "+") (pointer_expression "*(int *)(*(int *)((int)ppiVar13 + 0x10) + 4)" (* "*") (cast_expression "(int *)(*(int *)((int)ppiVar13 + 0x10) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)((int)ppiVar13 + 0x10) + 4)" (( "(") (binary_expression "*(int *)((int)ppiVar13 + 0x10) + 4" (pointer_expression "*(int *)((int)ppiVar13 + 0x10)" (* "*") (cast_expression "(int *)((int)ppiVar13 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x10)" (( "(") (binary_expression "(int)ppiVar13 + 0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) () ")")))) (; ";")) (} "}")))) (} "}")))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (goto_statement "goto code_r0x003510f8;" (goto "goto") (statement_identifier "code_r0x003510f8") (; ";")) (} "}"))) (} "}")))) (case_statement "case (int *)0x4:\n    pcVar4 = (code *)0x0;\n    ppiVar13 = (int **)auStack_3c;\n    break;" (case "case") (cast_expression "(int *)0x4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x4")) (: ":") (expression_statement "pcVar4 = (code *)0x0;" (assignment_expression "pcVar4 = (code *)0x0" (identifier "pcVar4") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" (identifier "ppiVar13") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case (int *)0x1:\n    if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }\n    piVar2 = (int *)param_2[2];\n    pcStack_2c = (code *)param_2[0xc];\n    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }\n    ppiVar13 = (int **)auStack_3c;\n    if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }\n    break;" (case "case") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1")) (: ":") (if_statement "if ((bVar10 & 7) != 1) {\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }" (if "if") (parenthesized_expression "((bVar10 & 7) != 1)" (( "(") (binary_expression "(bVar10 & 7) != 1" (parenthesized_expression "(bVar10 & 7)" (( "(") (binary_expression "bVar10 & 7" (identifier "bVar10") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      piStack_40 = piVar2;\n                    \n      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");\n    }" ({ "{") (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" (identifier "piStack_40") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xb5,"output_data")" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.h",0xb5,"output_data")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xb5") (, ",") (string_literal ""output_data"" (" """) (string_content "output_data") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "piVar2 = (int *)param_2[2];" (assignment_expression "piVar2 = (int *)param_2[2]" (identifier "piVar2") (= "=") (cast_expression "(int *)param_2[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "pcStack_2c = (code *)param_2[0xc];" (assignment_expression "pcStack_2c = (code *)param_2[0xc]" (identifier "pcStack_2c") (= "=") (cast_expression "(code *)param_2[0xc]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (if_statement "if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }\n    else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }" (if "if") (parenthesized_expression "((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06')" (( "(") (binary_expression "(char)(*(byte *)(param_2 + 10) & 0xf) == '\x06'" (cast_expression "(char)(*(byte *)(param_2 + 10) & 0xf)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(*(byte *)(param_2 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" (* "*") (cast_expression "(byte *)(param_2 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")"))) (== "==") (char_literal "'\x06'" (' "'") (escape_sequence "\x06") (' "'"))) () ")")) (compound_statement "{\n      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);\n      if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }\n      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = uStack_34;\n      ppiVar13 = (int **)auStack_3c;\n      if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;\n      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;\n      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }\n    }" ({ "{") (expression_statement "piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);" (assignment_expression "piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2)" (identifier "piVar5") (= "=") (cast_expression "(int *)(**(code **)(*piVar2 + 0x24))(piVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(*piVar2 + 0x24))(piVar2)" (parenthesized_expression "(**(code **)(*piVar2 + 0x24))" (( "(") (pointer_expression "**(code **)(*piVar2 + 0x24)" (* "*") (pointer_expression "*(code **)(*piVar2 + 0x24)" (* "*") (cast_expression "(code **)(*piVar2 + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar2 + 0x24)" (( "(") (binary_expression "*piVar2 + 0x24" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(piVar2)" (( "(") (identifier "piVar2") () ")"))))) (; ";")) (if_statement "if (piVar5 == (int *)0x0) {\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" (if "if") (parenthesized_expression "(piVar5 == (int *)0x0)" (( "(") (binary_expression "piVar5 == (int *)0x0" (identifier "piVar5") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        piStack_40 = piVar5;\n                    \n        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");\n      }" ({ "{") (expression_statement "piStack_40 = piVar5;" (assignment_expression "piStack_40 = piVar5" (identifier "piStack_40") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value")" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.cc",0xb43,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb43") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }\n      else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }" (if "if") (parenthesized_expression "(*(code **)(*piVar5 + 0x48) == FUN_00144100)" (( "(") (binary_expression "*(code **)(*piVar5 + 0x48) == FUN_00144100" (pointer_expression "*(code **)(*piVar5 + 0x48)" (* "*") (cast_expression "(code **)(*piVar5 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x48)" (( "(") (binary_expression "*piVar5 + 0x48" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x48")) () ")")))) (== "==") (identifier "FUN_00144100")) () ")")) (compound_statement "{\n        uStack_34 = piVar5[0x25];\n        iStack_30 = piVar5[0x26];\n      }" ({ "{") (expression_statement "uStack_34 = piVar5[0x25];" (assignment_expression "uStack_34 = piVar5[0x25]" (identifier "uStack_34") (= "=") (subscript_expression "piVar5[0x25]" (identifier "piVar5") ([ "[") (number_literal "0x25") (] "]"))) (; ";")) (expression_statement "iStack_30 = piVar5[0x26];" (assignment_expression "iStack_30 = piVar5[0x26]" (identifier "iStack_30") (= "=") (subscript_expression "piVar5[0x26]" (identifier "piVar5") ([ "[") (number_literal "0x26") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }" (else "else") (compound_statement "{\n        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);\n        uStack_34 = (uint)uVar15;\n        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);\n      }" ({ "{") (expression_statement "uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);" (assignment_expression "uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5)" (identifier "uVar15") (= "=") (call_expression "(**(code **)(*piVar5 + 0x48))(piVar5)" (parenthesized_expression "(**(code **)(*piVar5 + 0x48))" (( "(") (pointer_expression "**(code **)(*piVar5 + 0x48)" (* "*") (pointer_expression "*(code **)(*piVar5 + 0x48)" (* "*") (cast_expression "(code **)(*piVar5 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar5 + 0x48)" (( "(") (binary_expression "*piVar5 + 0x48" (pointer_expression "*piVar5" (* "*") (identifier "piVar5")) (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(piVar5)" (( "(") (identifier "piVar5") () ")")))) (; ";")) (expression_statement "uStack_34 = (uint)uVar15;" (assignment_expression "uStack_34 = (uint)uVar15" (identifier "uStack_34") (= "=") (cast_expression "(uint)uVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar15"))) (; ";")) (expression_statement "iStack_30 = (int)((ulonglong)uVar15 >> 0x20);" (assignment_expression "iStack_30 = (int)((ulonglong)uVar15 >> 0x20)" (identifier "iStack_30") (= "=") (cast_expression "(int)((ulonglong)uVar15 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar15 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar15 >> 0x20" (cast_expression "(ulonglong)uVar15" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar15")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (} "}")))) (expression_statement "bVar10 = *(byte *)(piVar2 + 7);" (assignment_expression "bVar10 = *(byte *)(piVar2 + 7)" (identifier "bVar10") (= "=") (pointer_expression "*(byte *)(piVar2 + 7)" (* "*") (cast_expression "(byte *)(piVar2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2 + 7)" (( "(") (binary_expression "piVar2 + 7" (identifier "piVar2") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "uVar6 = uStack_34;" (assignment_expression "uVar6 = uStack_34" (identifier "uVar6") (= "=") (identifier "uStack_34")) (; ";")) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" (identifier "ppiVar13") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";")) (if_statement "if (((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))\n      goto code_r0x00351548;" (if "if") (parenthesized_expression "(((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))" (( "(") (binary_expression "((bVar10 & 1) == 0) ||\n         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0)" (parenthesized_expression "((bVar10 & 1) == 0)" (( "(") (binary_expression "(bVar10 & 1) == 0" (parenthesized_expression "(bVar10 & 1)" (( "(") (binary_expression "bVar10 & 1" (identifier "bVar10") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0)" (( "(") (comma_expression "uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0" (assignment_expression "uVar6 = piVar2[1]" (identifier "uVar6") (= "=") (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]"))) (, ",") (comma_expression "ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0" (assignment_expression "ppiVar13 = (int **)auStack_3c" (identifier "ppiVar13") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (, ",") (binary_expression "(*(byte *)(piVar5 + 7) & 1) == 0" (parenthesized_expression "(*(byte *)(piVar5 + 7) & 1)" (( "(") (binary_expression "*(byte *)(piVar5 + 7) & 1" (pointer_expression "*(byte *)(piVar5 + 7)" (* "*") (cast_expression "(byte *)(piVar5 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5 + 7)" (( "(") (binary_expression "piVar5 + 7" (identifier "piVar5") (+ "+") (number_literal "7")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")))) () ")"))) () ")")) (goto_statement "goto code_r0x00351548;" (goto "goto") (statement_identifier "code_r0x00351548") (; ";"))) (expression_statement "pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;" (assignment_expression "pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34" (identifier "pcVar4") (= "=") (binary_expression "pcStack_2c + (uVar6 - piVar5[1]) + uStack_34" (binary_expression "pcStack_2c + (uVar6 - piVar5[1])" (identifier "pcStack_2c") (+ "+") (parenthesized_expression "(uVar6 - piVar5[1])" (( "(") (binary_expression "uVar6 - piVar5[1]" (identifier "uVar6") (- "-") (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]"))) () ")"))) (+ "+") (identifier "uStack_34"))) (; ";")) (if_statement "if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" (if "if") (parenthesized_expression "((*(byte *)((int)param_2 + 0x2a) & 7) != 1)" (( "(") (binary_expression "(*(byte *)((int)param_2 + 0x2a) & 7) != 1" (parenthesized_expression "(*(byte *)((int)param_2 + 0x2a) & 7)" (( "(") (binary_expression "*(byte *)((int)param_2 + 0x2a) & 7" (pointer_expression "*(byte *)((int)param_2 + 0x2a)" (* "*") (cast_expression "(byte *)((int)param_2 + 0x2a)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + 0x2a)" (( "(") (binary_expression "(int)param_2 + 0x2a" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (number_literal "0x2a")) () ")")))) (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n        piStack_40 = piVar2;\n                    \n        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");\n      }" ({ "{") (expression_statement "piStack_40 = piVar2;" (assignment_expression "piStack_40 = piVar2" (identifier "piStack_40") (= "=") (identifier "piVar2")) (; ";")) (expression_statement "FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");" (call_expression "FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end")" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.h",0xbe,"offset_is_from_end")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "0xbe") (, ",") (string_literal ""offset_is_from_end"" (" """) (string_content "offset_is_from_end") (" """)) () ")"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }" (else "else") (compound_statement "{\n      bVar10 = *(byte *)(piVar2 + 7);\n      uVar6 = *(byte *)(param_2 + 10) & 0xf;\n      ppiVar13 = (int **)auStack_3c;\n      if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }\n      pcVar4 = (code *)param_2[0xc] + piVar2[1];\n    }" ({ "{") (expression_statement "bVar10 = *(byte *)(piVar2 + 7);" (assignment_expression "bVar10 = *(byte *)(piVar2 + 7)" (identifier "bVar10") (= "=") (pointer_expression "*(byte *)(piVar2 + 7)" (* "*") (cast_expression "(byte *)(piVar2 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar2 + 7)" (( "(") (binary_expression "piVar2 + 7" (identifier "piVar2") (+ "+") (number_literal "7")) () ")"))))) (; ";")) (expression_statement "uVar6 = *(byte *)(param_2 + 10) & 0xf;" (assignment_expression "uVar6 = *(byte *)(param_2 + 10) & 0xf" (identifier "uVar6") (= "=") (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" (* "*") (cast_expression "(byte *)(param_2 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf"))) (; ";")) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" (identifier "ppiVar13") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";")) (if_statement "if ((bVar10 & 1) == 0) {\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }" (if "if") (parenthesized_expression "((bVar10 & 1) == 0)" (( "(") (binary_expression "(bVar10 & 1) == 0" (parenthesized_expression "(bVar10 & 1)" (( "(") (binary_expression "bVar10 & 1" (identifier "bVar10") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\ncode_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;\n        *(char **)((int)ppiVar13 + -8) = "address";\n        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;\n        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";\n                    \n        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;\n        FUN_002446e0();\n      }" ({ "{") (labeled_statement "code_r0x00351548:\n        *(uint *)((int)ppiVar13 + -4) = uVar6;" (statement_identifier "code_r0x00351548") (: ":") (expression_statement "*(uint *)((int)ppiVar13 + -4) = uVar6;" (assignment_expression "*(uint *)((int)ppiVar13 + -4) = uVar6" (pointer_expression "*(uint *)((int)ppiVar13 + -4)" (* "*") (cast_expression "(uint *)((int)ppiVar13 + -4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -4)" (( "(") (binary_expression "(int)ppiVar13 + -4" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar6")) (; ";"))) (expression_statement "*(char **)((int)ppiVar13 + -8) = "address";" (assignment_expression "*(char **)((int)ppiVar13 + -8) = "address"" (pointer_expression "*(char **)((int)ppiVar13 + -8)" (* "*") (cast_expression "(char **)((int)ppiVar13 + -8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + -8)" (( "(") (binary_expression "(int)ppiVar13 + -8" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-8")) () ")")))) (= "=") (string_literal ""address"" (" """) (string_content "address") (" """))) (; ";")) (expression_statement "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;" (assignment_expression "*(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5" (pointer_expression "*(undefined4 *)((int)ppiVar13 + -0xc)" (* "*") (cast_expression "(undefined4 *)((int)ppiVar13 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppiVar13 + -0xc)" (( "(") (binary_expression "(int)ppiVar13 + -0xc" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0xc5")) (; ";")) (expression_statement "*(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";" (assignment_expression "*(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h"" (pointer_expression "*(char **)((int)ppiVar13 + -0x10)" (* "*") (cast_expression "(char **)((int)ppiVar13 + -0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x10)" (( "(") (binary_expression "(int)ppiVar13 + -0x10" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """))) (; ";")) (expression_statement "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;" (assignment_expression "*(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561" (pointer_expression "*(undefined **)((int)ppiVar13 + -0x14)" (* "*") (cast_expression "(undefined **)((int)ppiVar13 + -0x14)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + -0x14)" (( "(") (binary_expression "(int)ppiVar13 + -0x14" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "&UNK_00351561" (& "&") (identifier "UNK_00351561"))) (; ";")) (expression_statement "FUN_002446e0();" (call_expression "FUN_002446e0()" (identifier "FUN_002446e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar4 = (code *)param_2[0xc] + piVar2[1];" (assignment_expression "pcVar4 = (code *)param_2[0xc] + piVar2[1]" (identifier "pcVar4") (= "=") (binary_expression "(code *)param_2[0xc] + piVar2[1]" (cast_expression "(code *)param_2[0xc]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]"))) (+ "+") (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (} "}")))) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" (identifier "ppiVar13") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";")) (if_statement "if ((char)param_2[3] != '\0') {\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }" (if "if") (parenthesized_expression "((char)param_2[3] != '\0')" (( "(") (binary_expression "(char)param_2[3] != '\0'" (cast_expression "(char)param_2[3]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]"))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }\n      pcVar4 = pcVar4 + piVar2[3];\n      ppiVar13 = (int **)auStack_3c;\n    }" ({ "{") (if_statement "if ((bVar10 & 2) == 0) {\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }" (if "if") (parenthesized_expression "((bVar10 & 2) == 0)" (( "(") (binary_expression "(bVar10 & 2) == 0" (parenthesized_expression "(bVar10 & 2)" (( "(") (binary_expression "bVar10 & 2" (identifier "bVar10") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        piStack_40 = param_2;\n                    \n        FUN_002446e0("../../gold/output.h",0xcf,"data_size");\n      }" ({ "{") (expression_statement "piStack_40 = param_2;" (assignment_expression "piStack_40 = param_2" (identifier "piStack_40") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_002446e0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_002446e0("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_002446e0") (argument_list "("../../gold/output.h",0xcf,"data_size")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xcf") (, ",") (string_literal ""data_size"" (" """) (string_content "data_size") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar4 = pcVar4 + piVar2[3];" (assignment_expression "pcVar4 = pcVar4 + piVar2[3]" (identifier "pcVar4") (= "=") (binary_expression "pcVar4 + piVar2[3]" (identifier "pcVar4") (+ "+") (subscript_expression "piVar2[3]" (identifier "piVar2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" (identifier "ppiVar13") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case (int *)0x2:\n    if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }\n    iVar3 = param_2[2];\n    pcVar4 = (code *)param_2[0xc];\n    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }\n    piStack_40 = (int *)param_2[3];\n    if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }\n    break;" (case "case") (cast_expression "(int *)0x2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2")) (: ":") (if_statement "if ((bVar10 & 7) != 2) {\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }" (if "if") (parenthesized_expression "((bVar10 & 7) != 2)" (( "(") (binary_expression "(bVar10 & 7) != 2" (parenthesized_expression "(bVar10 & 7)" (( "(") (binary_expression "bVar10 & 7" (identifier "bVar10") (& "&") (number_literal "7")) () ")")) (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));\n                    \n      FUN_002446e0("../../gold/symtab.h",200,"output_segment");\n    }" ({ "{") (expression_statement "piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));" (assignment_expression "piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4))" (identifier "piStack_40") (= "=") (cast_expression "(int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4))" (( "(") (binary_expression "(int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4)" (cast_expression "(int)&__DT_PLTGOT" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (+ "+") (pointer_expression "*(int *)(&DAT_004994cc + (int)piVar2 * 4)" (* "*") (cast_expression "(int *)(&DAT_004994cc + (int)piVar2 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&DAT_004994cc + (int)piVar2 * 4)" (( "(") (binary_expression "&DAT_004994cc + (int)piVar2 * 4" (pointer_expression "&DAT_004994cc" (& "&") (identifier "DAT_004994cc")) (+ "+") (binary_expression "(int)piVar2 * 4" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (* "*") (number_literal "4"))) () ")"))))) () ")")))) (; ";")) (expression_statement "FUN_002446e0("../../gold/symtab.h",200,"output_segment");" (call_expression "FUN_002446e0("../../gold/symtab.h",200,"output_segment")" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.h",200,"output_segment")" (( "(") (string_literal ""../../gold/symtab.h"" (" """) (string_content "../../gold/symtab.h") (" """)) (, ",") (number_literal "200") (, ",") (string_literal ""output_segment"" (" """) (string_content "output_segment") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar3 = param_2[2];" (assignment_expression "iVar3 = param_2[2]" (identifier "iVar3") (= "=") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar4 = (code *)param_2[0xc];" (assignment_expression "pcVar4 = (code *)param_2[0xc]" (identifier "pcVar4") (= "=") (cast_expression "(code *)param_2[0xc]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]")))) (; ";")) (if_statement "if ((*(byte *)(param_2 + 10) & 0xf) != 6) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }" (if "if") (parenthesized_expression "((*(byte *)(param_2 + 10) & 0xf) != 6)" (( "(") (binary_expression "(*(byte *)(param_2 + 10) & 0xf) != 6" (parenthesized_expression "(*(byte *)(param_2 + 10) & 0xf)" (( "(") (binary_expression "*(byte *)(param_2 + 10) & 0xf" (pointer_expression "*(byte *)(param_2 + 10)" (* "*") (cast_expression "(byte *)(param_2 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 10)" (( "(") (binary_expression "param_2 + 10" (identifier "param_2") (+ "+") (number_literal "10")) () ")")))) (& "&") (number_literal "0xf")) () ")")) (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);\n    }" ({ "{") (expression_statement "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);" (assignment_expression "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c)" (identifier "pcVar4") (= "=") (binary_expression "pcVar4 + *(int *)(iVar3 + 0x15c)" (identifier "pcVar4") (+ "+") (pointer_expression "*(int *)(iVar3 + 0x15c)" (* "*") (cast_expression "(int *)(iVar3 + 0x15c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x15c)" (( "(") (binary_expression "iVar3 + 0x15c" (identifier "iVar3") (+ "+") (number_literal "0x15c")) () ")")))))) (; ";")) (} "}"))) (expression_statement "piStack_40 = (int *)param_2[3];" (assignment_expression "piStack_40 = (int *)param_2[3]" (identifier "piStack_40") (= "=") (cast_expression "(int *)param_2[3]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[3]" (identifier "param_2") ([ "[") (number_literal "3") (] "]")))) (; ";")) (if_statement "if (piStack_40 == (int *)0x1) {\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }\n    else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }" (if "if") (parenthesized_expression "(piStack_40 == (int *)0x1)" (( "(") (binary_expression "piStack_40 == (int *)0x1" (identifier "piStack_40") (== "==") (cast_expression "(int *)0x1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) () ")")) (compound_statement "{\n      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);\n      ppiVar13 = (int **)auStack_3c;\n    }" ({ "{") (expression_statement "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);" (assignment_expression "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c)" (identifier "pcVar4") (= "=") (binary_expression "pcVar4 + *(int *)(iVar3 + 0x16c)" (identifier "pcVar4") (+ "+") (pointer_expression "*(int *)(iVar3 + 0x16c)" (* "*") (cast_expression "(int *)(iVar3 + 0x16c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x16c)" (( "(") (binary_expression "iVar3 + 0x16c" (identifier "iVar3") (+ "+") (number_literal "0x16c")) () ")")))))) (; ";")) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" (identifier "ppiVar13") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";")) (} "}")) (else_clause "else {\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }" (else "else") (compound_statement "{\n      ppiVar13 = (int **)auStack_3c;\n      if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }\n    }" ({ "{") (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" (identifier "ppiVar13") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";")) (if_statement "if (piStack_40 != (int *)0x0) {\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }" (if "if") (parenthesized_expression "(piStack_40 != (int *)0x0)" (( "(") (binary_expression "piStack_40 != (int *)0x0" (identifier "piStack_40") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }\n        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);\n        ppiVar13 = (int **)auStack_3c;\n      }" ({ "{") (if_statement "if (piStack_40 != (int *)0x2) {\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }" (if "if") (parenthesized_expression "(piStack_40 != (int *)0x2)" (( "(") (binary_expression "piStack_40 != (int *)0x2" (identifier "piStack_40") (!= "!=") (cast_expression "(int *)0x2" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x2"))) () ")")) (compound_statement "{\n                    \n          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");\n        }" ({ "{") (expression_statement "FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");" (call_expression "FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value")" (identifier "FUN_002446e0") (argument_list "("../../gold/symtab.cc",0xb5c,"compute_final_value")" (( "(") (string_literal ""../../gold/symtab.cc"" (" """) (string_content "../../gold/symtab.cc") (" """)) (, ",") (number_literal "0xb5c") (, ",") (string_literal ""compute_final_value"" (" """) (string_content "compute_final_value") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);" (assignment_expression "pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c)" (identifier "pcVar4") (= "=") (binary_expression "pcVar4 + *(int *)(iVar3 + 0x18c)" (identifier "pcVar4") (+ "+") (pointer_expression "*(int *)(iVar3 + 0x18c)" (* "*") (cast_expression "(int *)(iVar3 + 0x18c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x18c)" (( "(") (binary_expression "iVar3 + 0x18c" (identifier "iVar3") (+ "+") (number_literal "0x18c")) () ")")))))) (; ";")) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" (identifier "ppiVar13") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";")) (} "}"))) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case (int *)0x3:\ncode_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];\n    ppiVar13 = (int **)auStack_3c;" (case "case") (cast_expression "(int *)0x3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x3")) (: ":") (labeled_statement "code_r0x003510f8:\n    pcVar4 = (code *)param_2[0xc];" (statement_identifier "code_r0x003510f8") (: ":") (expression_statement "pcVar4 = (code *)param_2[0xc];" (assignment_expression "pcVar4 = (code *)param_2[0xc]" (identifier "pcVar4") (= "=") (cast_expression "(code *)param_2[0xc]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[0xc]" (identifier "param_2") ([ "[") (number_literal "0xc") (] "]")))) (; ";"))) (expression_statement "ppiVar13 = (int **)auStack_3c;" (assignment_expression "ppiVar13 = (int **)auStack_3c" (identifier "ppiVar13") (= "=") (cast_expression "(int **)auStack_3c" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "auStack_3c"))) (; ";"))) (} "}"))) (expression_statement "**(undefined4 **)((int)ppiVar13 + 0x48) = 0;" (assignment_expression "**(undefined4 **)((int)ppiVar13 + 0x48) = 0" (pointer_expression "**(undefined4 **)((int)ppiVar13 + 0x48)" (* "*") (pointer_expression "*(undefined4 **)((int)ppiVar13 + 0x48)" (* "*") (cast_expression "(undefined4 **)((int)ppiVar13 + 0x48)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppiVar13 + 0x48)" (( "(") (binary_expression "(int)ppiVar13 + 0x48" (cast_expression "(int)ppiVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppiVar13")) (+ "+") (number_literal "0x48")) () ")"))))) (= "=") (number_literal "0")) (; ";")) (return_statement "return pcVar4;" (return "return") (identifier "pcVar4") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */
/* DWARF original prototype: Value_type compute_final_value<32>(Symbol_table * this,
   Sized_symbol<32> * sym, Compute_final_value_status * pstatus) */

type_1 __thiscall
gold::type_2::function_1<32>
          (type_2 *this,type_3<32> *sym,type_4 *pstatus)

{
}


(translation_unit (function_definition type: (type_identifier) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (switch_statement condition: (parenthesized_expression (identifier)) body: (compound_statement (case_statement value: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (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: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (identifier))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (field_expression argument: (identifier) field: (field_identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (goto_statement label: (statement_identifier)))) (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)))))))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (return_statement (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (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))))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))) right: (identifier))) 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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (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)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))))))) (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: (identifier)) right: (identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (goto_statement label: (statement_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: (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal)))))))))))))))) (break_statement))) (goto_statement label: (statement_identifier))))))) (case_statement value: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (break_statement)) (case_statement value: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (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))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))) right: (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: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (identifier)))) (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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (string_literal (string_content)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))))) (break_statement)) (case_statement value: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (pointer_expression argument: (identifier))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))))))) (break_statement)) (case_statement value: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (identifier))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) right: (number_literal))) (return_statement (identifier)))))

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

code * MASKED(int param_1,int *param_2,undefined4 *param_3)

{
  char cVar1;
  int *piVar2;
  int iVar3;
  code *pcVar4;
  int *piVar5;
  uint uVar6;
  int iVar7;
  undefined4 extraout_ECX;
  uint uVar8;
  byte bVar9;
  byte bVar10;
  code *pcVar11;
  uint uVar12;
  int **ppiVar13;
  int **ppiVar14;
  undefined8 uVar15;
  int *piStack_40;
  undefined1 auStack_3c [4];
  int *piStack_38;
  uint uStack_34;
  int iStack_30;
  code *pcStack_2c;
  code *pcStack_28;
  int *apiStack_24 [4];
  undefined4 uStack_14;
  
  uStack_14 = 0x351059;
  bVar10 = *(byte *)((int)param_2 + 0x2a);
  piVar2 = (int *)(bVar10 & 7);
  if (4 < (byte)piVar2) {
    piStack_40 = piVar2;
                    /* WARNING: Subroutine does not return */
    FUN_002446e0("../../gold/symtab.cc",0xb6a,"compute_final_value");
  }
  switch(piVar2) {
  case (int *)0x0:
    if ((bVar10 & 7) != 0) {
      piStack_40 = piVar2;
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/symtab.h",0xaa,"shndx");
    }
    piVar2 = (int *)param_2[3];
    bVar9 = *(byte *)((int)param_2 + 0x2b) >> 5;
    bVar10 = bVar9 & 1;
    if ((piVar2 != (int *)0xfff1) && (bVar10 == 0)) {
      pcStack_2c = (code *)(CONCAT31(pcStack_2c._1_3_,bVar9) & 0xffffff01);
      piVar5 = (int *)FUN_0034c920(piVar2);
      if ((char)piVar5 == '\0') {
        *param_3 = 1;
        return (code *)0x0;
      }
      bVar10 = (byte)pcStack_2c;
      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 0) {
        piStack_40 = piVar5;
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/symtab.h",0xa1,"object");
      }
    }
    ppiVar13 = (int **)auStack_3c;
    pcVar4 = (code *)param_2[2];
    if (((byte)pcVar4[0x2c] & 1) == 0) {
      pcStack_2c = (code *)CONCAT31(pcStack_2c._1_3_,bVar10);
      iVar3 = (**(code **)(*(int *)pcVar4 + 0x14))(pcVar4);
      if ((iVar3 == 0) && (piVar2 != (int *)0x0)) {
        if (((byte)pcStack_2c != '\0') ||
           ((piVar2 != (int *)0xfff1 && (cVar1 = FUN_0034c920(piVar2), cVar1 == '\0')))) {
          pcStack_28 = FUN_00071550;
          if (*(code **)(*(int *)pcVar4 + 0x60) == FUN_00071550) {
            piVar5 = (int *)(*(int *)(pcVar4 + 0x3c) - *(int *)(pcVar4 + 0x38) >> 2);
            ppiVar14 = (int **)auStack_3c;
            if (piVar5 <= piVar2) goto code_r0x003515fc;
            pcStack_2c = *(code **)(*(int *)(pcVar4 + 0x38) + (int)piVar2 * 4);
          }
          else {
            pcStack_2c = (code *)(**(code **)(*(int *)pcVar4 + 0x60))(pcVar4,piVar2);
          }
          cVar1 = FUN_0034cd20(param_1,pcVar4,piVar2);
          if (cVar1 == '\0') {
            uVar15 = (**(code **)(*(int *)pcVar4 + 0x68))(pcVar4,piVar2);
            if (pcStack_2c == (code *)0x0) {
              if (*(char *)(DAT_005ea7c8 + 0x10) == '\0') {
                piStack_40 = (int *)&UNK_003515fc;
                piVar5 = (int *)FUN_0034c490();
                ppiVar14 = (int **)auStack_3c;
                goto code_r0x003515fc;
              }
              if (*(char *)(DAT_005ea7c8 + 0x11) == '\0') {
                piStack_40 = *(int **)(DAT_005ea7c8 + 8);
                if (piStack_40 == (int *)0x0) {
code_r0x0035164c:
                    /* WARNING: Subroutine does not return */
                  FUN_002446e0("../../gold/parameters.h",0x5c,"options");
                }
                if (*(char *)((int)piStack_40 + 0x318d) == '\0') {
                  piStack_40 = (int *)param_2[5];
                  if (piStack_40 == (int *)0x0) {
                    piStack_40 = (int *)&UNK_0035164c;
                    piStack_40 = (int *)FUN_0034c4c0();
                    goto code_r0x0035164c;
                  }
                  if (piStack_40 != (int *)0xffffffff) {
                    /* WARNING: Subroutine does not return */
                    FUN_002446e0("../../gold/symtab.cc",0xb21,"compute_final_value");
                  }
                }
              }
              *param_3 = 2;
              return (code *)0x0;
            }
          }
          else {
            if (pcStack_2c != (code *)0x0) {
              piStack_40 = param_2;
                    /* WARNING: Subroutine does not return */
              FUN_002446e0("../../gold/symtab.cc",0xb0c,"compute_final_value");
            }
            piStack_40 = piVar2;
            FUN_00247be0(apiStack_24,*(undefined4 *)(param_1 + 0x15c),pcVar4);
            pcVar4 = pcStack_28;
            piStack_38 = apiStack_24[0];
            if (pcStack_28 == (code *)0x0) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0("../../gold/symtab.cc",0xb10,"compute_final_value",extraout_ECX);
            }
            if (*(code **)(*(int *)pcStack_28 + 0x60) == pcStack_2c) {
              iStack_30 = *(int *)(pcStack_28 + 0x38);
              piVar5 = (int *)(*(int *)(pcStack_28 + 0x3c) - iStack_30 >> 2);
              ppiVar14 = &piStack_40;
              if (piVar5 <= apiStack_24[0]) {
code_r0x003515fc:
                *(int **)((int)ppiVar14 + -4) = piVar5;
                *(char **)((int)ppiVar14 + -8) = "do_output_section";
                *(undefined4 *)((int)ppiVar14 + -0xc) = 0x5c8;
                *(char **)((int)ppiVar14 + -0x10) = "../../gold/object.h";
                    /* WARNING: Subroutine does not return */
                *(undefined **)((int)ppiVar14 + -0x14) = &UNK_00351615;
                FUN_002446e0();
              }
              iStack_30 = *(int *)(iStack_30 + (int)apiStack_24[0] * 4);
              pcVar11 = pcStack_28;
            }
            else {
              pcStack_2c = pcStack_28;
              iStack_30 = (**(code **)(*(int *)pcStack_28 + 0x60))
                                    (pcStack_28,apiStack_24[0],pcStack_28,pcStack_28);
              pcVar11 = pcStack_2c;
            }
            ppiVar13 = &piStack_40;
            if (iStack_30 == 0) {
                    /* WARNING: Subroutine does not return */
              FUN_002446e0("../../gold/symtab.cc",0xb15,"compute_final_value",pcVar11);
            }
            uVar15 = (**(code **)(*(int *)pcVar11 + 0x68))(pcVar11,piStack_38);
            piVar2 = apiStack_24[0];
          }
          uVar12 = (uint)((ulonglong)uVar15 >> 0x20);
          uVar8 = (uint)uVar15;
          uVar6 = uVar12 & uVar8;
          if (uVar6 == 0xffffffff) {
            iVar3 = param_2[0xc];
            *(undefined4 *)((int)ppiVar13 + -0x10) = 0;
            *(int *)((int)ppiVar13 + -0x14) = iVar3;
            *(int **)((int)ppiVar13 + -0x18) = piVar2;
            *(code **)((int)ppiVar13 + -0x1c) = pcVar4;
            *(undefined4 *)((int)ppiVar13 + -0x20) = *(undefined4 *)((int)ppiVar13 + 0x10);
            *(undefined **)((int)ppiVar13 + -0x24) = &UNK_003514ac;
            pcVar4 = (code *)FUN_002cdbd0();
          }
          else {
            if (uVar12 != 0) {
              *(uint *)((int)ppiVar13 + -4) = uVar6;
              *(char **)((int)ppiVar13 + -8) = "convert_types";
              *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc0;
              *(char **)((int)ppiVar13 + -0x10) = "../../gold/gold.h";
                    /* WARNING: Subroutine does not return */
              *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003515de;
              FUN_002446e0();
            }
            iVar3 = param_2[0xc];
            if ((*(byte *)(param_2 + 10) & 0xf) == 6) {
              pcVar4 = *(code **)(**(int **)((int)ppiVar13 + 0x10) + 0x48);
              if (pcVar4 == FUN_00144100) {
                iVar7 = (*(int **)((int)ppiVar13 + 0x10))[0x25];
              }
              else {
                *(uint *)((int)ppiVar13 + 8) = uVar8;
                *(undefined4 *)((int)ppiVar13 + -0x10) = *(undefined4 *)((int)ppiVar13 + 0x10);
                *(undefined **)((int)ppiVar13 + -0x14) = &UNK_003514f4;
                iVar7 = (*pcVar4)();
                uVar8 = *(uint *)((int)ppiVar13 + 8);
              }
              pcVar4 = (code *)(iVar7 + iVar3 + uVar8);
            }
            else {
              uVar6 = *(uint *)((int)ppiVar13 + 0x10);
              if ((*(byte *)(uVar6 + 0x1c) & 1) == 0) goto code_r0x00351548;
              pcVar4 = (code *)(iVar3 + uVar8 + *(int *)(*(int *)((int)ppiVar13 + 0x10) + 4));
            }
          }
          break;
        }
        goto code_r0x003510f8;
      }
    }
  case (int *)0x4:
    pcVar4 = (code *)0x0;
    ppiVar13 = (int **)auStack_3c;
    break;
  case (int *)0x1:
    if ((bVar10 & 7) != 1) {
      piStack_40 = piVar2;
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/symtab.h",0xb5,"output_data");
    }
    piVar2 = (int *)param_2[2];
    pcStack_2c = (code *)param_2[0xc];
    if ((char)(*(byte *)(param_2 + 10) & 0xf) == '\x06') {
      piVar5 = (int *)(**(code **)(*piVar2 + 0x24))(piVar2);
      if (piVar5 == (int *)0x0) {
        piStack_40 = piVar5;
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/symtab.cc",0xb43,"compute_final_value");
      }
      if (*(code **)(*piVar5 + 0x48) == FUN_00144100) {
        uStack_34 = piVar5[0x25];
        iStack_30 = piVar5[0x26];
      }
      else {
        uVar15 = (**(code **)(*piVar5 + 0x48))(piVar5);
        uStack_34 = (uint)uVar15;
        iStack_30 = (int)((ulonglong)uVar15 >> 0x20);
      }
      bVar10 = *(byte *)(piVar2 + 7);
      uVar6 = uStack_34;
      ppiVar13 = (int **)auStack_3c;
      if (((bVar10 & 1) == 0) ||
         (uVar6 = piVar2[1], ppiVar13 = (int **)auStack_3c, (*(byte *)(piVar5 + 7) & 1) == 0))
      goto code_r0x00351548;
      pcVar4 = pcStack_2c + (uVar6 - piVar5[1]) + uStack_34;
      if ((*(byte *)((int)param_2 + 0x2a) & 7) != 1) {
        piStack_40 = piVar2;
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/symtab.h",0xbe,"offset_is_from_end");
      }
    }
    else {
      bVar10 = *(byte *)(piVar2 + 7);
      uVar6 = *(byte *)(param_2 + 10) & 0xf;
      ppiVar13 = (int **)auStack_3c;
      if ((bVar10 & 1) == 0) {
code_r0x00351548:
        *(uint *)((int)ppiVar13 + -4) = uVar6;
        *(char **)((int)ppiVar13 + -8) = "address";
        *(undefined4 *)((int)ppiVar13 + -0xc) = 0xc5;
        *(char **)((int)ppiVar13 + -0x10) = "../../gold/output.h";
                    /* WARNING: Subroutine does not return */
        *(undefined **)((int)ppiVar13 + -0x14) = &UNK_00351561;
        FUN_002446e0();
      }
      pcVar4 = (code *)param_2[0xc] + piVar2[1];
    }
    ppiVar13 = (int **)auStack_3c;
    if ((char)param_2[3] != '\0') {
      if ((bVar10 & 2) == 0) {
        piStack_40 = param_2;
                    /* WARNING: Subroutine does not return */
        FUN_002446e0("../../gold/output.h",0xcf,"data_size");
      }
      pcVar4 = pcVar4 + piVar2[3];
      ppiVar13 = (int **)auStack_3c;
    }
    break;
  case (int *)0x2:
    if ((bVar10 & 7) != 2) {
      piStack_40 = (int *)((int)&__DT_PLTGOT + *(int *)(&DAT_004994cc + (int)piVar2 * 4));
                    /* WARNING: Subroutine does not return */
      FUN_002446e0("../../gold/symtab.h",200,"output_segment");
    }
    iVar3 = param_2[2];
    pcVar4 = (code *)param_2[0xc];
    if ((*(byte *)(param_2 + 10) & 0xf) != 6) {
      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x15c);
    }
    piStack_40 = (int *)param_2[3];
    if (piStack_40 == (int *)0x1) {
      pcVar4 = pcVar4 + *(int *)(iVar3 + 0x16c);
      ppiVar13 = (int **)auStack_3c;
    }
    else {
      ppiVar13 = (int **)auStack_3c;
      if (piStack_40 != (int *)0x0) {
        if (piStack_40 != (int *)0x2) {
                    /* WARNING: Subroutine does not return */
          FUN_002446e0("../../gold/symtab.cc",0xb5c,"compute_final_value");
        }
        pcVar4 = pcVar4 + *(int *)(iVar3 + 0x18c);
        ppiVar13 = (int **)auStack_3c;
      }
    }
    break;
  case (int *)0x3:
code_r0x003510f8:
    pcVar4 = (code *)param_2[0xc];
    ppiVar13 = (int **)auStack_3c;
  }
  **(undefined4 **)((int)ppiVar13 + 0x48) = 0;
  return pcVar4;
}

