
/* DWARF original prototype: void do_write(Output_data_plt_sparc<64,_true> * this, Output_file * of)
    */

void __thiscall
anon_unknown.dwarf_4cd88d::Output_data_plt_sparc<64,_true>::do_write
          (Output_data_plt_sparc<64,_true> *this,Output_file *of)

{
  long lVar1;
  long lVar2;
  int iVar3;
  ulong *puVar4;
  uint uVar5;
  uchar *puVar6;
  uint *puVar7;
  ulong *puVar8;
  ulong uVar9;
  ulong *puVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined8 *puVar15;
  ulong uVar16;
  ulong *puVar17;
  uint uVar18;
  
  if ((this->field_0x20 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");
  }
  lVar1 = *(long *)&this->field_0x18;
  if ((this->field_0x20 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");
  }
  lVar2 = *(long *)&this->field_0x10;
  if ((lVar1 < 0) || (of->file_size_ < lVar2 + lVar1)) {
                    /* WARNING: Subroutine does not return */
    gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");
  }
  puVar6 = of->base_ + lVar1;
  puVar6[0] = '\0';
  puVar6[1] = '\0';
  puVar6[2] = '\0';
  puVar6[3] = '\0';
  puVar6[4] = '\0';
  puVar6[5] = '\0';
  puVar6[6] = '\0';
  puVar6[7] = '\0';
  puVar6[0x78] = '\0';
  puVar6[0x79] = '\0';
  puVar6[0x7a] = '\0';
  puVar6[0x7b] = '\0';
  puVar6[0x7c] = '\0';
  puVar6[0x7d] = '\0';
  puVar6[0x7e] = '\0';
  puVar6[0x7f] = '\0';
  puVar17 = (ulong *)(puVar6 + 0x80);
  puVar15 = (undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8);
  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8))
                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {
    *puVar15 = 0;
    puVar15 = puVar15 + 1;
  }
  uVar13 = this->ifunc_count_ + this->count_;
  uVar18 = 0x8000;
  if (uVar13 < 0x8001) {
    uVar18 = uVar13;
  }
  if (uVar13 != 0) {
    uVar11 = 0x80000003;
    uVar12 = 0xe7ff6f30;
    uVar14 = 0;
    iVar3 = (int)puVar17;
    puVar10 = puVar17;
    while( true ) {
      uVar14 = uVar14 + 1;
      *(uint *)puVar10 = uVar11;
      puVar17 = puVar10 + 4;
      *(uint *)((long)puVar10 + 4) = uVar12;
      *(uint *)(puVar10 + 1) = 1;
      *(uint *)((long)puVar10 + 0xc) = 1;
      *(uint *)(puVar10 + 2) = 1;
      *(uint *)((long)puVar10 + 0x14) = 1;
      *(uint *)(puVar10 + 3) = 1;
      *(uint *)((long)puVar10 + 0x1c) = 1;
      if (uVar18 <= uVar14) break;
      uVar12 = (0x3000080 - iVar3) + (int)puVar17;
      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
               uVar12 * 0x1000000;
      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;
      uVar5 = uVar12 + 0x30680000;
      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;
      puVar10 = puVar17;
    }
    if (0x8000 < uVar13) {
      uVar13 = uVar13 - 0x8000;
      if (0x9f < uVar13) {
        uVar18 = 0;
        puVar10 = puVar10 + 0x1e4;
        do {
          puVar17 = puVar10;
          uVar11 = 0xfcee5bc2;
          puVar7 = (uint *)((long)puVar17 + -0xefc);
          puVar10 = puVar17;
          uVar12 = 0xc25beeec;
          while( true ) {
            puVar7[2] = uVar11;
            uVar9 = (long)puVar6 - (long)puVar7;
            puVar7[-1] = 0xf00108a;
            *puVar7 = 0x2000040;
            puVar7[1] = 1;
            puVar7[3] = 0x1c0c383;
            puVar7[4] = 0x500109e;
            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |
                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |
                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |
                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;
            if (uVar12 == 0xc25be4fc) break;
            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                     uVar12 << 0x18;
            puVar7 = puVar7 + 6;
            puVar10 = puVar10 + 1;
            uVar12 = uVar12 - 0x10;
          }
          uVar18 = uVar18 + 1;
          puVar10 = puVar17 + 0x1e0;
        } while (uVar18 < uVar13 / 0xa0);
      }
      uVar13 = uVar13 % 0xa0;
      if (uVar13 != 0) {
        puVar10 = puVar17 + 0x1e0;
        do {
          puVar4 = puVar10 + -0x1e0;
          uVar18 = uVar13 * 0x18 - 4;
          do {
            puVar8 = puVar4;
            *(uint *)puVar8 = 0xf00108a;
            *(uint *)((long)puVar8 + 4) = 0x2000040;
            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;
            *(uint *)(puVar8 + 1) = 1;
            *(uint *)((long)puVar8 + 0xc) =
                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                 (uVar18 & 0x1fff) << 0x18;
            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);
            *(uint *)(puVar8 + 2) = 0x1c0c383;
            uVar16 = (ulong)uVar18;
            *(uint *)((long)puVar8 + 0x14) = 0x500109e;
            uVar18 = uVar18 - 0x10;
            *(ulong *)((long)puVar8 + uVar16 + 4) =
                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |
                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |
                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |
                 uVar9 << 0x38;
            puVar4 = puVar8 + 3;
          } while (puVar8 + 3 != puVar10);
          puVar10 = puVar8 + 0x1e3;
        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);
        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;
      }
    }
  }
  if ((long)puVar17 - (long)puVar6 == lVar2) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  gold::do_gold_unreachable("../../gold/sparc.cc",0x708,"do_write");
}



void FUN_001c5df0(long param_1,long param_2)

{
  long lVar1;
  long lVar2;
  int iVar3;
  ulong *puVar4;
  uint uVar5;
  undefined8 *puVar6;
  uint *puVar7;
  ulong *puVar8;
  ulong uVar9;
  ulong *puVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined8 *puVar15;
  ulong uVar16;
  ulong *puVar17;
  uint uVar18;
  
  if ((*(byte *)(param_1 + 0x20) & 4) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/output.h",0xe3,"offset");
  }
  lVar1 = *(long *)(param_1 + 0x18);
  if ((*(byte *)(param_1 + 0x20) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/output.h",0xcf,"data_size");
  }
  lVar2 = *(long *)(param_1 + 0x10);
  if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");
  }
  puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));
  *puVar6 = 0;
  puVar6[0xf] = 0;
  puVar17 = puVar6 + 0x10;
  puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);
  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))
                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {
    *puVar15 = 0;
    puVar15 = puVar15 + 1;
  }
  uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);
  uVar18 = 0x8000;
  if (uVar13 < 0x8001) {
    uVar18 = uVar13;
  }
  if (uVar13 != 0) {
    uVar11 = 0x80000003;
    uVar12 = 0xe7ff6f30;
    uVar14 = 0;
    iVar3 = (int)puVar17;
    puVar10 = puVar17;
    while( true ) {
      uVar14 = uVar14 + 1;
      *(uint *)puVar10 = uVar11;
      puVar17 = puVar10 + 4;
      *(uint *)((long)puVar10 + 4) = uVar12;
      *(uint *)(puVar10 + 1) = 1;
      *(uint *)((long)puVar10 + 0xc) = 1;
      *(uint *)(puVar10 + 2) = 1;
      *(uint *)((long)puVar10 + 0x14) = 1;
      *(uint *)(puVar10 + 3) = 1;
      *(uint *)((long)puVar10 + 0x1c) = 1;
      if (uVar18 <= uVar14) break;
      uVar12 = (0x3000080 - iVar3) + (int)puVar17;
      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
               uVar12 * 0x1000000;
      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;
      uVar5 = uVar12 + 0x30680000;
      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;
      puVar10 = puVar17;
    }
    if (0x8000 < uVar13) {
      uVar13 = uVar13 - 0x8000;
      if (0x9f < uVar13) {
        uVar18 = 0;
        puVar10 = puVar10 + 0x1e4;
        do {
          puVar17 = puVar10;
          uVar11 = 0xfcee5bc2;
          puVar7 = (uint *)((long)puVar17 + -0xefc);
          puVar10 = puVar17;
          uVar12 = 0xc25beeec;
          while( true ) {
            puVar7[2] = uVar11;
            uVar9 = (long)puVar6 - (long)puVar7;
            puVar7[-1] = 0xf00108a;
            *puVar7 = 0x2000040;
            puVar7[1] = 1;
            puVar7[3] = 0x1c0c383;
            puVar7[4] = 0x500109e;
            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |
                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |
                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |
                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;
            if (uVar12 == 0xc25be4fc) break;
            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                     uVar12 << 0x18;
            puVar7 = puVar7 + 6;
            puVar10 = puVar10 + 1;
            uVar12 = uVar12 - 0x10;
          }
          uVar18 = uVar18 + 1;
          puVar10 = puVar17 + 0x1e0;
        } while (uVar18 < uVar13 / 0xa0);
      }
      uVar13 = uVar13 % 0xa0;
      if (uVar13 != 0) {
        puVar10 = puVar17 + 0x1e0;
        do {
          puVar4 = puVar10 + -0x1e0;
          uVar18 = uVar13 * 0x18 - 4;
          do {
            puVar8 = puVar4;
            uVar9 = (ulong)uVar18;
            *(uint *)puVar8 = 0xf00108a;
            *(uint *)((long)puVar8 + 4) = 0x2000040;
            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;
            *(uint *)(puVar8 + 1) = 1;
            *(uint *)((long)puVar8 + 0xc) =
                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                 (uVar18 & 0x1fff) << 0x18;
            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);
            *(uint *)(puVar8 + 2) = 0x1c0c383;
            *(uint *)((long)puVar8 + 0x14) = 0x500109e;
            uVar18 = uVar18 - 0x10;
            *(ulong *)((long)puVar8 + uVar9 + 4) =
                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |
                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |
                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |
                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;
            puVar4 = puVar8 + 3;
          } while (puVar8 + 3 != puVar10);
          puVar10 = puVar8 + 0x1e3;
        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);
        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;
      }
    }
  }
  if ((long)puVar17 - (long)puVar6 == lVar2) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");
}


PUSH R12
PUSH RBP
PUSH RBX
MOVZX ECX,byte ptr [RDI + 0x20]
TEST CL,0x4
JZ 0x001c60b6
AND ECX,0x2
MOV RDX,RDI
MOV RAX,qword ptr [RDI + 0x18]
JZ 0x001c609e
MOV R8,qword ptr [RDI + 0x10]
TEST RAX,RAX
JS 0x001c6086
LEA RCX,[R8 + RAX*0x1]
CMP RCX,qword ptr [RSI + 0x10]
JG 0x001c6086
ADD RAX,qword ptr [RSI + 0x18]
MOV R9D,0x8000
LEA RDI,[RAX + 0x8]
MOV RCX,RAX
MOV RSI,RAX
MOV qword ptr [RAX],0x0
AND RDI,-0x8
MOV qword ptr [RAX + 0x78],0x0
LEA R10,[RAX + 0x80]
XOR EAX,EAX
SUB RCX,RDI
SUB ECX,-0x80
SHR ECX,0x3
STOSQ.REP RDI
MOV EBX,dword ptr [RDX + 0x4c]
ADD EBX,dword ptr [RDX + 0x48]
CMP EBX,0x8000
CMOVBE R9D,EBX
TEST EBX,EBX
JZ 0x001c6079
MOV R11D,0x3000080
MOV RCX,R10
MOV EDX,0x80000003
MOV EAX,0xe7ff6f30
XOR EDI,EDI
LEA EBP,[R10 + -0x64]
SUB R11D,R10D
JMP 0x001c5ebd
MOV EAX,EBP
LEA EDX,[R11 + R10*0x1]
MOV RCX,R10
SUB EAX,R10D
BSWAP EDX
SHR EAX,0x2
AND EAX,0x7ffff
ADD EAX,0x30680000
BSWAP EAX
ADD EDI,0x1
MOV dword ptr [RCX],EDX
LEA R10,[RCX + 0x20]
MOV dword ptr [RCX + 0x4],EAX
MOV dword ptr [RCX + 0x8],0x1
MOV dword ptr [RCX + 0xc],0x1
MOV dword ptr [RCX + 0x10],0x1
MOV dword ptr [RCX + 0x14],0x1
MOV dword ptr [RCX + 0x18],0x1
MOV dword ptr [RCX + 0x1c],0x1
CMP R9D,EDI
JA 0x001c5ea0
CMP EBX,0x8000
JBE 0x001c6079
SUB EBX,0x8000
MOV EDX,0xcccccccd
MOV EAX,EBX
MUL EDX
SHR EDX,0x7
MOV EBP,EDX
CMP EBX,0x9f
JBE 0x001c5fad
LEA R9,[RCX + 0xf20]
XOR R11D,R11D
MOV R12D,0xfcee5bc2
LEA RAX,[R9 + -0xefc]
MOV RDI,R9
MOV ECX,0xc25beeec
MOV EDX,R12D
JMP 0x001c5f57
MOV EDX,ECX
SUB ECX,0x10
BSWAP EDX
MOV dword ptr [RAX + 0x8],EDX
MOV RDX,RSI
ADD RDI,0x8
SUB RDX,RAX
MOV dword ptr [RAX + -0x4],0xf00108a
ADD RAX,0x18
MOV dword ptr [RAX + -0x18],0x2000040
BSWAP RDX
MOV dword ptr [RAX + -0x14],0x1
MOV dword ptr [RAX + -0xc],0x1c0c383
MOV dword ptr [RAX + -0x8],0x500109e
MOV qword ptr [RDI + -0x8],RDX
CMP ECX,0xc25be4fc
JNZ 0x001c5f50
ADD R11D,0x1
MOV R10,R9
ADD R9,0xf00
CMP EBP,R11D
JA 0x001c5f34
MOV EAX,EBX
MOV EDX,0xcccccccd
MUL EDX
MOV EAX,EDX
SHR EAX,0x7
LEA EAX,[RAX + RAX*0x4]
SHL EAX,0x5
SUB EBX,EAX
MOV EAX,EBX
JZ 0x001c6079
LEA EBP,[RAX + -0x1]
LEA EDX,[RBX + RBX*0x2]
MOV RAX,RBP
LEA EBX,[-0x4 + RDX*0x8]
LEA R9,[R10 + 0xf00]
SHL RAX,0x4
SUB RAX,RBP
SHL RAX,0x8
LEA R11,[R10 + RAX*0x1 + 0x1e00]
LEA RAX,[R9 + -0xf00]
MOV ECX,EBX
NOP
MOV EDX,ECX
MOV RDI,RSI
MOV dword ptr [RAX],0xf00108a
AND EDX,0x1fff
MOV dword ptr [RAX + 0x4],0x2000040
SUB EDX,0x3da42000
MOV dword ptr [RAX + 0x8],0x1
BSWAP EDX
MOV dword ptr [RAX + 0xc],EDX
LEA RDX,[RAX + 0x4]
ADD RAX,0x18
SUB RDI,RDX
MOV dword ptr [RAX + -0x8],0x1c0c383
MOV RDX,RDI
MOV EDI,ECX
MOV dword ptr [RAX + -0x4],0x500109e
SUB ECX,0x10
BSWAP RDX
MOV qword ptr [RAX + RDI*0x1 + -0x14],RDX
CMP RAX,R9
JNZ 0x001c6000
LEA R9,[RAX + 0xf00]
CMP R11,R9
JNZ 0x001c5ff5
ADD RBP,0x1
MOV RAX,RBP
SHL RAX,0x4
SUB RAX,RBP
SHL RAX,0x8
ADD R10,RAX
SUB R10,RSI
CMP R10,R8
JNZ 0x001c60ce
POP RBX
POP RBP
POP R12
RET
LEA RDX,[0x53c3f0]
MOV ESI,0x6f
LEA RDI,[0x533384]
CALL 0x00352af0
LEA RDX,[0x53c920]
MOV ESI,0xcf
LEA RDI,[0x533384]
CALL 0x00352af0
LEA RDX,[0x53c400]
MOV ESI,0xe3
LEA RDI,[0x533384]
CALL 0x00352af0
LEA RDX,[0x53c408]
MOV ESI,0x708
LEA RDI,[0x539f4e]
CALL 0x00352af0
(translation_unit "void FUN_001c5df0(long param_1,long param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  int iVar3;\n  ulong *puVar4;\n  uint uVar5;\n  undefined8 *puVar6;\n  uint *puVar7;\n  ulong *puVar8;\n  ulong uVar9;\n  ulong *puVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  ulong uVar16;\n  ulong *puVar17;\n  uint uVar18;\n  \n  if ((*(byte *)(param_1 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }\n  lVar1 = *(long *)(param_1 + 0x18);\n  if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }\n  lVar2 = *(long *)(param_1 + 0x10);\n  if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }\n  puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));\n  *puVar6 = 0;\n  puVar6[0xf] = 0;\n  puVar17 = puVar6 + 0x10;\n  puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);\n  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }\n  uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);\n  uVar18 = 0x8000;\n  if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }\n  if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }\n  if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");\n}\n\n" (function_definition "void FUN_001c5df0(long param_1,long param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  int iVar3;\n  ulong *puVar4;\n  uint uVar5;\n  undefined8 *puVar6;\n  uint *puVar7;\n  ulong *puVar8;\n  ulong uVar9;\n  ulong *puVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  ulong uVar16;\n  ulong *puVar17;\n  uint uVar18;\n  \n  if ((*(byte *)(param_1 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }\n  lVar1 = *(long *)(param_1 + 0x18);\n  if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }\n  lVar2 = *(long *)(param_1 + 0x10);\n  if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }\n  puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));\n  *puVar6 = 0;\n  puVar6[0xf] = 0;\n  puVar17 = puVar6 + 0x10;\n  puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);\n  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }\n  uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);\n  uVar18 = 0x8000;\n  if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }\n  if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }\n  if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");\n}" primitive_type (function_declarator "FUN_001c5df0(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  int iVar3;\n  ulong *puVar4;\n  uint uVar5;\n  undefined8 *puVar6;\n  uint *puVar7;\n  ulong *puVar8;\n  ulong uVar9;\n  ulong *puVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  ulong uVar16;\n  ulong *puVar17;\n  uint uVar18;\n  \n  if ((*(byte *)(param_1 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }\n  lVar1 = *(long *)(param_1 + 0x18);\n  if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }\n  lVar2 = *(long *)(param_1 + 0x10);\n  if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }\n  puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));\n  *puVar6 = 0;\n  puVar6[0xf] = 0;\n  puVar17 = puVar6 + 0x10;\n  puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);\n  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }\n  uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);\n  uVar18 = 0x8000;\n  if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }\n  if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }\n  if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "ulong *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined8 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "ulong *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (if_statement "if ((*(byte *)(param_1 + 0x20) & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 4)" ( (binary_expression "*(byte *)(param_1 + 0x20) & 4" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }" { comment (expression_statement "FUN_00352af0("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_00352af0("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "lVar1 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x20) & 2" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }" { comment (expression_statement "FUN_00352af0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00352af0("../../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 "lVar2 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }" if (parenthesized_expression "((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1))" ( (binary_expression "(lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)" (parenthesized_expression "(lVar1 < 0)" ( (binary_expression "lVar1 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_2 + 0x10) < lVar2 + lVar1)" ( (binary_expression "*(long *)(param_2 + 0x10) < lVar2 + lVar1" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) < (binary_expression "lVar2 + lVar1" identifier + identifier)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }" { comment (expression_statement "FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");" (call_expression "FUN_00352af0("../../gold/output.h",0x6f,"get_output_view")" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") ))) ;) })) (expression_statement "puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));" (assignment_expression "puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18))" identifier = (cast_expression "(undefined8 *)(lVar1 + *(long *)(param_2 + 0x18))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + *(long *)(param_2 + 0x18))" ( (binary_expression "lVar1 + *(long *)(param_2 + 0x18)" identifier + (pointer_expression "*(long *)(param_2 + 0x18)" * (cast_expression "(long *)(param_2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) )))) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6[0xf] = 0;" (assignment_expression "puVar6[0xf] = 0" (subscript_expression "puVar6[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar17 = puVar6 + 0x10;" (assignment_expression "puVar17 = puVar6 + 0x10" identifier = (binary_expression "puVar6 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);" (assignment_expression "puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" identifier = (cast_expression "(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar6 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar6 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar6 + 1)" ( (binary_expression "puVar6 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }" for ( (assignment_expression "uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" identifier = (call_expression "(ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" ( (binary_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3" (binary_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U" (parenthesized_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))" ( (binary_expression "(int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar6 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar6 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar6 + 1)" ( (binary_expression "puVar6 + 1" identifier + number_literal) ))) & number_literal) ))))) )) + number_literal) >> number_literal) )))) ; (binary_expression "uVar9 != 0" identifier != number_literal) ; (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ) (compound_statement "{\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }" { (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "puVar15 = puVar15 + 1;" (assignment_expression "puVar15 = puVar15 + 1" identifier = (binary_expression "puVar15 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);" (assignment_expression "uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48)" identifier = (binary_expression "*(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48)" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))))) ;) (expression_statement "uVar18 = 0x8000;" (assignment_expression "uVar18 = 0x8000" identifier = number_literal) ;) (if_statement "if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }" if (parenthesized_expression "(uVar13 < 0x8001)" ( (binary_expression "uVar13 < 0x8001" identifier < number_literal) )) (compound_statement "{\n    uVar18 = uVar13;\n  }" { (expression_statement "uVar18 = uVar13;" (assignment_expression "uVar18 = uVar13" identifier = identifier) ;) })) (if_statement "if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }" { (expression_statement "uVar11 = 0x80000003;" (assignment_expression "uVar11 = 0x80000003" identifier = number_literal) ;) (expression_statement "uVar12 = 0xe7ff6f30;" (assignment_expression "uVar12 = 0xe7ff6f30" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = (int)puVar17;" (assignment_expression "iVar3 = (int)puVar17" identifier = (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" identifier = identifier) ;) (while_statement "while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }" { (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)puVar10 = uVar11;" (assignment_expression "*(uint *)puVar10 = uVar11" (pointer_expression "*(uint *)puVar10" * (cast_expression "(uint *)puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar17 = puVar10 + 4;" (assignment_expression "puVar17 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) (expression_statement "*(uint *)((long)puVar10 + 4) = uVar12;" (assignment_expression "*(uint *)((long)puVar10 + 4) = uVar12" (pointer_expression "*(uint *)((long)puVar10 + 4)" * (cast_expression "(uint *)((long)puVar10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 4)" ( (binary_expression "(long)puVar10 + 4" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar10 + 1) = 1;" (assignment_expression "*(uint *)(puVar10 + 1) = 1" (pointer_expression "*(uint *)(puVar10 + 1)" * (cast_expression "(uint *)(puVar10 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 1)" ( (binary_expression "puVar10 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar10 + 0xc) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0xc) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0xc)" * (cast_expression "(uint *)((long)puVar10 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 0xc)" ( (binary_expression "(long)puVar10 + 0xc" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar10 + 2) = 1;" (assignment_expression "*(uint *)(puVar10 + 2) = 1" (pointer_expression "*(uint *)(puVar10 + 2)" * (cast_expression "(uint *)(puVar10 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar10 + 0x14) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0x14) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0x14)" * (cast_expression "(uint *)((long)puVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 0x14)" ( (binary_expression "(long)puVar10 + 0x14" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar10 + 3) = 1;" (assignment_expression "*(uint *)(puVar10 + 3) = 1" (pointer_expression "*(uint *)(puVar10 + 3)" * (cast_expression "(uint *)(puVar10 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 3)" ( (binary_expression "puVar10 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar10 + 0x1c) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0x1c) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0x1c)" * (cast_expression "(uint *)((long)puVar10 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 0x1c)" ( (binary_expression "(long)puVar10 + 0x1c" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (uVar18 <= uVar14) break;" if (parenthesized_expression "(uVar18 <= uVar14)" ( (binary_expression "uVar18 <= uVar14" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = (0x3000080 - iVar3) + (int)puVar17;" (assignment_expression "uVar12 = (0x3000080 - iVar3) + (int)puVar17" identifier = (binary_expression "(0x3000080 - iVar3) + (int)puVar17" (parenthesized_expression "(0x3000080 - iVar3)" ( (binary_expression "0x3000080 - iVar3" number_literal - identifier) )) + (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;" (assignment_expression "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000" identifier = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 * 0x1000000" identifier * number_literal))) ;) (expression_statement "uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;" (assignment_expression "uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff" identifier = (binary_expression "(uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff" (binary_expression "(uint)((iVar3 + -100) - (int)puVar17) >> 2" (call_expression "(uint)((iVar3 + -100) - (int)puVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((iVar3 + -100) - (int)puVar17)" ( (binary_expression "(iVar3 + -100) - (int)puVar17" (parenthesized_expression "(iVar3 + -100)" ( (binary_expression "iVar3 + -100" identifier + number_literal) )) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))) >> number_literal) & number_literal)) ;) (expression_statement "uVar5 = uVar12 + 0x30680000;" (assignment_expression "uVar5 = uVar12 + 0x30680000" identifier = (binary_expression "uVar12 + 0x30680000" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;" (assignment_expression "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18" identifier = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" identifier = identifier) ;) })) (if_statement "if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }" if (parenthesized_expression "(0x8000 < uVar13)" ( (binary_expression "0x8000 < uVar13" number_literal < identifier) )) (compound_statement "{\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }" { (expression_statement "uVar13 = uVar13 - 0x8000;" (assignment_expression "uVar13 = uVar13 - 0x8000" identifier = (binary_expression "uVar13 - 0x8000" identifier - number_literal)) ;) (if_statement "if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }" if (parenthesized_expression "(0x9f < uVar13)" ( (binary_expression "0x9f < uVar13" number_literal < identifier) )) (compound_statement "{\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = puVar10 + 0x1e4;" (assignment_expression "puVar10 = puVar10 + 0x1e4" identifier = (binary_expression "puVar10 + 0x1e4" identifier + number_literal)) ;) (do_statement "do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);" do (compound_statement "{\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        }" { (expression_statement "puVar17 = puVar10;" (assignment_expression "puVar17 = puVar10" identifier = identifier) ;) (expression_statement "uVar11 = 0xfcee5bc2;" (assignment_expression "uVar11 = 0xfcee5bc2" identifier = number_literal) ;) (expression_statement "puVar7 = (uint *)((long)puVar17 + -0xefc);" (assignment_expression "puVar7 = (uint *)((long)puVar17 + -0xefc)" identifier = (cast_expression "(uint *)((long)puVar17 + -0xefc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + -0xefc)" ( (binary_expression "(long)puVar17 + -0xefc" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" identifier = identifier) ;) (expression_statement "uVar12 = 0xc25beeec;" (assignment_expression "uVar12 = 0xc25beeec" identifier = number_literal) ;) (while_statement "while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }" { (expression_statement "puVar7[2] = uVar11;" (assignment_expression "puVar7[2] = uVar11" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar9 = (long)puVar6 - (long)puVar7;" (assignment_expression "uVar9 = (long)puVar6 - (long)puVar7" identifier = (binary_expression "(long)puVar6 - (long)puVar7" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "puVar7[-1] = 0xf00108a;" (assignment_expression "puVar7[-1] = 0xf00108a" (subscript_expression "puVar7[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar7 = 0x2000040;" (assignment_expression "*puVar7 = 0x2000040" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 1;" (assignment_expression "puVar7[1] = 1" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0x1c0c383;" (assignment_expression "puVar7[3] = 0x1c0c383" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[4] = 0x500109e;" (assignment_expression "puVar7[4] = 0x500109e" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;" (assignment_expression "*puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (pointer_expression "*puVar10" * identifier) = (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" ( (binary_expression "uVar9 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" ( (binary_expression "uVar9 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal))) ;) (if_statement "if (uVar12 == 0xc25be4fc) break;" if (parenthesized_expression "(uVar12 == 0xc25be4fc)" ( (binary_expression "uVar12 == 0xc25be4fc" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;" (assignment_expression "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18" identifier = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar7 = puVar7 + 6;" (assignment_expression "puVar7 = puVar7 + 6" identifier = (binary_expression "puVar7 + 6" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar12 - 0x10;" (assignment_expression "uVar12 = uVar12 - 0x10" identifier = (binary_expression "uVar12 - 0x10" identifier - number_literal)) ;) })) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar17 + 0x1e0;" (assignment_expression "puVar10 = puVar17 + 0x1e0" identifier = (binary_expression "puVar17 + 0x1e0" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar18 < uVar13 / 0xa0)" ( (binary_expression "uVar18 < uVar13 / 0xa0" identifier < (binary_expression "uVar13 / 0xa0" identifier / number_literal)) )) ;) })) (expression_statement "uVar13 = uVar13 % 0xa0;" (assignment_expression "uVar13 = uVar13 % 0xa0" identifier = (binary_expression "uVar13 % 0xa0" identifier % number_literal)) ;) (if_statement "if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }" { (expression_statement "puVar10 = puVar17 + 0x1e0;" (assignment_expression "puVar10 = puVar17 + 0x1e0" identifier = (binary_expression "puVar17 + 0x1e0" identifier + number_literal)) ;) (do_statement "do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);" do (compound_statement "{\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        }" { (expression_statement "puVar4 = puVar10 + -0x1e0;" (assignment_expression "puVar4 = puVar10 + -0x1e0" identifier = (binary_expression "puVar10 + -0x1e0" identifier + number_literal)) ;) (expression_statement "uVar18 = uVar13 * 0x18 - 4;" (assignment_expression "uVar18 = uVar13 * 0x18 - 4" identifier = (binary_expression "uVar13 * 0x18 - 4" (binary_expression "uVar13 * 0x18" identifier * number_literal) - number_literal)) ;) (do_statement "do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);" do (compound_statement "{\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "uVar9 = (ulong)uVar18;" (assignment_expression "uVar9 = (ulong)uVar18" identifier = (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)puVar8 = 0xf00108a;" (assignment_expression "*(uint *)puVar8 = 0xf00108a" (pointer_expression "*(uint *)puVar8" * (cast_expression "(uint *)puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(uint *)((long)puVar8 + 4) = 0x2000040;" (assignment_expression "*(uint *)((long)puVar8 + 4) = 0x2000040" (pointer_expression "*(uint *)((long)puVar8 + 4)" * (cast_expression "(uint *)((long)puVar8 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 4)" ( (binary_expression "(long)puVar8 + 4" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = (uVar18 & 0x1fff) + 0xc25be000;" (assignment_expression "uVar12 = (uVar18 & 0x1fff) + 0xc25be000" identifier = (binary_expression "(uVar18 & 0x1fff) + 0xc25be000" (parenthesized_expression "(uVar18 & 0x1fff)" ( (binary_expression "uVar18 & 0x1fff" identifier & number_literal) )) + number_literal)) ;) (expression_statement "*(uint *)(puVar8 + 1) = 1;" (assignment_expression "*(uint *)(puVar8 + 1) = 1" (pointer_expression "*(uint *)(puVar8 + 1)" * (cast_expression "(uint *)(puVar8 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 1)" ( (binary_expression "puVar8 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;" (assignment_expression "*(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18" (pointer_expression "*(uint *)((long)puVar8 + 0xc)" * (cast_expression "(uint *)((long)puVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0xc)" ( (binary_expression "(long)puVar8 + 0xc" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar18 & 0x1fff) << 0x18" (parenthesized_expression "(uVar18 & 0x1fff)" ( (binary_expression "uVar18 & 0x1fff" identifier & number_literal) )) << number_literal))) ;) (expression_statement "uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);" (assignment_expression "uVar16 = (long)puVar6 - (long)((long)puVar8 + 4)" identifier = (binary_expression "(long)puVar6 - (long)((long)puVar8 + 4)" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)((long)puVar8 + 4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((long)puVar8 + 4)" ( (binary_expression "(long)puVar8 + 4" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar8 + 2) = 0x1c0c383;" (assignment_expression "*(uint *)(puVar8 + 2) = 0x1c0c383" (pointer_expression "*(uint *)(puVar8 + 2)" * (cast_expression "(uint *)(puVar8 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 2)" ( (binary_expression "puVar8 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar8 + 0x14) = 0x500109e;" (assignment_expression "*(uint *)((long)puVar8 + 0x14) = 0x500109e" (pointer_expression "*(uint *)((long)puVar8 + 0x14)" * (cast_expression "(uint *)((long)puVar8 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0x14)" ( (binary_expression "(long)puVar8 + 0x14" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar18 = uVar18 - 0x10;" (assignment_expression "uVar18 = uVar18 - 0x10" identifier = (binary_expression "uVar18 - 0x10" identifier - number_literal)) ;) (expression_statement "*(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;" (assignment_expression "*(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38" (pointer_expression "*(ulong *)((long)puVar8 + uVar9 + 4)" * (cast_expression "(ulong *)((long)puVar8 + uVar9 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + uVar9 + 4)" ( (binary_expression "(long)puVar8 + uVar9 + 4" (binary_expression "(long)puVar8 + uVar9" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28" (binary_expression "uVar16 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar16 & 0xff000000000000)" ( (binary_expression "uVar16 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar16 & 0xff0000000000)" ( (binary_expression "uVar16 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00000000) >> 8" (parenthesized_expression "(uVar16 & 0xff00000000)" ( (binary_expression "uVar16 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff000000) << 8" (parenthesized_expression "(uVar16 & 0xff000000)" ( (binary_expression "uVar16 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar16 & 0xff0000) << 0x18" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar16 & 0xff00) << 0x28" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x38" identifier << number_literal))) ;) (expression_statement "puVar4 = puVar8 + 3;" (assignment_expression "puVar4 = puVar8 + 3" identifier = (binary_expression "puVar8 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 + 3 != puVar10)" ( (binary_expression "puVar8 + 3 != puVar10" (binary_expression "puVar8 + 3" identifier + number_literal) != identifier) )) ;) (expression_statement "puVar10 = puVar8 + 0x1e3;" (assignment_expression "puVar10 = puVar8 + 0x1e3" identifier = (binary_expression "puVar8 + 0x1e3" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10)" ( (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10" (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0" (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0" identifier + (binary_expression "(ulong)(uVar13 - 1) * 0x1e0" (call_expression "(ulong)(uVar13 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) ))) * number_literal)) + number_literal) != identifier) )) ;) (expression_statement "puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;" (assignment_expression "puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0" identifier = (binary_expression "puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0" identifier + (binary_expression "((ulong)(uVar13 - 1) + 1) * 0x1e0" (parenthesized_expression "((ulong)(uVar13 - 1) + 1)" ( (binary_expression "(ulong)(uVar13 - 1) + 1" (call_expression "(ulong)(uVar13 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) ))) + number_literal) )) * number_literal))) ;) })) })) })) (if_statement "if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }" if (parenthesized_expression "((long)puVar17 - (long)puVar6 == lVar2)" ( (binary_expression "(long)puVar17 - (long)puVar6 == lVar2" (binary_expression "(long)puVar17 - (long)puVar6" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");" (call_expression "FUN_00352af0("../../gold/sparc.cc",0x708,"do_write")" identifier (argument_list "("../../gold/sparc.cc",0x708,"do_write")" ( (string_literal ""../../gold/sparc.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })))
(translation_unit "/* DWARF original prototype: void do_write(Output_data_plt_sparc<64,_true> * this, Output_file * of)\n    */\n\nvoid __thiscall\nanon_unknown.dwarf_4cd88d::Output_data_plt_sparc<64,_true>::do_write\n          (Output_data_plt_sparc<64,_true> *this,Output_file *of)\n\n{\n  long lVar1;\n  long lVar2;\n  int iVar3;\n  ulong *puVar4;\n  uint uVar5;\n  uchar *puVar6;\n  uint *puVar7;\n  ulong *puVar8;\n  ulong uVar9;\n  ulong *puVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  ulong uVar16;\n  ulong *puVar17;\n  uint uVar18;\n  \n  if ((this->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }\n  lVar1 = *(long *)&this->field_0x18;\n  if ((this->field_0x20 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n  }\n  lVar2 = *(long *)&this->field_0x10;\n  if ((lVar1 < 0) || (of->file_size_ < lVar2 + lVar1)) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }\n  puVar6 = of->base_ + lVar1;\n  puVar6[0] = '\0';\n  puVar6[1] = '\0';\n  puVar6[2] = '\0';\n  puVar6[3] = '\0';\n  puVar6[4] = '\0';\n  puVar6[5] = '\0';\n  puVar6[6] = '\0';\n  puVar6[7] = '\0';\n  puVar6[0x78] = '\0';\n  puVar6[0x79] = '\0';\n  puVar6[0x7a] = '\0';\n  puVar6[0x7b] = '\0';\n  puVar6[0x7c] = '\0';\n  puVar6[0x7d] = '\0';\n  puVar6[0x7e] = '\0';\n  puVar6[0x7f] = '\0';\n  puVar17 = (ulong *)(puVar6 + 0x80);\n  puVar15 = (undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8);\n  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }\n  uVar13 = this->ifunc_count_ + this->count_;\n  uVar18 = 0x8000;\n  if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }\n  if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            uVar16 = (ulong)uVar18;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }\n  if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  gold::do_gold_unreachable("../../gold/sparc.cc",0x708,"do_write");\n}\n\n" comment (declaration "void __thiscall\nanon_unknown.dwarf_4cd88d::Output_data_plt_sparc<64,_true>::do_write\n          (Output_data_plt_sparc<64,_true> *this,Output_file *of)\n\n{\n  long lVar1;" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "anon_unknown.dwarf_4cd88d::" identifier . identifier : :) identifier (ERROR "<64" < number_literal) , (ERROR "_true>::do_write\n          (Output_data_plt_sparc<64,_true> *this,Output_file *of)\n\n{\n  long" identifier > : : (function_declarator "do_write\n          (Output_data_plt_sparc<64,_true> *this,Output_file *of)" identifier (parameter_list "(Output_data_plt_sparc<64,_true> *this,Output_file *of)" ( (parameter_declaration "Output_data_plt_sparc" type_identifier) (ERROR "<64" < number_literal) , (parameter_declaration "_true> *this" type_identifier (ERROR ">" >) (pointer_declarator "*this" * identifier)) , (parameter_declaration "Output_file *of" type_identifier (pointer_declarator "*of" * identifier)) ))) { long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "ulong *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined8 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "ulong *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (if_statement "if ((this->field_0x20 & 4) == 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }" if (parenthesized_expression "((this->field_0x20 & 4) == 0)" ( (binary_expression "(this->field_0x20 & 4) == 0" (parenthesized_expression "(this->field_0x20 & 4)" ( (binary_expression "this->field_0x20 & 4" (field_expression "this->field_0x20" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0xe3,"offset");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/output.h",0xe3,"offset");" (call_expression "do_gold_unreachable("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;)) })) (expression_statement "lVar1 = *(long *)&this->field_0x18;" (assignment_expression "lVar1 = *(long *)&this->field_0x18" identifier = (pointer_expression "*(long *)&this->field_0x18" * (cast_expression "(long *)&this->field_0x18" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x18" & (field_expression "this->field_0x18" identifier -> field_identifier))))) ;) (if_statement "if ((this->field_0x20 & 2) == 0) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n  }" if (parenthesized_expression "((this->field_0x20 & 2) == 0)" ( (binary_expression "(this->field_0x20 & 2) == 0" (parenthesized_expression "(this->field_0x20 & 2)" ( (binary_expression "this->field_0x20 & 2" (field_expression "this->field_0x20" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/output.h",0xcf,"data_size");" (call_expression "do_gold_unreachable("../../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 "lVar2 = *(long *)&this->field_0x10;" (assignment_expression "lVar2 = *(long *)&this->field_0x10" identifier = (pointer_expression "*(long *)&this->field_0x10" * (cast_expression "(long *)&this->field_0x10" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&this->field_0x10" & (field_expression "this->field_0x10" identifier -> field_identifier))))) ;) (if_statement "if ((lVar1 < 0) || (of->file_size_ < lVar2 + lVar1)) {\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }" if (parenthesized_expression "((lVar1 < 0) || (of->file_size_ < lVar2 + lVar1))" ( (binary_expression "(lVar1 < 0) || (of->file_size_ < lVar2 + lVar1)" (parenthesized_expression "(lVar1 < 0)" ( (binary_expression "lVar1 < 0" identifier < number_literal) )) || (parenthesized_expression "(of->file_size_ < lVar2 + lVar1)" ( (binary_expression "of->file_size_ < lVar2 + lVar1" (field_expression "of->file_size_" identifier -> field_identifier) < (binary_expression "lVar2 + lVar1" identifier + identifier)) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");\n  }" { comment (labeled_statement "gold::do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view");" (call_expression "do_gold_unreachable("../../gold/output.h",0x6f,"get_output_view")" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") ))) ;)) })) (expression_statement "puVar6 = of->base_ + lVar1;" (assignment_expression "puVar6 = of->base_ + lVar1" identifier = (binary_expression "of->base_ + lVar1" (field_expression "of->base_" identifier -> field_identifier) + identifier)) ;) (expression_statement "puVar6[0] = '\0';" (assignment_expression "puVar6[0] = '\0'" (subscript_expression "puVar6[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[1] = '\0';" (assignment_expression "puVar6[1] = '\0'" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[2] = '\0';" (assignment_expression "puVar6[2] = '\0'" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[3] = '\0';" (assignment_expression "puVar6[3] = '\0'" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[4] = '\0';" (assignment_expression "puVar6[4] = '\0'" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[5] = '\0';" (assignment_expression "puVar6[5] = '\0'" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[6] = '\0';" (assignment_expression "puVar6[6] = '\0'" (subscript_expression "puVar6[6]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[7] = '\0';" (assignment_expression "puVar6[7] = '\0'" (subscript_expression "puVar6[7]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[0x78] = '\0';" (assignment_expression "puVar6[0x78] = '\0'" (subscript_expression "puVar6[0x78]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[0x79] = '\0';" (assignment_expression "puVar6[0x79] = '\0'" (subscript_expression "puVar6[0x79]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[0x7a] = '\0';" (assignment_expression "puVar6[0x7a] = '\0'" (subscript_expression "puVar6[0x7a]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[0x7b] = '\0';" (assignment_expression "puVar6[0x7b] = '\0'" (subscript_expression "puVar6[0x7b]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[0x7c] = '\0';" (assignment_expression "puVar6[0x7c] = '\0'" (subscript_expression "puVar6[0x7c]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[0x7d] = '\0';" (assignment_expression "puVar6[0x7d] = '\0'" (subscript_expression "puVar6[0x7d]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[0x7e] = '\0';" (assignment_expression "puVar6[0x7e] = '\0'" (subscript_expression "puVar6[0x7e]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar6[0x7f] = '\0';" (assignment_expression "puVar6[0x7f] = '\0'" (subscript_expression "puVar6[0x7f]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar17 = (ulong *)(puVar6 + 0x80);" (assignment_expression "puVar17 = (ulong *)(puVar6 + 0x80)" identifier = (cast_expression "(ulong *)(puVar6 + 0x80)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 0x80)" ( (binary_expression "puVar6 + 0x80" identifier + number_literal) )))) ;) (expression_statement "puVar15 = (undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8);" (assignment_expression "puVar15 = (undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8)" identifier = (cast_expression "(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(puVar6 + 8) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar6 + 8) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar6 + 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar6 + 8)" ( (binary_expression "puVar6 + 8" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }" for ( (assignment_expression "uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" identifier = (call_expression "(ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" ( (binary_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8))\n                       + 0x80U >> 3" (binary_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8))\n                       + 0x80U" (parenthesized_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8))" ( (binary_expression "(int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8)" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(undefined8 *)((ulong)(puVar6 + 8) & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(puVar6 + 8) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar6 + 8) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar6 + 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar6 + 8)" ( (binary_expression "puVar6 + 8" identifier + number_literal) ))) & number_literal) ))))) )) + number_literal) >> number_literal) )))) ; (binary_expression "uVar9 != 0" identifier != number_literal) ; (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ) (compound_statement "{\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }" { (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "puVar15 = puVar15 + 1;" (assignment_expression "puVar15 = puVar15 + 1" identifier = (binary_expression "puVar15 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar13 = this->ifunc_count_ + this->count_;" (assignment_expression "uVar13 = this->ifunc_count_ + this->count_" identifier = (binary_expression "this->ifunc_count_ + this->count_" (field_expression "this->ifunc_count_" identifier -> field_identifier) + (field_expression "this->count_" identifier -> field_identifier))) ;) (expression_statement "uVar18 = 0x8000;" (assignment_expression "uVar18 = 0x8000" identifier = number_literal) ;) (if_statement "if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }" if (parenthesized_expression "(uVar13 < 0x8001)" ( (binary_expression "uVar13 < 0x8001" identifier < number_literal) )) (compound_statement "{\n    uVar18 = uVar13;\n  }" { (expression_statement "uVar18 = uVar13;" (assignment_expression "uVar18 = uVar13" identifier = identifier) ;) })) (if_statement "if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            uVar16 = (ulong)uVar18;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            uVar16 = (ulong)uVar18;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }" { (expression_statement "uVar11 = 0x80000003;" (assignment_expression "uVar11 = 0x80000003" identifier = number_literal) ;) (expression_statement "uVar12 = 0xe7ff6f30;" (assignment_expression "uVar12 = 0xe7ff6f30" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = (int)puVar17;" (assignment_expression "iVar3 = (int)puVar17" identifier = (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" identifier = identifier) ;) (while_statement "while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }" { (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)puVar10 = uVar11;" (assignment_expression "*(uint *)puVar10 = uVar11" (pointer_expression "*(uint *)puVar10" * (cast_expression "(uint *)puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar17 = puVar10 + 4;" (assignment_expression "puVar17 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) (expression_statement "*(uint *)((long)puVar10 + 4) = uVar12;" (assignment_expression "*(uint *)((long)puVar10 + 4) = uVar12" (pointer_expression "*(uint *)((long)puVar10 + 4)" * (cast_expression "(uint *)((long)puVar10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 4)" ( (binary_expression "(long)puVar10 + 4" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar10 + 1) = 1;" (assignment_expression "*(uint *)(puVar10 + 1) = 1" (pointer_expression "*(uint *)(puVar10 + 1)" * (cast_expression "(uint *)(puVar10 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 1)" ( (binary_expression "puVar10 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar10 + 0xc) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0xc) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0xc)" * (cast_expression "(uint *)((long)puVar10 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 0xc)" ( (binary_expression "(long)puVar10 + 0xc" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar10 + 2) = 1;" (assignment_expression "*(uint *)(puVar10 + 2) = 1" (pointer_expression "*(uint *)(puVar10 + 2)" * (cast_expression "(uint *)(puVar10 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar10 + 0x14) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0x14) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0x14)" * (cast_expression "(uint *)((long)puVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 0x14)" ( (binary_expression "(long)puVar10 + 0x14" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar10 + 3) = 1;" (assignment_expression "*(uint *)(puVar10 + 3) = 1" (pointer_expression "*(uint *)(puVar10 + 3)" * (cast_expression "(uint *)(puVar10 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 3)" ( (binary_expression "puVar10 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar10 + 0x1c) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0x1c) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0x1c)" * (cast_expression "(uint *)((long)puVar10 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 0x1c)" ( (binary_expression "(long)puVar10 + 0x1c" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (uVar18 <= uVar14) break;" if (parenthesized_expression "(uVar18 <= uVar14)" ( (binary_expression "uVar18 <= uVar14" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = (0x3000080 - iVar3) + (int)puVar17;" (assignment_expression "uVar12 = (0x3000080 - iVar3) + (int)puVar17" identifier = (binary_expression "(0x3000080 - iVar3) + (int)puVar17" (parenthesized_expression "(0x3000080 - iVar3)" ( (binary_expression "0x3000080 - iVar3" number_literal - identifier) )) + (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;" (assignment_expression "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000" identifier = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 * 0x1000000" identifier * number_literal))) ;) (expression_statement "uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;" (assignment_expression "uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff" identifier = (binary_expression "(uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff" (binary_expression "(uint)((iVar3 + -100) - (int)puVar17) >> 2" (call_expression "(uint)((iVar3 + -100) - (int)puVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((iVar3 + -100) - (int)puVar17)" ( (binary_expression "(iVar3 + -100) - (int)puVar17" (parenthesized_expression "(iVar3 + -100)" ( (binary_expression "iVar3 + -100" identifier + number_literal) )) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))) >> number_literal) & number_literal)) ;) (expression_statement "uVar5 = uVar12 + 0x30680000;" (assignment_expression "uVar5 = uVar12 + 0x30680000" identifier = (binary_expression "uVar12 + 0x30680000" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;" (assignment_expression "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18" identifier = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" identifier = identifier) ;) })) (if_statement "if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            uVar16 = (ulong)uVar18;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }" if (parenthesized_expression "(0x8000 < uVar13)" ( (binary_expression "0x8000 < uVar13" number_literal < identifier) )) (compound_statement "{\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            uVar16 = (ulong)uVar18;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }" { (expression_statement "uVar13 = uVar13 - 0x8000;" (assignment_expression "uVar13 = uVar13 - 0x8000" identifier = (binary_expression "uVar13 - 0x8000" identifier - number_literal)) ;) (if_statement "if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }" if (parenthesized_expression "(0x9f < uVar13)" ( (binary_expression "0x9f < uVar13" number_literal < identifier) )) (compound_statement "{\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = puVar10 + 0x1e4;" (assignment_expression "puVar10 = puVar10 + 0x1e4" identifier = (binary_expression "puVar10 + 0x1e4" identifier + number_literal)) ;) (do_statement "do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);" do (compound_statement "{\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        }" { (expression_statement "puVar17 = puVar10;" (assignment_expression "puVar17 = puVar10" identifier = identifier) ;) (expression_statement "uVar11 = 0xfcee5bc2;" (assignment_expression "uVar11 = 0xfcee5bc2" identifier = number_literal) ;) (expression_statement "puVar7 = (uint *)((long)puVar17 + -0xefc);" (assignment_expression "puVar7 = (uint *)((long)puVar17 + -0xefc)" identifier = (cast_expression "(uint *)((long)puVar17 + -0xefc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + -0xefc)" ( (binary_expression "(long)puVar17 + -0xefc" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" identifier = identifier) ;) (expression_statement "uVar12 = 0xc25beeec;" (assignment_expression "uVar12 = 0xc25beeec" identifier = number_literal) ;) (while_statement "while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }" { (expression_statement "puVar7[2] = uVar11;" (assignment_expression "puVar7[2] = uVar11" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar9 = (long)puVar6 - (long)puVar7;" (assignment_expression "uVar9 = (long)puVar6 - (long)puVar7" identifier = (binary_expression "(long)puVar6 - (long)puVar7" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "puVar7[-1] = 0xf00108a;" (assignment_expression "puVar7[-1] = 0xf00108a" (subscript_expression "puVar7[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar7 = 0x2000040;" (assignment_expression "*puVar7 = 0x2000040" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 1;" (assignment_expression "puVar7[1] = 1" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0x1c0c383;" (assignment_expression "puVar7[3] = 0x1c0c383" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[4] = 0x500109e;" (assignment_expression "puVar7[4] = 0x500109e" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;" (assignment_expression "*puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (pointer_expression "*puVar10" * identifier) = (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" ( (binary_expression "uVar9 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" ( (binary_expression "uVar9 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal))) ;) (if_statement "if (uVar12 == 0xc25be4fc) break;" if (parenthesized_expression "(uVar12 == 0xc25be4fc)" ( (binary_expression "uVar12 == 0xc25be4fc" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;" (assignment_expression "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18" identifier = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar7 = puVar7 + 6;" (assignment_expression "puVar7 = puVar7 + 6" identifier = (binary_expression "puVar7 + 6" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar12 - 0x10;" (assignment_expression "uVar12 = uVar12 - 0x10" identifier = (binary_expression "uVar12 - 0x10" identifier - number_literal)) ;) })) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar17 + 0x1e0;" (assignment_expression "puVar10 = puVar17 + 0x1e0" identifier = (binary_expression "puVar17 + 0x1e0" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar18 < uVar13 / 0xa0)" ( (binary_expression "uVar18 < uVar13 / 0xa0" identifier < (binary_expression "uVar13 / 0xa0" identifier / number_literal)) )) ;) })) (expression_statement "uVar13 = uVar13 % 0xa0;" (assignment_expression "uVar13 = uVar13 % 0xa0" identifier = (binary_expression "uVar13 % 0xa0" identifier % number_literal)) ;) (if_statement "if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            uVar16 = (ulong)uVar18;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            uVar16 = (ulong)uVar18;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }" { (expression_statement "puVar10 = puVar17 + 0x1e0;" (assignment_expression "puVar10 = puVar17 + 0x1e0" identifier = (binary_expression "puVar17 + 0x1e0" identifier + number_literal)) ;) (do_statement "do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            uVar16 = (ulong)uVar18;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);" do (compound_statement "{\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            uVar16 = (ulong)uVar18;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        }" { (expression_statement "puVar4 = puVar10 + -0x1e0;" (assignment_expression "puVar4 = puVar10 + -0x1e0" identifier = (binary_expression "puVar10 + -0x1e0" identifier + number_literal)) ;) (expression_statement "uVar18 = uVar13 * 0x18 - 4;" (assignment_expression "uVar18 = uVar13 * 0x18 - 4" identifier = (binary_expression "uVar13 * 0x18 - 4" (binary_expression "uVar13 * 0x18" identifier * number_literal) - number_literal)) ;) (do_statement "do {\n            puVar8 = puVar4;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            uVar16 = (ulong)uVar18;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);" do (compound_statement "{\n            puVar8 = puVar4;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            uVar16 = (ulong)uVar18;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;\n            puVar4 = puVar8 + 3;\n          }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "*(uint *)puVar8 = 0xf00108a;" (assignment_expression "*(uint *)puVar8 = 0xf00108a" (pointer_expression "*(uint *)puVar8" * (cast_expression "(uint *)puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(uint *)((long)puVar8 + 4) = 0x2000040;" (assignment_expression "*(uint *)((long)puVar8 + 4) = 0x2000040" (pointer_expression "*(uint *)((long)puVar8 + 4)" * (cast_expression "(uint *)((long)puVar8 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 4)" ( (binary_expression "(long)puVar8 + 4" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = (uVar18 & 0x1fff) + 0xc25be000;" (assignment_expression "uVar12 = (uVar18 & 0x1fff) + 0xc25be000" identifier = (binary_expression "(uVar18 & 0x1fff) + 0xc25be000" (parenthesized_expression "(uVar18 & 0x1fff)" ( (binary_expression "uVar18 & 0x1fff" identifier & number_literal) )) + number_literal)) ;) (expression_statement "*(uint *)(puVar8 + 1) = 1;" (assignment_expression "*(uint *)(puVar8 + 1) = 1" (pointer_expression "*(uint *)(puVar8 + 1)" * (cast_expression "(uint *)(puVar8 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 1)" ( (binary_expression "puVar8 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;" (assignment_expression "*(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18" (pointer_expression "*(uint *)((long)puVar8 + 0xc)" * (cast_expression "(uint *)((long)puVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0xc)" ( (binary_expression "(long)puVar8 + 0xc" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar18 & 0x1fff) << 0x18" (parenthesized_expression "(uVar18 & 0x1fff)" ( (binary_expression "uVar18 & 0x1fff" identifier & number_literal) )) << number_literal))) ;) (expression_statement "uVar9 = (long)puVar6 - (long)((long)puVar8 + 4);" (assignment_expression "uVar9 = (long)puVar6 - (long)((long)puVar8 + 4)" identifier = (binary_expression "(long)puVar6 - (long)((long)puVar8 + 4)" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)((long)puVar8 + 4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((long)puVar8 + 4)" ( (binary_expression "(long)puVar8 + 4" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar8 + 2) = 0x1c0c383;" (assignment_expression "*(uint *)(puVar8 + 2) = 0x1c0c383" (pointer_expression "*(uint *)(puVar8 + 2)" * (cast_expression "(uint *)(puVar8 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 2)" ( (binary_expression "puVar8 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar16 = (ulong)uVar18;" (assignment_expression "uVar16 = (ulong)uVar18" identifier = (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)((long)puVar8 + 0x14) = 0x500109e;" (assignment_expression "*(uint *)((long)puVar8 + 0x14) = 0x500109e" (pointer_expression "*(uint *)((long)puVar8 + 0x14)" * (cast_expression "(uint *)((long)puVar8 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0x14)" ( (binary_expression "(long)puVar8 + 0x14" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar18 = uVar18 - 0x10;" (assignment_expression "uVar18 = uVar18 - 0x10" identifier = (binary_expression "uVar18 - 0x10" identifier - number_literal)) ;) (expression_statement "*(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38;" (assignment_expression "*(ulong *)((long)puVar8 + uVar16 + 4) =\n                 uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38" (pointer_expression "*(ulong *)((long)puVar8 + uVar16 + 4)" * (cast_expression "(ulong *)((long)puVar8 + uVar16 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + uVar16 + 4)" ( (binary_expression "(long)puVar8 + uVar16 + 4" (binary_expression "(long)puVar8 + uVar16" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28 |\n                 uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 | (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                 (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                 (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" ( (binary_expression "uVar9 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" ( (binary_expression "uVar9 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal))) ;) (expression_statement "puVar4 = puVar8 + 3;" (assignment_expression "puVar4 = puVar8 + 3" identifier = (binary_expression "puVar8 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 + 3 != puVar10)" ( (binary_expression "puVar8 + 3 != puVar10" (binary_expression "puVar8 + 3" identifier + number_literal) != identifier) )) ;) (expression_statement "puVar10 = puVar8 + 0x1e3;" (assignment_expression "puVar10 = puVar8 + 0x1e3" identifier = (binary_expression "puVar8 + 0x1e3" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10)" ( (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10" (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0" (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0" identifier + (binary_expression "(ulong)(uVar13 - 1) * 0x1e0" (call_expression "(ulong)(uVar13 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) ))) * number_literal)) + number_literal) != identifier) )) ;) (expression_statement "puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;" (assignment_expression "puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0" identifier = (binary_expression "puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0" identifier + (binary_expression "((ulong)(uVar13 - 1) + 1) * 0x1e0" (parenthesized_expression "((ulong)(uVar13 - 1) + 1)" ( (binary_expression "(ulong)(uVar13 - 1) + 1" (call_expression "(ulong)(uVar13 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) ))) + number_literal) )) * number_literal))) ;) })) })) })) (if_statement "if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }" if (parenthesized_expression "((long)puVar17 - (long)puVar6 == lVar2)" ( (binary_expression "(long)puVar17 - (long)puVar6 == lVar2" (binary_expression "(long)puVar17 - (long)puVar6" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (labeled_statement "gold::do_gold_unreachable("../../gold/sparc.cc",0x708,"do_write");" statement_identifier : (ERROR ":" :) (expression_statement "do_gold_unreachable("../../gold/sparc.cc",0x708,"do_write");" (call_expression "do_gold_unreachable("../../gold/sparc.cc",0x708,"do_write")" identifier (argument_list "("../../gold/sparc.cc",0x708,"do_write")" ( (string_literal ""../../gold/sparc.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;)) (ERROR "}" }))
(translation_unit "void FUN_001c5df0(long param_1,long param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  int iVar3;\n  ulong *puVar4;\n  uint uVar5;\n  undefined8 *puVar6;\n  uint *puVar7;\n  ulong *puVar8;\n  ulong uVar9;\n  ulong *puVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  ulong uVar16;\n  ulong *puVar17;\n  uint uVar18;\n  \n  if ((*(byte *)(param_1 + 0x20) & 4) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }\n  lVar1 = *(long *)(param_1 + 0x18);\n  if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }\n  lVar2 = *(long *)(param_1 + 0x10);\n  if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {\n                    \n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }\n  puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));\n  *puVar6 = 0;\n  puVar6[0xf] = 0;\n  puVar17 = puVar6 + 0x10;\n  puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);\n  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }\n  uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);\n  uVar18 = 0x8000;\n  if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }\n  if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }\n  if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }\n                    \n  FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");\n}\n\n" (function_definition "void FUN_001c5df0(long param_1,long param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  int iVar3;\n  ulong *puVar4;\n  uint uVar5;\n  undefined8 *puVar6;\n  uint *puVar7;\n  ulong *puVar8;\n  ulong uVar9;\n  ulong *puVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  ulong uVar16;\n  ulong *puVar17;\n  uint uVar18;\n  \n  if ((*(byte *)(param_1 + 0x20) & 4) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }\n  lVar1 = *(long *)(param_1 + 0x18);\n  if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }\n  lVar2 = *(long *)(param_1 + 0x10);\n  if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {\n                    \n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }\n  puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));\n  *puVar6 = 0;\n  puVar6[0xf] = 0;\n  puVar17 = puVar6 + 0x10;\n  puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);\n  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }\n  uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);\n  uVar18 = 0x8000;\n  if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }\n  if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }\n  if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }\n                    \n  FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");\n}" primitive_type (function_declarator "FUN_001c5df0(long param_1,long param_2)" identifier (parameter_list "(long param_1,long param_2)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  int iVar3;\n  ulong *puVar4;\n  uint uVar5;\n  undefined8 *puVar6;\n  uint *puVar7;\n  ulong *puVar8;\n  ulong uVar9;\n  ulong *puVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  ulong uVar16;\n  ulong *puVar17;\n  uint uVar18;\n  \n  if ((*(byte *)(param_1 + 0x20) & 4) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }\n  lVar1 = *(long *)(param_1 + 0x18);\n  if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }\n  lVar2 = *(long *)(param_1 + 0x10);\n  if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {\n                    \n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }\n  puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));\n  *puVar6 = 0;\n  puVar6[0xf] = 0;\n  puVar17 = puVar6 + 0x10;\n  puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);\n  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }\n  uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);\n  uVar18 = 0x8000;\n  if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }\n  if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }\n  if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }\n                    \n  FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ulong *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "undefined8 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "uint *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "ulong *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "undefined8 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "ulong *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (if_statement "if ((*(byte *)(param_1 + 0x20) & 4) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 4) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 4)" ( (binary_expression "*(byte *)(param_1 + 0x20) & 4" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }" { (expression_statement "FUN_00352af0("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_00352af0("../../gold/output.h",0xe3,"offset")" identifier (argument_list "("../../gold/output.h",0xe3,"offset")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""offset"" " string_content ") ))) ;) })) (expression_statement "lVar1 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x18)" identifier = (pointer_expression "*(long *)(param_1 + 0x18)" * (cast_expression "(long *)(param_1 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18)" ( (binary_expression "param_1 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }" if (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 2) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 2)" ( (binary_expression "*(byte *)(param_1 + 0x20) & 2" (pointer_expression "*(byte *)(param_1 + 0x20)" * (cast_expression "(byte *)(param_1 + 0x20)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }" { (expression_statement "FUN_00352af0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00352af0("../../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 "lVar2 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x10)" identifier = (pointer_expression "*(long *)(param_1 + 0x10)" * (cast_expression "(long *)(param_1 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {\n                    \n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }" if (parenthesized_expression "((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1))" ( (binary_expression "(lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)" (parenthesized_expression "(lVar1 < 0)" ( (binary_expression "lVar1 < 0" identifier < number_literal) )) || (parenthesized_expression "(*(long *)(param_2 + 0x10) < lVar2 + lVar1)" ( (binary_expression "*(long *)(param_2 + 0x10) < lVar2 + lVar1" (pointer_expression "*(long *)(param_2 + 0x10)" * (cast_expression "(long *)(param_2 + 0x10)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x10)" ( (binary_expression "param_2 + 0x10" identifier + number_literal) )))) < (binary_expression "lVar2 + lVar1" identifier + identifier)) ))) )) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }" { (expression_statement "FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");" (call_expression "FUN_00352af0("../../gold/output.h",0x6f,"get_output_view")" identifier (argument_list "("../../gold/output.h",0x6f,"get_output_view")" ( (string_literal ""../../gold/output.h"" " string_content ") , number_literal , (string_literal ""get_output_view"" " string_content ") ))) ;) })) (expression_statement "puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));" (assignment_expression "puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18))" identifier = (cast_expression "(undefined8 *)(lVar1 + *(long *)(param_2 + 0x18))" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar1 + *(long *)(param_2 + 0x18))" ( (binary_expression "lVar1 + *(long *)(param_2 + 0x18)" identifier + (pointer_expression "*(long *)(param_2 + 0x18)" * (cast_expression "(long *)(param_2 + 0x18)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x18)" ( (binary_expression "param_2 + 0x18" identifier + number_literal) ))))) )))) ;) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" * identifier) = number_literal) ;) (expression_statement "puVar6[0xf] = 0;" (assignment_expression "puVar6[0xf] = 0" (subscript_expression "puVar6[0xf]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar17 = puVar6 + 0x10;" (assignment_expression "puVar17 = puVar6 + 0x10" identifier = (binary_expression "puVar6 + 0x10" identifier + number_literal)) ;) (expression_statement "puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);" (assignment_expression "puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" identifier = (cast_expression "(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar6 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar6 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar6 + 1)" ( (binary_expression "puVar6 + 1" identifier + number_literal) ))) & number_literal) )))) ;) (for_statement "for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }" for ( (assignment_expression "uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" identifier = (call_expression "(ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" ( (binary_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3" (binary_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U" (parenthesized_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))" ( (binary_expression "(int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" (cast_expression "(int)puVar6" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "int" primitive_type) ) (cast_expression "(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" ( (binary_expression "(ulong)(puVar6 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar6 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(puVar6 + 1)" ( (binary_expression "puVar6 + 1" identifier + number_literal) ))) & number_literal) ))))) )) + number_literal) >> number_literal) )))) ; (binary_expression "uVar9 != 0" identifier != number_literal) ; (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ) (compound_statement "{\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }" { (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" * identifier) = number_literal) ;) (expression_statement "puVar15 = puVar15 + 1;" (assignment_expression "puVar15 = puVar15 + 1" identifier = (binary_expression "puVar15 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);" (assignment_expression "uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48)" identifier = (binary_expression "*(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48)" (pointer_expression "*(int *)(param_1 + 0x4c)" * (cast_expression "(int *)(param_1 + 0x4c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) )))) + (pointer_expression "*(int *)(param_1 + 0x48)" * (cast_expression "(int *)(param_1 + 0x48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) )))))) ;) (expression_statement "uVar18 = 0x8000;" (assignment_expression "uVar18 = 0x8000" identifier = number_literal) ;) (if_statement "if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }" if (parenthesized_expression "(uVar13 < 0x8001)" ( (binary_expression "uVar13 < 0x8001" identifier < number_literal) )) (compound_statement "{\n    uVar18 = uVar13;\n  }" { (expression_statement "uVar18 = uVar13;" (assignment_expression "uVar18 = uVar13" identifier = identifier) ;) })) (if_statement "if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }" { (expression_statement "uVar11 = 0x80000003;" (assignment_expression "uVar11 = 0x80000003" identifier = number_literal) ;) (expression_statement "uVar12 = 0xe7ff6f30;" (assignment_expression "uVar12 = 0xe7ff6f30" identifier = number_literal) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = (int)puVar17;" (assignment_expression "iVar3 = (int)puVar17" identifier = (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" identifier = identifier) ;) (while_statement "while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }" { (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "*(uint *)puVar10 = uVar11;" (assignment_expression "*(uint *)puVar10 = uVar11" (pointer_expression "*(uint *)puVar10" * (cast_expression "(uint *)puVar10" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "puVar17 = puVar10 + 4;" (assignment_expression "puVar17 = puVar10 + 4" identifier = (binary_expression "puVar10 + 4" identifier + number_literal)) ;) (expression_statement "*(uint *)((long)puVar10 + 4) = uVar12;" (assignment_expression "*(uint *)((long)puVar10 + 4) = uVar12" (pointer_expression "*(uint *)((long)puVar10 + 4)" * (cast_expression "(uint *)((long)puVar10 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 4)" ( (binary_expression "(long)puVar10 + 4" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(uint *)(puVar10 + 1) = 1;" (assignment_expression "*(uint *)(puVar10 + 1) = 1" (pointer_expression "*(uint *)(puVar10 + 1)" * (cast_expression "(uint *)(puVar10 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 1)" ( (binary_expression "puVar10 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar10 + 0xc) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0xc) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0xc)" * (cast_expression "(uint *)((long)puVar10 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 0xc)" ( (binary_expression "(long)puVar10 + 0xc" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar10 + 2) = 1;" (assignment_expression "*(uint *)(puVar10 + 2) = 1" (pointer_expression "*(uint *)(puVar10 + 2)" * (cast_expression "(uint *)(puVar10 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar10 + 0x14) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0x14) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0x14)" * (cast_expression "(uint *)((long)puVar10 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 0x14)" ( (binary_expression "(long)puVar10 + 0x14" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(puVar10 + 3) = 1;" (assignment_expression "*(uint *)(puVar10 + 3) = 1" (pointer_expression "*(uint *)(puVar10 + 3)" * (cast_expression "(uint *)(puVar10 + 3)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 3)" ( (binary_expression "puVar10 + 3" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar10 + 0x1c) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0x1c) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0x1c)" * (cast_expression "(uint *)((long)puVar10 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar10 + 0x1c)" ( (binary_expression "(long)puVar10 + 0x1c" (cast_expression "(long)puVar10" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (if_statement "if (uVar18 <= uVar14) break;" if (parenthesized_expression "(uVar18 <= uVar14)" ( (binary_expression "uVar18 <= uVar14" identifier <= identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = (0x3000080 - iVar3) + (int)puVar17;" (assignment_expression "uVar12 = (0x3000080 - iVar3) + (int)puVar17" identifier = (binary_expression "(0x3000080 - iVar3) + (int)puVar17" (parenthesized_expression "(0x3000080 - iVar3)" ( (binary_expression "0x3000080 - iVar3" number_literal - identifier) )) + (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;" (assignment_expression "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000" identifier = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 * 0x1000000" identifier * number_literal))) ;) (expression_statement "uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;" (assignment_expression "uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff" identifier = (binary_expression "(uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff" (binary_expression "(uint)((iVar3 + -100) - (int)puVar17) >> 2" (call_expression "(uint)((iVar3 + -100) - (int)puVar17)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((iVar3 + -100) - (int)puVar17)" ( (binary_expression "(iVar3 + -100) - (int)puVar17" (parenthesized_expression "(iVar3 + -100)" ( (binary_expression "iVar3 + -100" identifier + number_literal) )) - (cast_expression "(int)puVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))) >> number_literal) & number_literal)) ;) (expression_statement "uVar5 = uVar12 + 0x30680000;" (assignment_expression "uVar5 = uVar12 + 0x30680000" identifier = (binary_expression "uVar12 + 0x30680000" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;" (assignment_expression "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18" identifier = (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" ( (binary_expression "uVar5 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" ( (binary_expression "uVar5 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" identifier = identifier) ;) })) (if_statement "if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }" if (parenthesized_expression "(0x8000 < uVar13)" ( (binary_expression "0x8000 < uVar13" number_literal < identifier) )) (compound_statement "{\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }" { (expression_statement "uVar13 = uVar13 - 0x8000;" (assignment_expression "uVar13 = uVar13 - 0x8000" identifier = (binary_expression "uVar13 - 0x8000" identifier - number_literal)) ;) (if_statement "if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }" if (parenthesized_expression "(0x9f < uVar13)" ( (binary_expression "0x9f < uVar13" number_literal < identifier) )) (compound_statement "{\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "puVar10 = puVar10 + 0x1e4;" (assignment_expression "puVar10 = puVar10 + 0x1e4" identifier = (binary_expression "puVar10 + 0x1e4" identifier + number_literal)) ;) (do_statement "do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);" do (compound_statement "{\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        }" { (expression_statement "puVar17 = puVar10;" (assignment_expression "puVar17 = puVar10" identifier = identifier) ;) (expression_statement "uVar11 = 0xfcee5bc2;" (assignment_expression "uVar11 = 0xfcee5bc2" identifier = number_literal) ;) (expression_statement "puVar7 = (uint *)((long)puVar17 + -0xefc);" (assignment_expression "puVar7 = (uint *)((long)puVar17 + -0xefc)" identifier = (cast_expression "(uint *)((long)puVar17 + -0xefc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar17 + -0xefc)" ( (binary_expression "(long)puVar17 + -0xefc" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" identifier = identifier) ;) (expression_statement "uVar12 = 0xc25beeec;" (assignment_expression "uVar12 = 0xc25beeec" identifier = number_literal) ;) (while_statement "while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }" { (expression_statement "puVar7[2] = uVar11;" (assignment_expression "puVar7[2] = uVar11" (subscript_expression "puVar7[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar9 = (long)puVar6 - (long)puVar7;" (assignment_expression "uVar9 = (long)puVar6 - (long)puVar7" identifier = (binary_expression "(long)puVar6 - (long)puVar7" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "puVar7[-1] = 0xf00108a;" (assignment_expression "puVar7[-1] = 0xf00108a" (subscript_expression "puVar7[-1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar7 = 0x2000040;" (assignment_expression "*puVar7 = 0x2000040" (pointer_expression "*puVar7" * identifier) = number_literal) ;) (expression_statement "puVar7[1] = 1;" (assignment_expression "puVar7[1] = 1" (subscript_expression "puVar7[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[3] = 0x1c0c383;" (assignment_expression "puVar7[3] = 0x1c0c383" (subscript_expression "puVar7[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar7[4] = 0x500109e;" (assignment_expression "puVar7[4] = 0x500109e" (subscript_expression "puVar7[4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;" (assignment_expression "*puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (pointer_expression "*puVar10" * identifier) = (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" ( (binary_expression "uVar9 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" ( (binary_expression "uVar9 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" ( (binary_expression "uVar9 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" ( (binary_expression "uVar9 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" ( (binary_expression "uVar9 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" ( (binary_expression "uVar9 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar9 << 0x38" identifier << number_literal))) ;) (if_statement "if (uVar12 == 0xc25be4fc) break;" if (parenthesized_expression "(uVar12 == 0xc25be4fc)" ( (binary_expression "uVar12 == 0xc25be4fc" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;" (assignment_expression "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18" identifier = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal))) ;) (expression_statement "puVar7 = puVar7 + 6;" (assignment_expression "puVar7 = puVar7 + 6" identifier = (binary_expression "puVar7 + 6" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" identifier = (binary_expression "puVar10 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = uVar12 - 0x10;" (assignment_expression "uVar12 = uVar12 - 0x10" identifier = (binary_expression "uVar12 - 0x10" identifier - number_literal)) ;) })) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" identifier = (binary_expression "uVar18 + 1" identifier + number_literal)) ;) (expression_statement "puVar10 = puVar17 + 0x1e0;" (assignment_expression "puVar10 = puVar17 + 0x1e0" identifier = (binary_expression "puVar17 + 0x1e0" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar18 < uVar13 / 0xa0)" ( (binary_expression "uVar18 < uVar13 / 0xa0" identifier < (binary_expression "uVar13 / 0xa0" identifier / number_literal)) )) ;) })) (expression_statement "uVar13 = uVar13 % 0xa0;" (assignment_expression "uVar13 = uVar13 % 0xa0" identifier = (binary_expression "uVar13 % 0xa0" identifier % number_literal)) ;) (if_statement "if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }" if (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }" { (expression_statement "puVar10 = puVar17 + 0x1e0;" (assignment_expression "puVar10 = puVar17 + 0x1e0" identifier = (binary_expression "puVar17 + 0x1e0" identifier + number_literal)) ;) (do_statement "do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);" do (compound_statement "{\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        }" { (expression_statement "puVar4 = puVar10 + -0x1e0;" (assignment_expression "puVar4 = puVar10 + -0x1e0" identifier = (binary_expression "puVar10 + -0x1e0" identifier + number_literal)) ;) (expression_statement "uVar18 = uVar13 * 0x18 - 4;" (assignment_expression "uVar18 = uVar13 * 0x18 - 4" identifier = (binary_expression "uVar13 * 0x18 - 4" (binary_expression "uVar13 * 0x18" identifier * number_literal) - number_literal)) ;) (do_statement "do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);" do (compound_statement "{\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "uVar9 = (ulong)uVar18;" (assignment_expression "uVar9 = (ulong)uVar18" identifier = (cast_expression "(ulong)uVar18" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "*(uint *)puVar8 = 0xf00108a;" (assignment_expression "*(uint *)puVar8 = 0xf00108a" (pointer_expression "*(uint *)puVar8" * (cast_expression "(uint *)puVar8" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "*(uint *)((long)puVar8 + 4) = 0x2000040;" (assignment_expression "*(uint *)((long)puVar8 + 4) = 0x2000040" (pointer_expression "*(uint *)((long)puVar8 + 4)" * (cast_expression "(uint *)((long)puVar8 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 4)" ( (binary_expression "(long)puVar8 + 4" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar12 = (uVar18 & 0x1fff) + 0xc25be000;" (assignment_expression "uVar12 = (uVar18 & 0x1fff) + 0xc25be000" identifier = (binary_expression "(uVar18 & 0x1fff) + 0xc25be000" (parenthesized_expression "(uVar18 & 0x1fff)" ( (binary_expression "uVar18 & 0x1fff" identifier & number_literal) )) + number_literal)) ;) (expression_statement "*(uint *)(puVar8 + 1) = 1;" (assignment_expression "*(uint *)(puVar8 + 1) = 1" (pointer_expression "*(uint *)(puVar8 + 1)" * (cast_expression "(uint *)(puVar8 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 1)" ( (binary_expression "puVar8 + 1" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;" (assignment_expression "*(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18" (pointer_expression "*(uint *)((long)puVar8 + 0xc)" * (cast_expression "(uint *)((long)puVar8 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0xc)" ( (binary_expression "(long)puVar8 + 0xc" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar18 & 0x1fff) << 0x18" (parenthesized_expression "(uVar18 & 0x1fff)" ( (binary_expression "uVar18 & 0x1fff" identifier & number_literal) )) << number_literal))) ;) (expression_statement "uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);" (assignment_expression "uVar16 = (long)puVar6 - (long)((long)puVar8 + 4)" identifier = (binary_expression "(long)puVar6 - (long)((long)puVar8 + 4)" (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)((long)puVar8 + 4)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((long)puVar8 + 4)" ( (binary_expression "(long)puVar8 + 4" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ))))) ;) (expression_statement "*(uint *)(puVar8 + 2) = 0x1c0c383;" (assignment_expression "*(uint *)(puVar8 + 2) = 0x1c0c383" (pointer_expression "*(uint *)(puVar8 + 2)" * (cast_expression "(uint *)(puVar8 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 2)" ( (binary_expression "puVar8 + 2" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)((long)puVar8 + 0x14) = 0x500109e;" (assignment_expression "*(uint *)((long)puVar8 + 0x14) = 0x500109e" (pointer_expression "*(uint *)((long)puVar8 + 0x14)" * (cast_expression "(uint *)((long)puVar8 + 0x14)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + 0x14)" ( (binary_expression "(long)puVar8 + 0x14" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "uVar18 = uVar18 - 0x10;" (assignment_expression "uVar18 = uVar18 - 0x10" identifier = (binary_expression "uVar18 - 0x10" identifier - number_literal)) ;) (expression_statement "*(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;" (assignment_expression "*(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38" (pointer_expression "*(ulong *)((long)puVar8 + uVar9 + 4)" * (cast_expression "(ulong *)((long)puVar8 + uVar9 + 4)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar8 + uVar9 + 4)" ( (binary_expression "(long)puVar8 + uVar9 + 4" (binary_expression "(long)puVar8 + uVar9" (cast_expression "(long)puVar8" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) = (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28" (binary_expression "uVar16 >> 0x38" identifier >> number_literal) | (binary_expression "(uVar16 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar16 & 0xff000000000000)" ( (binary_expression "uVar16 & 0xff000000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar16 & 0xff0000000000)" ( (binary_expression "uVar16 & 0xff0000000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff00000000) >> 8" (parenthesized_expression "(uVar16 & 0xff00000000)" ( (binary_expression "uVar16 & 0xff00000000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar16 & 0xff000000) << 8" (parenthesized_expression "(uVar16 & 0xff000000)" ( (binary_expression "uVar16 & 0xff000000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar16 & 0xff0000) << 0x18" (parenthesized_expression "(uVar16 & 0xff0000)" ( (binary_expression "uVar16 & 0xff0000" identifier & number_literal) )) << number_literal)) | (binary_expression "(uVar16 & 0xff00) << 0x28" (parenthesized_expression "(uVar16 & 0xff00)" ( (binary_expression "uVar16 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar16 << 0x38" identifier << number_literal))) ;) (expression_statement "puVar4 = puVar8 + 3;" (assignment_expression "puVar4 = puVar8 + 3" identifier = (binary_expression "puVar8 + 3" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar8 + 3 != puVar10)" ( (binary_expression "puVar8 + 3 != puVar10" (binary_expression "puVar8 + 3" identifier + number_literal) != identifier) )) ;) (expression_statement "puVar10 = puVar8 + 0x1e3;" (assignment_expression "puVar10 = puVar8 + 0x1e3" identifier = (binary_expression "puVar8 + 0x1e3" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10)" ( (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10" (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0" (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0" identifier + (binary_expression "(ulong)(uVar13 - 1) * 0x1e0" (call_expression "(ulong)(uVar13 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) ))) * number_literal)) + number_literal) != identifier) )) ;) (expression_statement "puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;" (assignment_expression "puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0" identifier = (binary_expression "puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0" identifier + (binary_expression "((ulong)(uVar13 - 1) + 1) * 0x1e0" (parenthesized_expression "((ulong)(uVar13 - 1) + 1)" ( (binary_expression "(ulong)(uVar13 - 1) + 1" (call_expression "(ulong)(uVar13 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar13 - 1)" ( (binary_expression "uVar13 - 1" identifier - number_literal) ))) + number_literal) )) * number_literal))) ;) })) })) })) (if_statement "if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }" if (parenthesized_expression "((long)puVar17 - (long)puVar6 == lVar2)" ( (binary_expression "(long)puVar17 - (long)puVar6 == lVar2" (binary_expression "(long)puVar17 - (long)puVar6" (cast_expression "(long)puVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)puVar6" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) == identifier) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");" (call_expression "FUN_00352af0("../../gold/sparc.cc",0x708,"do_write")" identifier (argument_list "("../../gold/sparc.cc",0x708,"do_write")" ( (string_literal ""../../gold/sparc.cc"" " string_content ") , number_literal , (string_literal ""do_write"" " string_content ") ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * 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 * IDENT) ;) (declaration 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 IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < (binary_expression IDENT + IDENT)) ))) )) (compound_statement { (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) )))) ;) (for_statement for ( (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) & LIT) ))))) )) + LIT) >> LIT) )))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT - LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (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) )))) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_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 (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression LIT - IDENT) )) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) >> LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT / LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) - LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 (sized_type_specifier long)) ) IDENT) + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 (sized_type_specifier long)) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT)) + LIT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) + LIT) )) * LIT))) ;) })) })) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) == IDENT) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })))
(function_definition "void FUN_001c5df0(long param_1,long param_2)\n\n{\n  long lVar1;\n  long lVar2;\n  int iVar3;\n  ulong *puVar4;\n  uint uVar5;\n  undefined8 *puVar6;\n  uint *puVar7;\n  ulong *puVar8;\n  ulong uVar9;\n  ulong *puVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  ulong uVar16;\n  ulong *puVar17;\n  uint uVar18;\n  \n  if ((*(byte *)(param_1 + 0x20) & 4) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }\n  lVar1 = *(long *)(param_1 + 0x18);\n  if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }\n  lVar2 = *(long *)(param_1 + 0x10);\n  if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {\n                    \n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }\n  puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));\n  *puVar6 = 0;\n  puVar6[0xf] = 0;\n  puVar17 = puVar6 + 0x10;\n  puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);\n  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }\n  uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);\n  uVar18 = 0x8000;\n  if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }\n  if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }\n  if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }\n                    \n  FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");\n}" (primitive_type "void") (function_declarator "FUN_001c5df0(long param_1,long param_2)" (identifier "FUN_001c5df0") (parameter_list "(long param_1,long param_2)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) () ")"))) (compound_statement "{\n  long lVar1;\n  long lVar2;\n  int iVar3;\n  ulong *puVar4;\n  uint uVar5;\n  undefined8 *puVar6;\n  uint *puVar7;\n  ulong *puVar8;\n  ulong uVar9;\n  ulong *puVar10;\n  uint uVar11;\n  uint uVar12;\n  uint uVar13;\n  uint uVar14;\n  undefined8 *puVar15;\n  ulong uVar16;\n  ulong *puVar17;\n  uint uVar18;\n  \n  if ((*(byte *)(param_1 + 0x20) & 4) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }\n  lVar1 = *(long *)(param_1 + 0x18);\n  if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }\n  lVar2 = *(long *)(param_1 + 0x10);\n  if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {\n                    \n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }\n  puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));\n  *puVar6 = 0;\n  puVar6[0xf] = 0;\n  puVar17 = puVar6 + 0x10;\n  puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);\n  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }\n  uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);\n  uVar18 = 0x8000;\n  if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }\n  if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }\n  if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }\n                    \n  FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");\n}" ({ "{") (declaration "long lVar1;" (sized_type_specifier "long" (long "long")) (identifier "lVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "ulong *puVar4;" (type_identifier "ulong") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "undefined8 *puVar6;" (type_identifier "undefined8") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "uint *puVar7;" (type_identifier "uint") (pointer_declarator "*puVar7" (* "*") (identifier "puVar7")) (; ";")) (declaration "ulong *puVar8;" (type_identifier "ulong") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "ulong *puVar10;" (type_identifier "ulong") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined8 *puVar15;" (type_identifier "undefined8") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "ulong uVar16;" (type_identifier "ulong") (identifier "uVar16") (; ";")) (declaration "ulong *puVar17;" (type_identifier "ulong") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x20) & 4) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 4) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x20) & 4) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 4)" (( "(") (binary_expression "*(byte *)(param_1 + 0x20) & 4" (pointer_expression "*(byte *)(param_1 + 0x20)" (* "*") (cast_expression "(byte *)(param_1 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/output.h",0xe3,"offset");\n  }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.h",0xe3,"offset");" (call_expression "FUN_00352af0("../../gold/output.h",0xe3,"offset")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.h",0xe3,"offset")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0xe3") (, ",") (string_literal ""offset"" (" """) (string_content "offset") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "lVar1 = *(long *)(param_1 + 0x18);" (assignment_expression "lVar1 = *(long *)(param_1 + 0x18)" (identifier "lVar1") (= "=") (pointer_expression "*(long *)(param_1 + 0x18)" (* "*") (cast_expression "(long *)(param_1 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18)" (( "(") (binary_expression "param_1 + 0x18" (identifier "param_1") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x20) & 2) == 0) {\n                    \n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x20) & 2) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x20) & 2) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x20) & 2)" (( "(") (binary_expression "*(byte *)(param_1 + 0x20) & 2" (pointer_expression "*(byte *)(param_1 + 0x20)" (* "*") (cast_expression "(byte *)(param_1 + 0x20)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")")))) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/output.h",0xcf,"data_size");\n  }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.h",0xcf,"data_size");" (call_expression "FUN_00352af0("../../gold/output.h",0xcf,"data_size")" (identifier "FUN_00352af0") (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 "lVar2 = *(long *)(param_1 + 0x10);" (assignment_expression "lVar2 = *(long *)(param_1 + 0x10)" (identifier "lVar2") (= "=") (pointer_expression "*(long *)(param_1 + 0x10)" (* "*") (cast_expression "(long *)(param_1 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {\n                    \n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }" (if "if") (parenthesized_expression "((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1))" (( "(") (binary_expression "(lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)" (parenthesized_expression "(lVar1 < 0)" (( "(") (binary_expression "lVar1 < 0" (identifier "lVar1") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(long *)(param_2 + 0x10) < lVar2 + lVar1)" (( "(") (binary_expression "*(long *)(param_2 + 0x10) < lVar2 + lVar1" (pointer_expression "*(long *)(param_2 + 0x10)" (* "*") (cast_expression "(long *)(param_2 + 0x10)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x10)" (( "(") (binary_expression "param_2 + 0x10" (identifier "param_2") (+ "+") (number_literal "0x10")) () ")")))) (< "<") (binary_expression "lVar2 + lVar1" (identifier "lVar2") (+ "+") (identifier "lVar1"))) () ")"))) () ")")) (compound_statement "{\n                    \n    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");\n  }" ({ "{") (expression_statement "FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");" (call_expression "FUN_00352af0("../../gold/output.h",0x6f,"get_output_view")" (identifier "FUN_00352af0") (argument_list "("../../gold/output.h",0x6f,"get_output_view")" (( "(") (string_literal ""../../gold/output.h"" (" """) (string_content "../../gold/output.h") (" """)) (, ",") (number_literal "0x6f") (, ",") (string_literal ""get_output_view"" (" """) (string_content "get_output_view") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));" (assignment_expression "puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18))" (identifier "puVar6") (= "=") (cast_expression "(undefined8 *)(lVar1 + *(long *)(param_2 + 0x18))" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar1 + *(long *)(param_2 + 0x18))" (( "(") (binary_expression "lVar1 + *(long *)(param_2 + 0x18)" (identifier "lVar1") (+ "+") (pointer_expression "*(long *)(param_2 + 0x18)" (* "*") (cast_expression "(long *)(param_2 + 0x18)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x18)" (( "(") (binary_expression "param_2 + 0x18" (identifier "param_2") (+ "+") (number_literal "0x18")) () ")"))))) () ")")))) (; ";")) (expression_statement "*puVar6 = 0;" (assignment_expression "*puVar6 = 0" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar6[0xf] = 0;" (assignment_expression "puVar6[0xf] = 0" (subscript_expression "puVar6[0xf]" (identifier "puVar6") ([ "[") (number_literal "0xf") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar17 = puVar6 + 0x10;" (assignment_expression "puVar17 = puVar6 + 0x10" (identifier "puVar17") (= "=") (binary_expression "puVar6 + 0x10" (identifier "puVar6") (+ "+") (number_literal "0x10"))) (; ";")) (expression_statement "puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);" (assignment_expression "puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" (identifier "puVar15") (= "=") (cast_expression "(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" (( "(") (binary_expression "(ulong)(puVar6 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar6 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(puVar6 + 1)" (( "(") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffffffffff8")) () ")")))) (; ";")) (for_statement "for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }" (for "for") (( "(") (assignment_expression "uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" (identifier "uVar9") (= "=") (call_expression "(ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3)" (( "(") (binary_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U >> 3" (binary_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))\n                       + 0x80U" (parenthesized_expression "((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))" (( "(") (binary_expression "(int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" (cast_expression "(int)puVar6" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar6")) (- "-") (cast_expression "(int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulong)(puVar6 + 1) & 0xfffffffffffffff8)" (( "(") (binary_expression "(ulong)(puVar6 + 1) & 0xfffffffffffffff8" (call_expression "(ulong)(puVar6 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(puVar6 + 1)" (( "(") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1")) () ")"))) (& "&") (number_literal "0xfffffffffffffff8")) () ")"))))) () ")")) (+ "+") (number_literal "0x80U")) (>> ">>") (number_literal "3")) () ")")))) (; ";") (binary_expression "uVar9 != 0" (identifier "uVar9") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "uVar9 = uVar9 - 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) () ")") (compound_statement "{\n    *puVar15 = 0;\n    puVar15 = puVar15 + 1;\n  }" ({ "{") (expression_statement "*puVar15 = 0;" (assignment_expression "*puVar15 = 0" (pointer_expression "*puVar15" (* "*") (identifier "puVar15")) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar15 = puVar15 + 1;" (assignment_expression "puVar15 = puVar15 + 1" (identifier "puVar15") (= "=") (binary_expression "puVar15 + 1" (identifier "puVar15") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);" (assignment_expression "uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48)" (identifier "uVar13") (= "=") (binary_expression "*(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48)" (pointer_expression "*(int *)(param_1 + 0x4c)" (* "*") (cast_expression "(int *)(param_1 + 0x4c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")")))) (+ "+") (pointer_expression "*(int *)(param_1 + 0x48)" (* "*") (cast_expression "(int *)(param_1 + 0x48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")")))))) (; ";")) (expression_statement "uVar18 = 0x8000;" (assignment_expression "uVar18 = 0x8000" (identifier "uVar18") (= "=") (number_literal "0x8000")) (; ";")) (if_statement "if (uVar13 < 0x8001) {\n    uVar18 = uVar13;\n  }" (if "if") (parenthesized_expression "(uVar13 < 0x8001)" (( "(") (binary_expression "uVar13 < 0x8001" (identifier "uVar13") (< "<") (number_literal "0x8001")) () ")")) (compound_statement "{\n    uVar18 = uVar13;\n  }" ({ "{") (expression_statement "uVar18 = uVar13;" (assignment_expression "uVar18 = uVar13" (identifier "uVar18") (= "=") (identifier "uVar13")) (; ";")) (} "}"))) (if_statement "if (uVar13 != 0) {\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar11 = 0x80000003;\n    uVar12 = 0xe7ff6f30;\n    uVar14 = 0;\n    iVar3 = (int)puVar17;\n    puVar10 = puVar17;\n    while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }\n    if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }\n  }" ({ "{") (expression_statement "uVar11 = 0x80000003;" (assignment_expression "uVar11 = 0x80000003" (identifier "uVar11") (= "=") (number_literal "0x80000003")) (; ";")) (expression_statement "uVar12 = 0xe7ff6f30;" (assignment_expression "uVar12 = 0xe7ff6f30" (identifier "uVar12") (= "=") (number_literal "0xe7ff6f30")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = (int)puVar17;" (assignment_expression "iVar3 = (int)puVar17" (identifier "iVar3") (= "=") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17"))) (; ";")) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" (identifier "puVar10") (= "=") (identifier "puVar17")) (; ";")) (while_statement "while( true ) {\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      uVar14 = uVar14 + 1;\n      *(uint *)puVar10 = uVar11;\n      puVar17 = puVar10 + 4;\n      *(uint *)((long)puVar10 + 4) = uVar12;\n      *(uint *)(puVar10 + 1) = 1;\n      *(uint *)((long)puVar10 + 0xc) = 1;\n      *(uint *)(puVar10 + 2) = 1;\n      *(uint *)((long)puVar10 + 0x14) = 1;\n      *(uint *)(puVar10 + 3) = 1;\n      *(uint *)((long)puVar10 + 0x1c) = 1;\n      if (uVar18 <= uVar14) break;\n      uVar12 = (0x3000080 - iVar3) + (int)puVar17;\n      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;\n      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;\n      uVar5 = uVar12 + 0x30680000;\n      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;\n      puVar10 = puVar17;\n    }" ({ "{") (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" (identifier "uVar14") (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(uint *)puVar10 = uVar11;" (assignment_expression "*(uint *)puVar10 = uVar11" (pointer_expression "*(uint *)puVar10" (* "*") (cast_expression "(uint *)puVar10" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar10"))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar17 = puVar10 + 4;" (assignment_expression "puVar17 = puVar10 + 4" (identifier "puVar17") (= "=") (binary_expression "puVar10 + 4" (identifier "puVar10") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*(uint *)((long)puVar10 + 4) = uVar12;" (assignment_expression "*(uint *)((long)puVar10 + 4) = uVar12" (pointer_expression "*(uint *)((long)puVar10 + 4)" (* "*") (cast_expression "(uint *)((long)puVar10 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar10 + 4)" (( "(") (binary_expression "(long)puVar10 + 4" (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "*(uint *)(puVar10 + 1) = 1;" (assignment_expression "*(uint *)(puVar10 + 1) = 1" (pointer_expression "*(uint *)(puVar10 + 1)" (* "*") (cast_expression "(uint *)(puVar10 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 1)" (( "(") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint *)((long)puVar10 + 0xc) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0xc) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0xc)" (* "*") (cast_expression "(uint *)((long)puVar10 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar10 + 0xc)" (( "(") (binary_expression "(long)puVar10 + 0xc" (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint *)(puVar10 + 2) = 1;" (assignment_expression "*(uint *)(puVar10 + 2) = 1" (pointer_expression "*(uint *)(puVar10 + 2)" (* "*") (cast_expression "(uint *)(puVar10 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 2)" (( "(") (binary_expression "puVar10 + 2" (identifier "puVar10") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint *)((long)puVar10 + 0x14) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0x14) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0x14)" (* "*") (cast_expression "(uint *)((long)puVar10 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar10 + 0x14)" (( "(") (binary_expression "(long)puVar10 + 0x14" (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint *)(puVar10 + 3) = 1;" (assignment_expression "*(uint *)(puVar10 + 3) = 1" (pointer_expression "*(uint *)(puVar10 + 3)" (* "*") (cast_expression "(uint *)(puVar10 + 3)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + 3)" (( "(") (binary_expression "puVar10 + 3" (identifier "puVar10") (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint *)((long)puVar10 + 0x1c) = 1;" (assignment_expression "*(uint *)((long)puVar10 + 0x1c) = 1" (pointer_expression "*(uint *)((long)puVar10 + 0x1c)" (* "*") (cast_expression "(uint *)((long)puVar10 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar10 + 0x1c)" (( "(") (binary_expression "(long)puVar10 + 0x1c" (cast_expression "(long)puVar10" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar10")) (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (if_statement "if (uVar18 <= uVar14) break;" (if "if") (parenthesized_expression "(uVar18 <= uVar14)" (( "(") (binary_expression "uVar18 <= uVar14" (identifier "uVar18") (<= "<=") (identifier "uVar14")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar12 = (0x3000080 - iVar3) + (int)puVar17;" (assignment_expression "uVar12 = (0x3000080 - iVar3) + (int)puVar17" (identifier "uVar12") (= "=") (binary_expression "(0x3000080 - iVar3) + (int)puVar17" (parenthesized_expression "(0x3000080 - iVar3)" (( "(") (binary_expression "0x3000080 - iVar3" (number_literal "0x3000080") (- "-") (identifier "iVar3")) () ")")) (+ "+") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17")))) (; ";")) (expression_statement "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000;" (assignment_expression "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000" (identifier "uVar11") (= "=") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n               uVar12 * 0x1000000" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 * 0x1000000" (identifier "uVar12") (* "*") (number_literal "0x1000000")))) (; ";")) (expression_statement "uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;" (assignment_expression "uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff" (identifier "uVar12") (= "=") (binary_expression "(uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff" (binary_expression "(uint)((iVar3 + -100) - (int)puVar17) >> 2" (call_expression "(uint)((iVar3 + -100) - (int)puVar17)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((iVar3 + -100) - (int)puVar17)" (( "(") (binary_expression "(iVar3 + -100) - (int)puVar17" (parenthesized_expression "(iVar3 + -100)" (( "(") (binary_expression "iVar3 + -100" (identifier "iVar3") (+ "+") (number_literal "-100")) () ")")) (- "-") (cast_expression "(int)puVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar17"))) () ")"))) (>> ">>") (number_literal "2")) (& "&") (number_literal "0x7ffff"))) (; ";")) (expression_statement "uVar5 = uVar12 + 0x30680000;" (assignment_expression "uVar5 = uVar12 + 0x30680000" (identifier "uVar5") (= "=") (binary_expression "uVar12 + 0x30680000" (identifier "uVar12") (+ "+") (number_literal "0x30680000"))) (; ";")) (expression_statement "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;" (assignment_expression "uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18" (identifier "uVar12") (= "=") (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8" (binary_expression "uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8" (binary_expression "uVar5 >> 0x18" (identifier "uVar5") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar5 & 0xff0000) >> 8" (parenthesized_expression "(uVar5 & 0xff0000)" (( "(") (binary_expression "uVar5 & 0xff0000" (identifier "uVar5") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar5 & 0xff00) << 8" (parenthesized_expression "(uVar5 & 0xff00)" (( "(") (binary_expression "uVar5 & 0xff00" (identifier "uVar5") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" (identifier "puVar10") (= "=") (identifier "puVar17")) (; ";")) (} "}"))) (if_statement "if (0x8000 < uVar13) {\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }" (if "if") (parenthesized_expression "(0x8000 < uVar13)" (( "(") (binary_expression "0x8000 < uVar13" (number_literal "0x8000") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n      uVar13 = uVar13 - 0x8000;\n      if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }\n      uVar13 = uVar13 % 0xa0;\n      if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }\n    }" ({ "{") (expression_statement "uVar13 = uVar13 - 0x8000;" (assignment_expression "uVar13 = uVar13 - 0x8000" (identifier "uVar13") (= "=") (binary_expression "uVar13 - 0x8000" (identifier "uVar13") (- "-") (number_literal "0x8000"))) (; ";")) (if_statement "if (0x9f < uVar13) {\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }" (if "if") (parenthesized_expression "(0x9f < uVar13)" (( "(") (binary_expression "0x9f < uVar13" (number_literal "0x9f") (< "<") (identifier "uVar13")) () ")")) (compound_statement "{\n        uVar18 = 0;\n        puVar10 = puVar10 + 0x1e4;\n        do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);\n      }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar10 = puVar10 + 0x1e4;" (assignment_expression "puVar10 = puVar10 + 0x1e4" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 0x1e4" (identifier "puVar10") (+ "+") (number_literal "0x1e4"))) (; ";")) (do_statement "do {\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        } while (uVar18 < uVar13 / 0xa0);" (do "do") (compound_statement "{\n          puVar17 = puVar10;\n          uVar11 = 0xfcee5bc2;\n          puVar7 = (uint *)((long)puVar17 + -0xefc);\n          puVar10 = puVar17;\n          uVar12 = 0xc25beeec;\n          while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }\n          uVar18 = uVar18 + 1;\n          puVar10 = puVar17 + 0x1e0;\n        }" ({ "{") (expression_statement "puVar17 = puVar10;" (assignment_expression "puVar17 = puVar10" (identifier "puVar17") (= "=") (identifier "puVar10")) (; ";")) (expression_statement "uVar11 = 0xfcee5bc2;" (assignment_expression "uVar11 = 0xfcee5bc2" (identifier "uVar11") (= "=") (number_literal "0xfcee5bc2")) (; ";")) (expression_statement "puVar7 = (uint *)((long)puVar17 + -0xefc);" (assignment_expression "puVar7 = (uint *)((long)puVar17 + -0xefc)" (identifier "puVar7") (= "=") (cast_expression "(uint *)((long)puVar17 + -0xefc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar17 + -0xefc)" (( "(") (binary_expression "(long)puVar17 + -0xefc" (cast_expression "(long)puVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar17")) (+ "+") (number_literal "-0xefc")) () ")")))) (; ";")) (expression_statement "puVar10 = puVar17;" (assignment_expression "puVar10 = puVar17" (identifier "puVar10") (= "=") (identifier "puVar17")) (; ";")) (expression_statement "uVar12 = 0xc25beeec;" (assignment_expression "uVar12 = 0xc25beeec" (identifier "uVar12") (= "=") (number_literal "0xc25beeec")) (; ";")) (while_statement "while( true ) {\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            puVar7[2] = uVar11;\n            uVar9 = (long)puVar6 - (long)puVar7;\n            puVar7[-1] = 0xf00108a;\n            *puVar7 = 0x2000040;\n            puVar7[1] = 1;\n            puVar7[3] = 0x1c0c383;\n            puVar7[4] = 0x500109e;\n            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;\n            if (uVar12 == 0xc25be4fc) break;\n            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;\n            puVar7 = puVar7 + 6;\n            puVar10 = puVar10 + 1;\n            uVar12 = uVar12 - 0x10;\n          }" ({ "{") (expression_statement "puVar7[2] = uVar11;" (assignment_expression "puVar7[2] = uVar11" (subscript_expression "puVar7[2]" (identifier "puVar7") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "uVar9 = (long)puVar6 - (long)puVar7;" (assignment_expression "uVar9 = (long)puVar6 - (long)puVar7" (identifier "uVar9") (= "=") (binary_expression "(long)puVar6 - (long)puVar7" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (- "-") (cast_expression "(long)puVar7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar7")))) (; ";")) (expression_statement "puVar7[-1] = 0xf00108a;" (assignment_expression "puVar7[-1] = 0xf00108a" (subscript_expression "puVar7[-1]" (identifier "puVar7") ([ "[") (number_literal "-1") (] "]")) (= "=") (number_literal "0xf00108a")) (; ";")) (expression_statement "*puVar7 = 0x2000040;" (assignment_expression "*puVar7 = 0x2000040" (pointer_expression "*puVar7" (* "*") (identifier "puVar7")) (= "=") (number_literal "0x2000040")) (; ";")) (expression_statement "puVar7[1] = 1;" (assignment_expression "puVar7[1] = 1" (subscript_expression "puVar7[1]" (identifier "puVar7") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar7[3] = 0x1c0c383;" (assignment_expression "puVar7[3] = 0x1c0c383" (subscript_expression "puVar7[3]" (identifier "puVar7") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0x1c0c383")) (; ";")) (expression_statement "puVar7[4] = 0x500109e;" (assignment_expression "puVar7[4] = 0x500109e" (subscript_expression "puVar7[4]" (identifier "puVar7") ([ "[") (number_literal "4") (] "]")) (= "=") (number_literal "0x500109e")) (; ";")) (expression_statement "*puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;" (assignment_expression "*puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |\n                       (uVar9 & 0xff00) << 0x28" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |\n                       (uVar9 & 0xff000000) << 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |\n                       (uVar9 & 0xff0000000000) >> 0x18" (binary_expression "uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28" (binary_expression "uVar9 >> 0x38" (identifier "uVar9") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar9 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar9 & 0xff000000000000)" (( "(") (binary_expression "uVar9 & 0xff000000000000" (identifier "uVar9") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar9 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar9 & 0xff0000000000)" (( "(") (binary_expression "uVar9 & 0xff0000000000" (identifier "uVar9") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar9 & 0xff00000000) >> 8" (parenthesized_expression "(uVar9 & 0xff00000000)" (( "(") (binary_expression "uVar9 & 0xff00000000" (identifier "uVar9") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff000000) << 8" (parenthesized_expression "(uVar9 & 0xff000000)" (( "(") (binary_expression "uVar9 & 0xff000000" (identifier "uVar9") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar9 & 0xff0000) << 0x18" (parenthesized_expression "(uVar9 & 0xff0000)" (( "(") (binary_expression "uVar9 & 0xff0000" (identifier "uVar9") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar9 & 0xff00) << 0x28" (parenthesized_expression "(uVar9 & 0xff00)" (( "(") (binary_expression "uVar9 & 0xff00" (identifier "uVar9") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar9 << 0x38" (identifier "uVar9") (<< "<<") (number_literal "0x38")))) (; ";")) (if_statement "if (uVar12 == 0xc25be4fc) break;" (if "if") (parenthesized_expression "(uVar12 == 0xc25be4fc)" (( "(") (binary_expression "uVar12 == 0xc25be4fc" (identifier "uVar12") (== "==") (number_literal "0xc25be4fc")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18;" (assignment_expression "uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18" (identifier "uVar11") (= "=") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "puVar7 = puVar7 + 6;" (assignment_expression "puVar7 = puVar7 + 6" (identifier "puVar7") (= "=") (binary_expression "puVar7 + 6" (identifier "puVar7") (+ "+") (number_literal "6"))) (; ";")) (expression_statement "puVar10 = puVar10 + 1;" (assignment_expression "puVar10 = puVar10 + 1" (identifier "puVar10") (= "=") (binary_expression "puVar10 + 1" (identifier "puVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar12 = uVar12 - 0x10;" (assignment_expression "uVar12 = uVar12 - 0x10" (identifier "uVar12") (= "=") (binary_expression "uVar12 - 0x10" (identifier "uVar12") (- "-") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "uVar18 = uVar18 + 1;" (assignment_expression "uVar18 = uVar18 + 1" (identifier "uVar18") (= "=") (binary_expression "uVar18 + 1" (identifier "uVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar10 = puVar17 + 0x1e0;" (assignment_expression "puVar10 = puVar17 + 0x1e0" (identifier "puVar10") (= "=") (binary_expression "puVar17 + 0x1e0" (identifier "puVar17") (+ "+") (number_literal "0x1e0"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar18 < uVar13 / 0xa0)" (( "(") (binary_expression "uVar18 < uVar13 / 0xa0" (identifier "uVar18") (< "<") (binary_expression "uVar13 / 0xa0" (identifier "uVar13") (/ "/") (number_literal "0xa0"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar13 = uVar13 % 0xa0;" (assignment_expression "uVar13 = uVar13 % 0xa0" (identifier "uVar13") (= "=") (binary_expression "uVar13 % 0xa0" (identifier "uVar13") (% "%") (number_literal "0xa0"))) (; ";")) (if_statement "if (uVar13 != 0) {\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }" (if "if") (parenthesized_expression "(uVar13 != 0)" (( "(") (binary_expression "uVar13 != 0" (identifier "uVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar10 = puVar17 + 0x1e0;\n        do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);\n        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;\n      }" ({ "{") (expression_statement "puVar10 = puVar17 + 0x1e0;" (assignment_expression "puVar10 = puVar17 + 0x1e0" (identifier "puVar10") (= "=") (binary_expression "puVar17 + 0x1e0" (identifier "puVar17") (+ "+") (number_literal "0x1e0"))) (; ";")) (do_statement "do {\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);" (do "do") (compound_statement "{\n          puVar4 = puVar10 + -0x1e0;\n          uVar18 = uVar13 * 0x18 - 4;\n          do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);\n          puVar10 = puVar8 + 0x1e3;\n        }" ({ "{") (expression_statement "puVar4 = puVar10 + -0x1e0;" (assignment_expression "puVar4 = puVar10 + -0x1e0" (identifier "puVar4") (= "=") (binary_expression "puVar10 + -0x1e0" (identifier "puVar10") (+ "+") (number_literal "-0x1e0"))) (; ";")) (expression_statement "uVar18 = uVar13 * 0x18 - 4;" (assignment_expression "uVar18 = uVar13 * 0x18 - 4" (identifier "uVar18") (= "=") (binary_expression "uVar13 * 0x18 - 4" (binary_expression "uVar13 * 0x18" (identifier "uVar13") (* "*") (number_literal "0x18")) (- "-") (number_literal "4"))) (; ";")) (do_statement "do {\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          } while (puVar8 + 3 != puVar10);" (do "do") (compound_statement "{\n            puVar8 = puVar4;\n            uVar9 = (ulong)uVar18;\n            *(uint *)puVar8 = 0xf00108a;\n            *(uint *)((long)puVar8 + 4) = 0x2000040;\n            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;\n            *(uint *)(puVar8 + 1) = 1;\n            *(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;\n            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);\n            *(uint *)(puVar8 + 2) = 0x1c0c383;\n            *(uint *)((long)puVar8 + 0x14) = 0x500109e;\n            uVar18 = uVar18 - 0x10;\n            *(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;\n            puVar4 = puVar8 + 3;\n          }" ({ "{") (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" (identifier "puVar8") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "uVar9 = (ulong)uVar18;" (assignment_expression "uVar9 = (ulong)uVar18" (identifier "uVar9") (= "=") (cast_expression "(ulong)uVar18" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar18"))) (; ";")) (expression_statement "*(uint *)puVar8 = 0xf00108a;" (assignment_expression "*(uint *)puVar8 = 0xf00108a" (pointer_expression "*(uint *)puVar8" (* "*") (cast_expression "(uint *)puVar8" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8"))) (= "=") (number_literal "0xf00108a")) (; ";")) (expression_statement "*(uint *)((long)puVar8 + 4) = 0x2000040;" (assignment_expression "*(uint *)((long)puVar8 + 4) = 0x2000040" (pointer_expression "*(uint *)((long)puVar8 + 4)" (* "*") (cast_expression "(uint *)((long)puVar8 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 4)" (( "(") (binary_expression "(long)puVar8 + 4" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0x2000040")) (; ";")) (expression_statement "uVar12 = (uVar18 & 0x1fff) + 0xc25be000;" (assignment_expression "uVar12 = (uVar18 & 0x1fff) + 0xc25be000" (identifier "uVar12") (= "=") (binary_expression "(uVar18 & 0x1fff) + 0xc25be000" (parenthesized_expression "(uVar18 & 0x1fff)" (( "(") (binary_expression "uVar18 & 0x1fff" (identifier "uVar18") (& "&") (number_literal "0x1fff")) () ")")) (+ "+") (number_literal "0xc25be000"))) (; ";")) (expression_statement "*(uint *)(puVar8 + 1) = 1;" (assignment_expression "*(uint *)(puVar8 + 1) = 1" (pointer_expression "*(uint *)(puVar8 + 1)" (* "*") (cast_expression "(uint *)(puVar8 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 1)" (( "(") (binary_expression "puVar8 + 1" (identifier "puVar8") (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18;" (assignment_expression "*(uint *)((long)puVar8 + 0xc) =\n                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18" (pointer_expression "*(uint *)((long)puVar8 + 0xc)" (* "*") (cast_expression "(uint *)((long)puVar8 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 0xc)" (( "(") (binary_expression "(long)puVar8 + 0xc" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                 (uVar18 & 0x1fff) << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar18 & 0x1fff) << 0x18" (parenthesized_expression "(uVar18 & 0x1fff)" (( "(") (binary_expression "uVar18 & 0x1fff" (identifier "uVar18") (& "&") (number_literal "0x1fff")) () ")")) (<< "<<") (number_literal "0x18")))) (; ";")) (expression_statement "uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);" (assignment_expression "uVar16 = (long)puVar6 - (long)((long)puVar8 + 4)" (identifier "uVar16") (= "=") (binary_expression "(long)puVar6 - (long)((long)puVar8 + 4)" (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6")) (- "-") (cast_expression "(long)((long)puVar8 + 4)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "((long)puVar8 + 4)" (( "(") (binary_expression "(long)puVar8 + 4" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(uint *)(puVar8 + 2) = 0x1c0c383;" (assignment_expression "*(uint *)(puVar8 + 2) = 0x1c0c383" (pointer_expression "*(uint *)(puVar8 + 2)" (* "*") (cast_expression "(uint *)(puVar8 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 2)" (( "(") (binary_expression "puVar8 + 2" (identifier "puVar8") (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0x1c0c383")) (; ";")) (expression_statement "*(uint *)((long)puVar8 + 0x14) = 0x500109e;" (assignment_expression "*(uint *)((long)puVar8 + 0x14) = 0x500109e" (pointer_expression "*(uint *)((long)puVar8 + 0x14)" (* "*") (cast_expression "(uint *)((long)puVar8 + 0x14)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + 0x14)" (( "(") (binary_expression "(long)puVar8 + 0x14" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (number_literal "0x14")) () ")")))) (= "=") (number_literal "0x500109e")) (; ";")) (expression_statement "uVar18 = uVar18 - 0x10;" (assignment_expression "uVar18 = uVar18 - 0x10" (identifier "uVar18") (= "=") (binary_expression "uVar18 - 0x10" (identifier "uVar18") (- "-") (number_literal "0x10"))) (; ";")) (expression_statement "*(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;" (assignment_expression "*(ulong *)((long)puVar8 + uVar9 + 4) =\n                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38" (pointer_expression "*(ulong *)((long)puVar8 + uVar9 + 4)" (* "*") (cast_expression "(ulong *)((long)puVar8 + uVar9 + 4)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar8 + uVar9 + 4)" (( "(") (binary_expression "(long)puVar8 + uVar9 + 4" (binary_expression "(long)puVar8 + uVar9" (cast_expression "(long)puVar8" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar8")) (+ "+") (identifier "uVar9")) (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |\n                 (uVar16 & 0xff00) << 0x28" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |\n                 (uVar16 & 0xff000000) << 8" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |\n                 (uVar16 & 0xff0000000000) >> 0x18" (binary_expression "uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28" (binary_expression "uVar16 >> 0x38" (identifier "uVar16") (>> ">>") (number_literal "0x38")) (| "|") (binary_expression "(uVar16 & 0xff000000000000) >> 0x28" (parenthesized_expression "(uVar16 & 0xff000000000000)" (( "(") (binary_expression "uVar16 & 0xff000000000000" (identifier "uVar16") (& "&") (number_literal "0xff000000000000")) () ")")) (>> ">>") (number_literal "0x28"))) (| "|") (binary_expression "(uVar16 & 0xff0000000000) >> 0x18" (parenthesized_expression "(uVar16 & 0xff0000000000)" (( "(") (binary_expression "uVar16 & 0xff0000000000" (identifier "uVar16") (& "&") (number_literal "0xff0000000000")) () ")")) (>> ">>") (number_literal "0x18"))) (| "|") (binary_expression "(uVar16 & 0xff00000000) >> 8" (parenthesized_expression "(uVar16 & 0xff00000000)" (( "(") (binary_expression "uVar16 & 0xff00000000" (identifier "uVar16") (& "&") (number_literal "0xff00000000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff000000) << 8" (parenthesized_expression "(uVar16 & 0xff000000)" (( "(") (binary_expression "uVar16 & 0xff000000" (identifier "uVar16") (& "&") (number_literal "0xff000000")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "(uVar16 & 0xff0000) << 0x18" (parenthesized_expression "(uVar16 & 0xff0000)" (( "(") (binary_expression "uVar16 & 0xff0000" (identifier "uVar16") (& "&") (number_literal "0xff0000")) () ")")) (<< "<<") (number_literal "0x18"))) (| "|") (binary_expression "(uVar16 & 0xff00) << 0x28" (parenthesized_expression "(uVar16 & 0xff00)" (( "(") (binary_expression "uVar16 & 0xff00" (identifier "uVar16") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "0x28"))) (| "|") (binary_expression "uVar16 << 0x38" (identifier "uVar16") (<< "<<") (number_literal "0x38")))) (; ";")) (expression_statement "puVar4 = puVar8 + 3;" (assignment_expression "puVar4 = puVar8 + 3" (identifier "puVar4") (= "=") (binary_expression "puVar8 + 3" (identifier "puVar8") (+ "+") (number_literal "3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar8 + 3 != puVar10)" (( "(") (binary_expression "puVar8 + 3 != puVar10" (binary_expression "puVar8 + 3" (identifier "puVar8") (+ "+") (number_literal "3")) (!= "!=") (identifier "puVar10")) () ")")) (; ";")) (expression_statement "puVar10 = puVar8 + 0x1e3;" (assignment_expression "puVar10 = puVar8 + 0x1e3" (identifier "puVar10") (= "=") (binary_expression "puVar8 + 0x1e3" (identifier "puVar8") (+ "+") (number_literal "0x1e3"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10)" (( "(") (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10" (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0" (binary_expression "puVar17 + (ulong)(uVar13 - 1) * 0x1e0" (identifier "puVar17") (+ "+") (binary_expression "(ulong)(uVar13 - 1) * 0x1e0" (call_expression "(ulong)(uVar13 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar13 - 1)" (( "(") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1")) () ")"))) (* "*") (number_literal "0x1e0"))) (+ "+") (number_literal "0x3c0")) (!= "!=") (identifier "puVar10")) () ")")) (; ";")) (expression_statement "puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;" (assignment_expression "puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0" (identifier "puVar17") (= "=") (binary_expression "puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0" (identifier "puVar17") (+ "+") (binary_expression "((ulong)(uVar13 - 1) + 1) * 0x1e0" (parenthesized_expression "((ulong)(uVar13 - 1) + 1)" (( "(") (binary_expression "(ulong)(uVar13 - 1) + 1" (call_expression "(ulong)(uVar13 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar13 - 1)" (( "(") (binary_expression "uVar13 - 1" (identifier "uVar13") (- "-") (number_literal "1")) () ")"))) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "0x1e0")))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (if_statement "if ((long)puVar17 - (long)puVar6 == lVar2) {\n    return;\n  }" (if "if") (parenthesized_expression "((long)puVar17 - (long)puVar6 == lVar2)" (( "(") (binary_expression "(long)puVar17 - (long)puVar6 == lVar2" (binary_expression "(long)puVar17 - (long)puVar6" (cast_expression "(long)puVar17" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar17")) (- "-") (cast_expression "(long)puVar6" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar6"))) (== "==") (identifier "lVar2")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");" (call_expression "FUN_00352af0("../../gold/sparc.cc",0x708,"do_write")" (identifier "FUN_00352af0") (argument_list "("../../gold/sparc.cc",0x708,"do_write")" (( "(") (string_literal ""../../gold/sparc.cc"" (" """) (string_content "../../gold/sparc.cc") (" """)) (, ",") (number_literal "0x708") (, ",") (string_literal ""do_write"" (" """) (string_content "do_write") (" """)) () ")"))) (; ";")) (} "}")))

/* DWARF original prototype: void do_write(Output_data_plt_sparc<64,_true> * this, Output_file * of)
    */

void __thiscall
anon_unknown.dwarf_4cd88d::Output_data_plt_sparc<64,_true>::do_write
          (Output_data_plt_sparc<64,_true> *this,Output_file *of)

{
  long var_2;
  long var_3;
  int var_11;
  type_1 *puVar4;
  type_2 var_13;
  type_3 *var_4;
  type_2 *var_14;
  type_1 *var_16;
  type_1 var_5;
  type_1 *var_9;
  type_2 uVar11;
  type_2 var_12;
  type_2 var_7;
  type_2 var_8;
  type_4 *var_6;
  type_1 var_17;
  type_1 *var_15;
  type_2 var_10;
  
  if ((this->field_0x20 & 4) == 0) {
                    /* WARNING: Subroutine does not return */
    gold::var_1("../../gold/output.h",0xe3,"offset");
  }
  var_2 = *(long *)&this->field_0x18;
  if ((this->field_0x20 & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    gold::var_1("../../gold/output.h",0xcf,"data_size");
  }
  var_3 = *(long *)&this->field_0x10;
  if ((var_2 < 0) || (of->file_size_ < var_3 + var_2)) {
                    /* WARNING: Subroutine does not return */
    gold::var_1("../../gold/output.h",0x6f,"get_output_view");
  }
  var_4 = of->base_ + var_2;
  var_4[0] = '\0';
  var_4[1] = '\0';
  var_4[2] = '\0';
  var_4[3] = '\0';
  var_4[4] = '\0';
  var_4[5] = '\0';
  var_4[6] = '\0';
  var_4[7] = '\0';
  var_4[0x78] = '\0';
  var_4[0x79] = '\0';
  var_4[0x7a] = '\0';
  var_4[0x7b] = '\0';
  var_4[0x7c] = '\0';
  var_4[0x7d] = '\0';
  var_4[0x7e] = '\0';
  var_4[0x7f] = '\0';
  var_15 = (type_1 *)(var_4 + 0x80);
  var_6 = (type_4 *)((type_1)(var_4 + 8) & 0xfffffffffffffff8);
  for (var_5 = (type_1)(((int)var_4 - (int)(type_4 *)((type_1)(var_4 + 8) & 0xfffffffffffffff8))
                       + 0x80U >> 3); var_5 != 0; var_5 = var_5 - 1) {
    *var_6 = 0;
    var_6 = var_6 + 1;
  }
  var_7 = this->ifunc_count_ + this->count_;
  var_10 = 0x8000;
  if (var_7 < 0x8001) {
    var_10 = var_7;
  }
  if (var_7 != 0) {
    uVar11 = 0x80000003;
    var_12 = 0xe7ff6f30;
    var_8 = 0;
    var_11 = (int)var_15;
    var_9 = var_15;
    while( true ) {
      var_8 = var_8 + 1;
      *(type_2 *)var_9 = uVar11;
      var_15 = var_9 + 4;
      *(type_2 *)((long)var_9 + 4) = var_12;
      *(type_2 *)(var_9 + 1) = 1;
      *(type_2 *)((long)var_9 + 0xc) = 1;
      *(type_2 *)(var_9 + 2) = 1;
      *(type_2 *)((long)var_9 + 0x14) = 1;
      *(type_2 *)(var_9 + 3) = 1;
      *(type_2 *)((long)var_9 + 0x1c) = 1;
      if (var_10 <= var_8) break;
      var_12 = (0x3000080 - var_11) + (int)var_15;
      uVar11 = var_12 >> 0x18 | (var_12 & 0xff0000) >> 8 | (var_12 & 0xff00) << 8 |
               var_12 * 0x1000000;
      var_12 = (type_2)((var_11 + -100) - (int)var_15) >> 2 & 0x7ffff;
      var_13 = var_12 + 0x30680000;
      var_12 = var_13 >> 0x18 | (var_13 & 0xff0000) >> 8 | (var_13 & 0xff00) << 8 | var_12 << 0x18;
      var_9 = var_15;
    }
    if (0x8000 < var_7) {
      var_7 = var_7 - 0x8000;
      if (0x9f < var_7) {
        var_10 = 0;
        var_9 = var_9 + 0x1e4;
        do {
          var_15 = var_9;
          uVar11 = 0xfcee5bc2;
          var_14 = (type_2 *)((long)var_15 + -0xefc);
          var_9 = var_15;
          var_12 = 0xc25beeec;
          while( true ) {
            var_14[2] = uVar11;
            var_5 = (long)var_4 - (long)var_14;
            var_14[-1] = 0xf00108a;
            *var_14 = 0x2000040;
            var_14[1] = 1;
            var_14[3] = 0x1c0c383;
            var_14[4] = 0x500109e;
            *var_9 = var_5 >> 0x38 | (var_5 & 0xff000000000000) >> 0x28 |
                       (var_5 & 0xff0000000000) >> 0x18 | (var_5 & 0xff00000000) >> 8 |
                       (var_5 & 0xff000000) << 8 | (var_5 & 0xff0000) << 0x18 |
                       (var_5 & 0xff00) << 0x28 | var_5 << 0x38;
            if (var_12 == 0xc25be4fc) break;
            uVar11 = var_12 >> 0x18 | (var_12 & 0xff0000) >> 8 | (var_12 & 0xff00) << 8 |
                     var_12 << 0x18;
            var_14 = var_14 + 6;
            var_9 = var_9 + 1;
            var_12 = var_12 - 0x10;
          }
          var_10 = var_10 + 1;
          var_9 = var_15 + 0x1e0;
        } while (var_10 < var_7 / 0xa0);
      }
      var_7 = var_7 % 0xa0;
      if (var_7 != 0) {
        var_9 = var_15 + 0x1e0;
        do {
          puVar4 = var_9 + -0x1e0;
          var_10 = var_7 * 0x18 - 4;
          do {
            var_16 = puVar4;
            *(type_2 *)var_16 = 0xf00108a;
            *(type_2 *)((long)var_16 + 4) = 0x2000040;
            var_12 = (var_10 & 0x1fff) + 0xc25be000;
            *(type_2 *)(var_16 + 1) = 1;
            *(type_2 *)((long)var_16 + 0xc) =
                 var_12 >> 0x18 | (var_12 & 0xff0000) >> 8 | (var_12 & 0xff00) << 8 |
                 (var_10 & 0x1fff) << 0x18;
            var_5 = (long)var_4 - (long)((long)var_16 + 4);
            *(type_2 *)(var_16 + 2) = 0x1c0c383;
            var_17 = (type_1)var_10;
            *(type_2 *)((long)var_16 + 0x14) = 0x500109e;
            var_10 = var_10 - 0x10;
            *(type_1 *)((long)var_16 + var_17 + 4) =
                 var_5 >> 0x38 | (var_5 & 0xff000000000000) >> 0x28 |
                 (var_5 & 0xff0000000000) >> 0x18 | (var_5 & 0xff00000000) >> 8 |
                 (var_5 & 0xff000000) << 8 | (var_5 & 0xff0000) << 0x18 | (var_5 & 0xff00) << 0x28 |
                 var_5 << 0x38;
            puVar4 = var_16 + 3;
          } while (var_16 + 3 != var_9);
          var_9 = var_16 + 0x1e3;
        } while (var_15 + (type_1)(var_7 - 1) * 0x1e0 + 0x3c0 != var_9);
        var_15 = var_15 + ((type_1)(var_7 - 1) + 1) * 0x1e0;
      }
    }
  }
  if ((long)var_15 - (long)var_4 == var_3) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  gold::var_1("../../gold/sparc.cc",0x708,"do_write");
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (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: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))) (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: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (for_statement initializer: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) right: (number_literal)) right: (number_literal))))) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (sized_type_specifier)) 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: (identifier) right: (number_literal))))) right: (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: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (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: (identifier) right: (number_literal))))) right: (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: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (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: (identifier) right: (number_literal))))) right: (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: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (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: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) 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: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (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: (identifier) right: (number_literal))))) right: (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: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) 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)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (sized_type_specifier)) value: (identifier)) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (identifier)) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (number_literal))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier))) right: (identifier))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (number_literal) (string_literal (string_content))))))))

void MASKED(long param_1,long param_2)

{
  long lVar1;
  long lVar2;
  int iVar3;
  ulong *puVar4;
  uint uVar5;
  undefined8 *puVar6;
  uint *puVar7;
  ulong *puVar8;
  ulong uVar9;
  ulong *puVar10;
  uint uVar11;
  uint uVar12;
  uint uVar13;
  uint uVar14;
  undefined8 *puVar15;
  ulong uVar16;
  ulong *puVar17;
  uint uVar18;
  
  if ((*(byte *)(param_1 + 0x20) & 4) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/output.h",0xe3,"offset");
  }
  lVar1 = *(long *)(param_1 + 0x18);
  if ((*(byte *)(param_1 + 0x20) & 2) == 0) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/output.h",0xcf,"data_size");
  }
  lVar2 = *(long *)(param_1 + 0x10);
  if ((lVar1 < 0) || (*(long *)(param_2 + 0x10) < lVar2 + lVar1)) {
                    /* WARNING: Subroutine does not return */
    FUN_00352af0("../../gold/output.h",0x6f,"get_output_view");
  }
  puVar6 = (undefined8 *)(lVar1 + *(long *)(param_2 + 0x18));
  *puVar6 = 0;
  puVar6[0xf] = 0;
  puVar17 = puVar6 + 0x10;
  puVar15 = (undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8);
  for (uVar9 = (ulong)(((int)puVar6 - (int)(undefined8 *)((ulong)(puVar6 + 1) & 0xfffffffffffffff8))
                       + 0x80U >> 3); uVar9 != 0; uVar9 = uVar9 - 1) {
    *puVar15 = 0;
    puVar15 = puVar15 + 1;
  }
  uVar13 = *(int *)(param_1 + 0x4c) + *(int *)(param_1 + 0x48);
  uVar18 = 0x8000;
  if (uVar13 < 0x8001) {
    uVar18 = uVar13;
  }
  if (uVar13 != 0) {
    uVar11 = 0x80000003;
    uVar12 = 0xe7ff6f30;
    uVar14 = 0;
    iVar3 = (int)puVar17;
    puVar10 = puVar17;
    while( true ) {
      uVar14 = uVar14 + 1;
      *(uint *)puVar10 = uVar11;
      puVar17 = puVar10 + 4;
      *(uint *)((long)puVar10 + 4) = uVar12;
      *(uint *)(puVar10 + 1) = 1;
      *(uint *)((long)puVar10 + 0xc) = 1;
      *(uint *)(puVar10 + 2) = 1;
      *(uint *)((long)puVar10 + 0x14) = 1;
      *(uint *)(puVar10 + 3) = 1;
      *(uint *)((long)puVar10 + 0x1c) = 1;
      if (uVar18 <= uVar14) break;
      uVar12 = (0x3000080 - iVar3) + (int)puVar17;
      uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
               uVar12 * 0x1000000;
      uVar12 = (uint)((iVar3 + -100) - (int)puVar17) >> 2 & 0x7ffff;
      uVar5 = uVar12 + 0x30680000;
      uVar12 = uVar5 >> 0x18 | (uVar5 & 0xff0000) >> 8 | (uVar5 & 0xff00) << 8 | uVar12 << 0x18;
      puVar10 = puVar17;
    }
    if (0x8000 < uVar13) {
      uVar13 = uVar13 - 0x8000;
      if (0x9f < uVar13) {
        uVar18 = 0;
        puVar10 = puVar10 + 0x1e4;
        do {
          puVar17 = puVar10;
          uVar11 = 0xfcee5bc2;
          puVar7 = (uint *)((long)puVar17 + -0xefc);
          puVar10 = puVar17;
          uVar12 = 0xc25beeec;
          while( true ) {
            puVar7[2] = uVar11;
            uVar9 = (long)puVar6 - (long)puVar7;
            puVar7[-1] = 0xf00108a;
            *puVar7 = 0x2000040;
            puVar7[1] = 1;
            puVar7[3] = 0x1c0c383;
            puVar7[4] = 0x500109e;
            *puVar10 = uVar9 >> 0x38 | (uVar9 & 0xff000000000000) >> 0x28 |
                       (uVar9 & 0xff0000000000) >> 0x18 | (uVar9 & 0xff00000000) >> 8 |
                       (uVar9 & 0xff000000) << 8 | (uVar9 & 0xff0000) << 0x18 |
                       (uVar9 & 0xff00) << 0x28 | uVar9 << 0x38;
            if (uVar12 == 0xc25be4fc) break;
            uVar11 = uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                     uVar12 << 0x18;
            puVar7 = puVar7 + 6;
            puVar10 = puVar10 + 1;
            uVar12 = uVar12 - 0x10;
          }
          uVar18 = uVar18 + 1;
          puVar10 = puVar17 + 0x1e0;
        } while (uVar18 < uVar13 / 0xa0);
      }
      uVar13 = uVar13 % 0xa0;
      if (uVar13 != 0) {
        puVar10 = puVar17 + 0x1e0;
        do {
          puVar4 = puVar10 + -0x1e0;
          uVar18 = uVar13 * 0x18 - 4;
          do {
            puVar8 = puVar4;
            uVar9 = (ulong)uVar18;
            *(uint *)puVar8 = 0xf00108a;
            *(uint *)((long)puVar8 + 4) = 0x2000040;
            uVar12 = (uVar18 & 0x1fff) + 0xc25be000;
            *(uint *)(puVar8 + 1) = 1;
            *(uint *)((long)puVar8 + 0xc) =
                 uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                 (uVar18 & 0x1fff) << 0x18;
            uVar16 = (long)puVar6 - (long)((long)puVar8 + 4);
            *(uint *)(puVar8 + 2) = 0x1c0c383;
            *(uint *)((long)puVar8 + 0x14) = 0x500109e;
            uVar18 = uVar18 - 0x10;
            *(ulong *)((long)puVar8 + uVar9 + 4) =
                 uVar16 >> 0x38 | (uVar16 & 0xff000000000000) >> 0x28 |
                 (uVar16 & 0xff0000000000) >> 0x18 | (uVar16 & 0xff00000000) >> 8 |
                 (uVar16 & 0xff000000) << 8 | (uVar16 & 0xff0000) << 0x18 |
                 (uVar16 & 0xff00) << 0x28 | uVar16 << 0x38;
            puVar4 = puVar8 + 3;
          } while (puVar8 + 3 != puVar10);
          puVar10 = puVar8 + 0x1e3;
        } while (puVar17 + (ulong)(uVar13 - 1) * 0x1e0 + 0x3c0 != puVar10);
        puVar17 = puVar17 + ((ulong)(uVar13 - 1) + 1) * 0x1e0;
      }
    }
  }
  if ((long)puVar17 - (long)puVar6 == lVar2) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00352af0("../../gold/sparc.cc",0x708,"do_write");
}

