
/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */

void Ascii85Encode(Image *image,uchar code)

{
  char cVar1;
  Ascii85Info *pAVar2;
  uchar *puVar3;
  int iVar4;
  uint uVar5;
  char *pcVar6;
  uchar *puVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  
  if (image == (Image *)0x0) {
    (*(code *)PTR___assert_fail_003fa620)
              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);
    return;
  }
  if (image->signature == 0xabacadab) {
    pAVar2 = image->ascii85;
    if (pAVar2 != (Ascii85Info *)0x0) {
      pAVar2->buffer[pAVar2->offset] = code;
      image->ascii85->offset = image->ascii85->offset + 1;
      iVar9 = image->ascii85->offset;
      if (3 < iVar9) {
        puVar3 = image->ascii85->buffer;
        uVar8 = iVar9 - 4U >> 2;
        puVar7 = puVar3;
        do {
          uVar10 = *(uint *)puVar7;
          pAVar2 = image->ascii85;
          if (uVar10 == 0) {
            pAVar2->tuple[0] = 'z';
            pAVar2->tuple[1] = '\0';
          }
          else {
            pcVar6 = pAVar2->tuple;
            uVar5 = 0x31c84b1;
            do {
              if (uVar5 == 0) {
                trap(7);
              }
              uVar11 = uVar10 / uVar5;
              uVar10 = uVar10 % uVar5;
              *pcVar6 = (char)uVar11 + '!';
              pcVar6 = pcVar6 + 1;
              uVar5 = uVar5 / 0x55;
            } while (pcVar6 != pAVar2->tuple + 4);
            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';
            pAVar2->tuple[5] = '\0';
          }
          pcVar6 = image->ascii85->tuple;
          cVar1 = image->ascii85->tuple[0];
          while (cVar1 != '\0') {
            image->ascii85->line_break = image->ascii85->line_break + -1;
            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {
              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);
              image->ascii85->line_break = 0x48;
            }
            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);
            pcVar6 = pcVar6 + 1;
            cVar1 = *pcVar6;
          }
          puVar7 = puVar7 + 8;
        } while (puVar7 != puVar3 + (uVar8 + 1) * 8);
        image->ascii85->offset = iVar9 + -4 + uVar8 * -4;
        iVar9 = 0;
        puVar7 = puVar3 + uVar8 * 8 + 4;
        do {
          iVar4 = iVar9 + 1;
          image->ascii85->buffer[iVar9] = *puVar7;
          iVar9 = iVar4;
          puVar7 = puVar7 + 1;
        } while (iVar4 != 4);
      }
      return;
    }
    (*(code *)PTR___assert_fail_003fa620)
              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);
    return;
  }
  (*(code *)PTR___assert_fail_003fa620)
            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);
  return;
}



void Ascii85Encode(int param_1,undefined1 param_2)

{
  char cVar1;
  int *piVar2;
  uint *puVar3;
  uint uVar4;
  uint *puVar5;
  char *pcVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  
  if (param_1 == 0) {
    (*(code *)PTR___assert_fail_003fa620)
              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);
    return;
  }
  if (*(int *)(param_1 + 0x336c) == -0x54535255) {
    piVar2 = *(int **)(param_1 + 0x330);
    if (piVar2 != (int *)0x0) {
      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;
      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;
      iVar9 = **(int **)(param_1 + 0x330);
      if (3 < iVar9) {
        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);
        uVar8 = iVar9 - 4U >> 2;
        puVar5 = puVar3;
        do {
          uVar10 = *puVar5;
          iVar7 = *(int *)(param_1 + 0x330);
          if (uVar10 == 0) {
            *(undefined1 *)(iVar7 + 8) = 0x7a;
            *(undefined1 *)(iVar7 + 9) = 0;
          }
          else {
            pcVar6 = (char *)(iVar7 + 8);
            uVar4 = 0x31c84b1;
            do {
              if (uVar4 == 0) {
                trap(7);
              }
              uVar11 = uVar10 / uVar4;
              uVar10 = uVar10 % uVar4;
              *pcVar6 = (char)uVar11 + '!';
              pcVar6 = pcVar6 + 1;
              uVar4 = uVar4 / 0x55;
            } while (pcVar6 != (char *)(iVar7 + 0xc));
            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';
            *(undefined1 *)(iVar7 + 0xd) = 0;
          }
          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);
          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);
          while (cVar1 != '\0') {
            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;
            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {
              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);
              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;
            }
            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);
            pcVar6 = pcVar6 + 1;
            cVar1 = *pcVar6;
          }
          puVar5 = puVar5 + 2;
        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);
        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;
        iVar9 = 0;
        puVar5 = puVar3 + uVar8 * 2 + 1;
        do {
          iVar7 = *(int *)(param_1 + 0x330) + iVar9;
          iVar9 = iVar9 + 1;
          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;
          puVar5 = (uint *)((int)puVar5 + 1);
        } while (iVar9 != 4);
      }
      return;
    }
    (*(code *)PTR___assert_fail_003fa620)
              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);
    return;
  }
  (*(code *)PTR___assert_fail_003fa620)
            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);
  return;
}


lui gp,0x38
addiu gp,gp,-0x3e8
addu gp,gp,t9
addiu sp,sp,-0x48
sw ra,0x44(sp)
sw s8,0x40(sp)
sw s7,0x3c(sp)
sw s6,0x38(sp)
sw s5,0x34(sp)
sw s4,0x30(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
sw s0,0x20(sp)
sw gp,0x10(sp)
beq a0,zero,0x00081d5c
_lui v0,0xabac
lw v1,0x336c(a0)
ori v0,v0,0xadab
bne v1,v0,0x00081d84
_or s1,a0,zero
lw v0,0x330(a0)
beq v0,zero,0x00081dac
_lw a3,-0x7fcc(gp)
lw v1,0x0(v0)
addu v0,v0,v1
sb a1,0xe(v0)
lw v1,0x330(a0)
lw v0,0x0(v1)
addiu v0,v0,0x1
sw v0,0x0(v1)
lw v0,0x330(a0)
lw s8,0x0(v0)
slti v1,s8,0x4
bne v1,zero,0x00081f54
_addiu s7,s8,-0x4
addiu v0,v0,0xe
sw v0,0x1c(sp)
srl s7,s7,0x2
addiu s5,s7,0x1
sll s5,s5,0x3
addu s5,v0,s5
or s2,v0,zero
lui v0,0x31c
ori v0,v0,0x84b1
sw v0,0x18(sp)
lui s3,0xc0c0
b 0x00081e60
_ori s3,s3,0xc0c1
lw a3,-0x7fcc(gp)
addiu a3,a3,0x3ec
li a2,0x137
lw a1,-0x7fcc(gp)
addiu a1,a1,0x2c0
lw a0,-0x7fd0(gp)
addiu a0,a0,0x3da0
lw t9,-0x7290(gp)
jalr t9
_nop
lw a3,-0x7fcc(gp)
addiu a3,a3,0x3ec
li a2,0x138
lw a1,-0x7fcc(gp)
addiu a1,a1,0x2c0
lw a0,-0x7fcc(gp)
addiu a0,a0,-0x784
lw t9,-0x7290(gp)
jalr t9
_nop
addiu a3,a3,0x3ec
li a2,0x139
lw a1,-0x7fcc(gp)
addiu a1,a1,0x2c0
lw a0,-0x7fcc(gp)
addiu a0,a0,0x2e0
lw t9,-0x7290(gp)
jalr t9
_nop
li v0,0x7a
sb v0,0x8(a2)
b 0x00081ef4
_sb zero,0x9(a2)
lbu a1,0x0(s0)
or a0,s1,zero
lw t9,-0x78bc(gp)
jalr t9
_nop
lw gp,0x10(sp)
addiu s0,s0,0x1
lb v0,0x0(s0)
beq v0,zero,0x00081e54
_nop
lw v1,0x330(s1)
lw v0,0x4(v1)
addiu v0,v0,-0x1
sw v0,0x4(v1)
lw v0,0x330(s1)
lw v0,0x4(v0)
bgez v0,0x00081de0
_nop
lb v0,0x0(s0)
beq v0,s4,0x00081de0
_li a1,0xa
or a0,s1,zero
lw t9,-0x78bc(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw v0,0x330(s1)
b 0x00081de0
_sw s6,0x4(v0)
addiu s2,s2,0x8
beq s2,s5,0x00081f10
_sll v1,s7,0x2
lbu v0,0x0(s2)
sll v0,v0,0x8
lbu v1,0x1(s2)
or v0,v0,v1
sll v0,v0,0x10
lbu v1,0x2(s2)
sll v1,v1,0x8
lbu a0,0x3(s2)
or v1,v1,a0
or v0,v0,v1
beq v0,zero,0x00081dd0
_lw a2,0x330(s1)
addiu a0,a2,0x8
addiu a3,a2,0xc
lw v1,0x18(sp)
teq v1,zero
divu v0,v1
mfhi v0
mflo a1
addiu a1,a1,0x21
sb a1,0x0(a0)
multu v1,s3
mfhi v1
addiu a0,a0,0x1
bne a0,a3,0x00081e9c
_srl v1,v1,0x6
multu v0,s3
mfhi v1
srl a0,v1,0x6
sll v1,a0,0x2
addu v1,v1,a0
sll a0,v1,0x4
addu v1,v1,a0
subu v0,v0,v1
addiu v0,v0,0x21
sb v0,0xc(a2)
sb zero,0xd(a2)
lw v0,0x330(s1)
addiu s0,v0,0x8
lb v0,0x8(v0)
beq v0,zero,0x00081e54
_li s4,0x25
b 0x00081e08
_li s6,0x48
lw v0,0x330(s1)
addiu s8,s8,-0x4
subu s8,s8,v1
sw s8,0x0(v0)
sll v1,s7,0x3
addiu v1,v1,0x4
lw v0,0x1c(sp)
addu v1,v0,v1
or v0,zero,zero
li a2,0x4
addiu v1,v1,0x1
lw a0,0x330(s1)
lbu a1,-0x1(v1)
addu a0,a0,v0
addiu v0,v0,0x1
bne v0,a2,0x00081f38
_sb a1,0xe(a0)
lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
(translation_unit "void Ascii85Encode(int param_1,undefined1 param_2)\n\n{\n  char cVar1;\n  int *piVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  (*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);\n  return;\n}\n\n" (function_definition "void Ascii85Encode(int param_1,undefined1 param_2)\n\n{\n  char cVar1;\n  int *piVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  (*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);\n  return;\n}" primitive_type (function_declarator "Ascii85Encode(int param_1,undefined1 param_2)" identifier (parameter_list "(int param_1,undefined1 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined1 param_2" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  (*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (if_statement "if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec)" ( (binary_expression "PTR_LAB_003f98e0 + 0x3da0" identifier + number_literal) , (binary_expression "PTR_UINT_003f98e4 + 0x2c0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_003f98e4 + 0x3ec" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(param_1 + 0x336c)" * (cast_expression "(int *)(param_1 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x336c)" ( (binary_expression "param_1 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" { (expression_statement "piVar2 = *(int **)(param_1 + 0x330);" (assignment_expression "piVar2 = *(int **)(param_1 + 0x330)" identifier = (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) ;) (if_statement "if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }" { (expression_statement "*(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;" (assignment_expression "*(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2" (pointer_expression "*(undefined1 *)((int)piVar2 + *piVar2 + 0xe)" * (cast_expression "(undefined1 *)((int)piVar2 + *piVar2 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + *piVar2 + 0xe)" ( (binary_expression "(int)piVar2 + *piVar2 + 0xe" (binary_expression "(int)piVar2 + *piVar2" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*piVar2" * identifier)) + number_literal) )))) = identifier) ;) (expression_statement "**(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;" (assignment_expression "**(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1" (pointer_expression "**(int **)(param_1 + 0x330)" * (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) = (binary_expression "**(int **)(param_1 + 0x330) + 1" (pointer_expression "**(int **)(param_1 + 0x330)" * (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) + number_literal)) ;) (expression_statement "iVar9 = **(int **)(param_1 + 0x330);" (assignment_expression "iVar9 = **(int **)(param_1 + 0x330)" identifier = (pointer_expression "**(int **)(param_1 + 0x330)" * (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))))) ;) (if_statement "if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }" if (parenthesized_expression "(3 < iVar9)" ( (binary_expression "3 < iVar9" number_literal < identifier) )) (compound_statement "{\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }" { (expression_statement "puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);" (assignment_expression "puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe)" identifier = (cast_expression "(uint *)((int)*(int **)(param_1 + 0x330) + 0xe)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(int **)(param_1 + 0x330) + 0xe)" ( (binary_expression "(int)*(int **)(param_1 + 0x330) + 0xe" (cast_expression "(int)*(int **)(param_1 + 0x330)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "uVar8 = iVar9 - 4U >> 2;" (assignment_expression "uVar8 = iVar9 - 4U >> 2" identifier = (binary_expression "iVar9 - 4U >> 2" (binary_expression "iVar9 - 4U" identifier - number_literal) >> number_literal)) ;) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" identifier = identifier) ;) (do_statement "do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);" do (compound_statement "{\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        }" { (expression_statement "uVar10 = *puVar5;" (assignment_expression "uVar10 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x330);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x330)" identifier = (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }" { (expression_statement "*(undefined1 *)(iVar7 + 8) = 0x7a;" (assignment_expression "*(undefined1 *)(iVar7 + 8) = 0x7a" (pointer_expression "*(undefined1 *)(iVar7 + 8)" * (cast_expression "(undefined1 *)(iVar7 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar7 + 9) = 0;" (assignment_expression "*(undefined1 *)(iVar7 + 9) = 0" (pointer_expression "*(undefined1 *)(iVar7 + 9)" * (cast_expression "(undefined1 *)(iVar7 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 9)" ( (binary_expression "iVar7 + 9" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }" else (compound_statement "{\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }" { (expression_statement "pcVar6 = (char *)(iVar7 + 8);" (assignment_expression "pcVar6 = (char *)(iVar7 + 8)" identifier = (cast_expression "(char *)(iVar7 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) ;) (expression_statement "uVar4 = 0x31c84b1;" (assignment_expression "uVar4 = 0x31c84b1" identifier = number_literal) ;) (do_statement "do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));" do (compound_statement "{\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            }" { (if_statement "if (uVar4 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar11 = uVar10 / uVar4;" (assignment_expression "uVar11 = uVar10 / uVar4" identifier = (binary_expression "uVar10 / uVar4" identifier / identifier)) ;) (expression_statement "uVar10 = uVar10 % uVar4;" (assignment_expression "uVar10 = uVar10 % uVar4" identifier = (binary_expression "uVar10 % uVar4" identifier % identifier)) ;) (expression_statement "*pcVar6 = (char)uVar11 + '!';" (assignment_expression "*pcVar6 = (char)uVar11 + '!'" (pointer_expression "*pcVar6" * identifier) = (binary_expression "(char)uVar11 + '!'" (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'!'" ' character '))) ;) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 / 0x55;" (assignment_expression "uVar4 = uVar4 / 0x55" identifier = (binary_expression "uVar4 / 0x55" identifier / number_literal)) ;) }) while (parenthesized_expression "(pcVar6 != (char *)(iVar7 + 0xc))" ( (binary_expression "pcVar6 != (char *)(iVar7 + 0xc)" identifier != (cast_expression "(char *)(iVar7 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) )) ;) (expression_statement "*(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';" (assignment_expression "*(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!'" (pointer_expression "*(char *)(iVar7 + 0xc)" * (cast_expression "(char *)(iVar7 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = (binary_expression "(char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!'" (binary_expression "(char)uVar10 + (char)(uVar10 / 0x55) * -0x55" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(uVar10 / 0x55) * -0x55" (cast_expression "(char)(uVar10 / 0x55)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar10 / 0x55)" ( (binary_expression "uVar10 / 0x55" identifier / number_literal) ))) * number_literal)) + (char_literal "'!'" ' character '))) ;) (expression_statement "*(undefined1 *)(iVar7 + 0xd) = 0;" (assignment_expression "*(undefined1 *)(iVar7 + 0xd) = 0" (pointer_expression "*(undefined1 *)(iVar7 + 0xd)" * (cast_expression "(undefined1 *)(iVar7 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xd)" ( (binary_expression "iVar7 + 0xd" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);" (assignment_expression "pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8)" identifier = (cast_expression "(char *)(*(int *)(param_1 + 0x330) + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 8)" ( (binary_expression "*(int *)(param_1 + 0x330) + 8" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);" (assignment_expression "cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8)" identifier = (pointer_expression "*(char *)(*(int *)(param_1 + 0x330) + 8)" * (cast_expression "(char *)(*(int *)(param_1 + 0x330) + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 8)" ( (binary_expression "*(int *)(param_1 + 0x330) + 8" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) ))))) ;) (while_statement "while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }" while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }" { (expression_statement "*(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1" (pointer_expression "*(int *)(*(int *)(param_1 + 0x330) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x330) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" ( (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "*(int *)(*(int *)(param_1 + 0x330) + 4) + -1" (pointer_expression "*(int *)(*(int *)(param_1 + 0x330) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x330) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" ( (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) )))) + number_literal)) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%'))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x330) + 4) < 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x330) + 4) < 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x330) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x330) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" ( (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) )))) < number_literal) )) && (parenthesized_expression "(*pcVar6 != '%')" ( (binary_expression "*pcVar6 != '%'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'%'" ' character ')) ))) )) (compound_statement "{\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }" { (expression_statement "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);" (call_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003f9ff4" * (cast_expression "(code *)PTR_WriteBlobByte_003f9ff4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,10)" ( identifier , number_literal ))) ;) (expression_statement "*(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;" (assignment_expression "*(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48" (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x330) + 4)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x330) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" ( (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) })) (expression_statement "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);" (call_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003f9ff4" * (cast_expression "(code *)PTR_WriteBlobByte_003f9ff4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,*pcVar6)" ( identifier , (pointer_expression "*pcVar6" * identifier) ))) ;) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar6;" (assignment_expression "cVar1 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) })) (expression_statement "puVar5 = puVar5 + 2;" (assignment_expression "puVar5 = puVar5 + 2" identifier = (binary_expression "puVar5 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar5 != puVar3 + (uVar8 + 1) * 2)" ( (binary_expression "puVar5 != puVar3 + (uVar8 + 1) * 2" identifier != (binary_expression "puVar3 + (uVar8 + 1) * 2" identifier + (binary_expression "(uVar8 + 1) * 2" (parenthesized_expression "(uVar8 + 1)" ( (binary_expression "uVar8 + 1" identifier + number_literal) )) * number_literal))) )) ;) (expression_statement "**(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;" (assignment_expression "**(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4" (pointer_expression "**(int **)(param_1 + 0x330)" * (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) = (binary_expression "iVar9 + -4 + uVar8 * -4" (binary_expression "iVar9 + -4" identifier + number_literal) + (binary_expression "uVar8 * -4" identifier * number_literal))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = puVar3 + uVar8 * 2 + 1;" (assignment_expression "puVar5 = puVar3 + uVar8 * 2 + 1" identifier = (binary_expression "puVar3 + uVar8 * 2 + 1" (binary_expression "puVar3 + uVar8 * 2" identifier + (binary_expression "uVar8 * 2" identifier * number_literal)) + number_literal)) ;) (do_statement "do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);" do (compound_statement "{\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x330) + iVar9;" (assignment_expression "iVar7 = *(int *)(param_1 + 0x330) + iVar9" identifier = (binary_expression "*(int *)(param_1 + 0x330) + iVar9" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;" (assignment_expression "*(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5" (pointer_expression "*(undefined1 *)(iVar7 + 0xe)" * (cast_expression "(undefined1 *)(iVar7 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xe)" ( (binary_expression "iVar7 + 0xe" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar5 = (uint *)((int)puVar5 + 1);" (assignment_expression "puVar5 = (uint *)((int)puVar5 + 1)" identifier = (cast_expression "(uint *)((int)puVar5 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 1)" ( (binary_expression "(int)puVar5 + 1" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(iVar9 != 4)" ( (binary_expression "iVar9 != 4" identifier != number_literal) )) ;) })) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec)" ( (binary_expression "PTR_UINT_003f98e4 + 0x2e0" identifier + number_literal) , (binary_expression "PTR_UINT_003f98e4 + 0x2c0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_003f98e4 + 0x3ec" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec)" ( (binary_expression "PTR_UINT_003f98e4 + -0x784" identifier + number_literal) , (binary_expression "PTR_UINT_003f98e4 + 0x2c0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_003f98e4 + 0x3ec" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "GravityType": Some values do not have unique names */\n/* WARNING: Enum "DisposeType": Some values do not have unique names */\n/* WARNING: Enum "ChannelType": Some values do not have unique names */\n/* WARNING: Enum "PixelChannel": Some values do not have unique names */\n\nvoid Ascii85Encode(Image *image,uchar code)\n\n{\n  char cVar1;\n  Ascii85Info *pAVar2;\n  uchar *puVar3;\n  int iVar4;\n  uint uVar5;\n  char *pcVar6;\n  uchar *puVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  \n  if (image == (Image *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  if (image->signature == 0xabacadab) {\n    pAVar2 = image->ascii85;\n    if (pAVar2 != (Ascii85Info *)0x0) {\n      pAVar2->buffer[pAVar2->offset] = code;\n      image->ascii85->offset = image->ascii85->offset + 1;\n      iVar9 = image->ascii85->offset;\n      if (3 < iVar9) {\n        puVar3 = image->ascii85->buffer;\n        uVar8 = iVar9 - 4U >> 2;\n        puVar7 = puVar3;\n        do {\n          uVar10 = *(uint *)puVar7;\n          pAVar2 = image->ascii85;\n          if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }\n          pcVar6 = image->ascii85->tuple;\n          cVar1 = image->ascii85->tuple[0];\n          while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar7 = puVar7 + 8;\n        } while (puVar7 != puVar3 + (uVar8 + 1) * 8);\n        image->ascii85->offset = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar7 = puVar3 + uVar8 * 8 + 4;\n        do {\n          iVar4 = iVar9 + 1;\n          image->ascii85->buffer[iVar9] = *puVar7;\n          iVar9 = iVar4;\n          puVar7 = puVar7 + 1;\n        } while (iVar4 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  (*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);\n  return;\n}\n\n" comment comment comment comment (function_definition "void Ascii85Encode(Image *image,uchar code)\n\n{\n  char cVar1;\n  Ascii85Info *pAVar2;\n  uchar *puVar3;\n  int iVar4;\n  uint uVar5;\n  char *pcVar6;\n  uchar *puVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  \n  if (image == (Image *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  if (image->signature == 0xabacadab) {\n    pAVar2 = image->ascii85;\n    if (pAVar2 != (Ascii85Info *)0x0) {\n      pAVar2->buffer[pAVar2->offset] = code;\n      image->ascii85->offset = image->ascii85->offset + 1;\n      iVar9 = image->ascii85->offset;\n      if (3 < iVar9) {\n        puVar3 = image->ascii85->buffer;\n        uVar8 = iVar9 - 4U >> 2;\n        puVar7 = puVar3;\n        do {\n          uVar10 = *(uint *)puVar7;\n          pAVar2 = image->ascii85;\n          if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }\n          pcVar6 = image->ascii85->tuple;\n          cVar1 = image->ascii85->tuple[0];\n          while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar7 = puVar7 + 8;\n        } while (puVar7 != puVar3 + (uVar8 + 1) * 8);\n        image->ascii85->offset = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar7 = puVar3 + uVar8 * 8 + 4;\n        do {\n          iVar4 = iVar9 + 1;\n          image->ascii85->buffer[iVar9] = *puVar7;\n          iVar9 = iVar4;\n          puVar7 = puVar7 + 1;\n        } while (iVar4 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  (*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);\n  return;\n}" primitive_type (function_declarator "Ascii85Encode(Image *image,uchar code)" identifier (parameter_list "(Image *image,uchar code)" ( (parameter_declaration "Image *image" type_identifier (pointer_declarator "*image" * identifier)) , (parameter_declaration "uchar code" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  Ascii85Info *pAVar2;\n  uchar *puVar3;\n  int iVar4;\n  uint uVar5;\n  char *pcVar6;\n  uchar *puVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  \n  if (image == (Image *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  if (image->signature == 0xabacadab) {\n    pAVar2 = image->ascii85;\n    if (pAVar2 != (Ascii85Info *)0x0) {\n      pAVar2->buffer[pAVar2->offset] = code;\n      image->ascii85->offset = image->ascii85->offset + 1;\n      iVar9 = image->ascii85->offset;\n      if (3 < iVar9) {\n        puVar3 = image->ascii85->buffer;\n        uVar8 = iVar9 - 4U >> 2;\n        puVar7 = puVar3;\n        do {\n          uVar10 = *(uint *)puVar7;\n          pAVar2 = image->ascii85;\n          if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }\n          pcVar6 = image->ascii85->tuple;\n          cVar1 = image->ascii85->tuple[0];\n          while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar7 = puVar7 + 8;\n        } while (puVar7 != puVar3 + (uVar8 + 1) * 8);\n        image->ascii85->offset = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar7 = puVar3 + uVar8 * 8 + 4;\n        do {\n          iVar4 = iVar9 + 1;\n          image->ascii85->buffer[iVar9] = *puVar7;\n          iVar9 = iVar4;\n          puVar7 = puVar7 + 1;\n        } while (iVar4 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  (*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "Ascii85Info *pAVar2;" type_identifier (pointer_declarator "*pAVar2" * identifier) ;) (declaration "uchar *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uchar *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (if_statement "if (image == (Image *)0x0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" if (parenthesized_expression "(image == (Image *)0x0)" ( (binary_expression "image == (Image *)0x0" identifier == (cast_expression "(Image *)0x0" ( (type_descriptor "Image *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec)" ( (binary_expression "PTR_LAB_003f98e0 + 0x3da0" identifier + number_literal) , (binary_expression "PTR_UINT_003f98e4 + 0x2c0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_003f98e4 + 0x3ec" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (image->signature == 0xabacadab) {\n    pAVar2 = image->ascii85;\n    if (pAVar2 != (Ascii85Info *)0x0) {\n      pAVar2->buffer[pAVar2->offset] = code;\n      image->ascii85->offset = image->ascii85->offset + 1;\n      iVar9 = image->ascii85->offset;\n      if (3 < iVar9) {\n        puVar3 = image->ascii85->buffer;\n        uVar8 = iVar9 - 4U >> 2;\n        puVar7 = puVar3;\n        do {\n          uVar10 = *(uint *)puVar7;\n          pAVar2 = image->ascii85;\n          if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }\n          pcVar6 = image->ascii85->tuple;\n          cVar1 = image->ascii85->tuple[0];\n          while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar7 = puVar7 + 8;\n        } while (puVar7 != puVar3 + (uVar8 + 1) * 8);\n        image->ascii85->offset = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar7 = puVar3 + uVar8 * 8 + 4;\n        do {\n          iVar4 = iVar9 + 1;\n          image->ascii85->buffer[iVar9] = *puVar7;\n          iVar9 = iVar4;\n          puVar7 = puVar7 + 1;\n        } while (iVar4 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" if (parenthesized_expression "(image->signature == 0xabacadab)" ( (binary_expression "image->signature == 0xabacadab" (field_expression "image->signature" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n    pAVar2 = image->ascii85;\n    if (pAVar2 != (Ascii85Info *)0x0) {\n      pAVar2->buffer[pAVar2->offset] = code;\n      image->ascii85->offset = image->ascii85->offset + 1;\n      iVar9 = image->ascii85->offset;\n      if (3 < iVar9) {\n        puVar3 = image->ascii85->buffer;\n        uVar8 = iVar9 - 4U >> 2;\n        puVar7 = puVar3;\n        do {\n          uVar10 = *(uint *)puVar7;\n          pAVar2 = image->ascii85;\n          if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }\n          pcVar6 = image->ascii85->tuple;\n          cVar1 = image->ascii85->tuple[0];\n          while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar7 = puVar7 + 8;\n        } while (puVar7 != puVar3 + (uVar8 + 1) * 8);\n        image->ascii85->offset = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar7 = puVar3 + uVar8 * 8 + 4;\n        do {\n          iVar4 = iVar9 + 1;\n          image->ascii85->buffer[iVar9] = *puVar7;\n          iVar9 = iVar4;\n          puVar7 = puVar7 + 1;\n        } while (iVar4 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" { (expression_statement "pAVar2 = image->ascii85;" (assignment_expression "pAVar2 = image->ascii85" identifier = (field_expression "image->ascii85" identifier -> field_identifier)) ;) (if_statement "if (pAVar2 != (Ascii85Info *)0x0) {\n      pAVar2->buffer[pAVar2->offset] = code;\n      image->ascii85->offset = image->ascii85->offset + 1;\n      iVar9 = image->ascii85->offset;\n      if (3 < iVar9) {\n        puVar3 = image->ascii85->buffer;\n        uVar8 = iVar9 - 4U >> 2;\n        puVar7 = puVar3;\n        do {\n          uVar10 = *(uint *)puVar7;\n          pAVar2 = image->ascii85;\n          if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }\n          pcVar6 = image->ascii85->tuple;\n          cVar1 = image->ascii85->tuple[0];\n          while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar7 = puVar7 + 8;\n        } while (puVar7 != puVar3 + (uVar8 + 1) * 8);\n        image->ascii85->offset = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar7 = puVar3 + uVar8 * 8 + 4;\n        do {\n          iVar4 = iVar9 + 1;\n          image->ascii85->buffer[iVar9] = *puVar7;\n          iVar9 = iVar4;\n          puVar7 = puVar7 + 1;\n        } while (iVar4 != 4);\n      }\n      return;\n    }" if (parenthesized_expression "(pAVar2 != (Ascii85Info *)0x0)" ( (binary_expression "pAVar2 != (Ascii85Info *)0x0" identifier != (cast_expression "(Ascii85Info *)0x0" ( (type_descriptor "Ascii85Info *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pAVar2->buffer[pAVar2->offset] = code;\n      image->ascii85->offset = image->ascii85->offset + 1;\n      iVar9 = image->ascii85->offset;\n      if (3 < iVar9) {\n        puVar3 = image->ascii85->buffer;\n        uVar8 = iVar9 - 4U >> 2;\n        puVar7 = puVar3;\n        do {\n          uVar10 = *(uint *)puVar7;\n          pAVar2 = image->ascii85;\n          if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }\n          pcVar6 = image->ascii85->tuple;\n          cVar1 = image->ascii85->tuple[0];\n          while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar7 = puVar7 + 8;\n        } while (puVar7 != puVar3 + (uVar8 + 1) * 8);\n        image->ascii85->offset = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar7 = puVar3 + uVar8 * 8 + 4;\n        do {\n          iVar4 = iVar9 + 1;\n          image->ascii85->buffer[iVar9] = *puVar7;\n          iVar9 = iVar4;\n          puVar7 = puVar7 + 1;\n        } while (iVar4 != 4);\n      }\n      return;\n    }" { (expression_statement "pAVar2->buffer[pAVar2->offset] = code;" (assignment_expression "pAVar2->buffer[pAVar2->offset] = code" (subscript_expression "pAVar2->buffer[pAVar2->offset]" (field_expression "pAVar2->buffer" identifier -> field_identifier) [ (field_expression "pAVar2->offset" identifier -> field_identifier) ]) = identifier) ;) (expression_statement "image->ascii85->offset = image->ascii85->offset + 1;" (assignment_expression "image->ascii85->offset = image->ascii85->offset + 1" (field_expression "image->ascii85->offset" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier) = (binary_expression "image->ascii85->offset + 1" (field_expression "image->ascii85->offset" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier) + number_literal)) ;) (expression_statement "iVar9 = image->ascii85->offset;" (assignment_expression "iVar9 = image->ascii85->offset" identifier = (field_expression "image->ascii85->offset" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (3 < iVar9) {\n        puVar3 = image->ascii85->buffer;\n        uVar8 = iVar9 - 4U >> 2;\n        puVar7 = puVar3;\n        do {\n          uVar10 = *(uint *)puVar7;\n          pAVar2 = image->ascii85;\n          if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }\n          pcVar6 = image->ascii85->tuple;\n          cVar1 = image->ascii85->tuple[0];\n          while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar7 = puVar7 + 8;\n        } while (puVar7 != puVar3 + (uVar8 + 1) * 8);\n        image->ascii85->offset = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar7 = puVar3 + uVar8 * 8 + 4;\n        do {\n          iVar4 = iVar9 + 1;\n          image->ascii85->buffer[iVar9] = *puVar7;\n          iVar9 = iVar4;\n          puVar7 = puVar7 + 1;\n        } while (iVar4 != 4);\n      }" if (parenthesized_expression "(3 < iVar9)" ( (binary_expression "3 < iVar9" number_literal < identifier) )) (compound_statement "{\n        puVar3 = image->ascii85->buffer;\n        uVar8 = iVar9 - 4U >> 2;\n        puVar7 = puVar3;\n        do {\n          uVar10 = *(uint *)puVar7;\n          pAVar2 = image->ascii85;\n          if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }\n          pcVar6 = image->ascii85->tuple;\n          cVar1 = image->ascii85->tuple[0];\n          while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar7 = puVar7 + 8;\n        } while (puVar7 != puVar3 + (uVar8 + 1) * 8);\n        image->ascii85->offset = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar7 = puVar3 + uVar8 * 8 + 4;\n        do {\n          iVar4 = iVar9 + 1;\n          image->ascii85->buffer[iVar9] = *puVar7;\n          iVar9 = iVar4;\n          puVar7 = puVar7 + 1;\n        } while (iVar4 != 4);\n      }" { (expression_statement "puVar3 = image->ascii85->buffer;" (assignment_expression "puVar3 = image->ascii85->buffer" identifier = (field_expression "image->ascii85->buffer" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "uVar8 = iVar9 - 4U >> 2;" (assignment_expression "uVar8 = iVar9 - 4U >> 2" identifier = (binary_expression "iVar9 - 4U >> 2" (binary_expression "iVar9 - 4U" identifier - number_literal) >> number_literal)) ;) (expression_statement "puVar7 = puVar3;" (assignment_expression "puVar7 = puVar3" identifier = identifier) ;) (do_statement "do {\n          uVar10 = *(uint *)puVar7;\n          pAVar2 = image->ascii85;\n          if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }\n          pcVar6 = image->ascii85->tuple;\n          cVar1 = image->ascii85->tuple[0];\n          while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar7 = puVar7 + 8;\n        } while (puVar7 != puVar3 + (uVar8 + 1) * 8);" do (compound_statement "{\n          uVar10 = *(uint *)puVar7;\n          pAVar2 = image->ascii85;\n          if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }\n          pcVar6 = image->ascii85->tuple;\n          cVar1 = image->ascii85->tuple[0];\n          while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar7 = puVar7 + 8;\n        }" { (expression_statement "uVar10 = *(uint *)puVar7;" (assignment_expression "uVar10 = *(uint *)puVar7" identifier = (pointer_expression "*(uint *)puVar7" * (cast_expression "(uint *)puVar7" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pAVar2 = image->ascii85;" (assignment_expression "pAVar2 = image->ascii85" identifier = (field_expression "image->ascii85" identifier -> field_identifier)) ;) (if_statement "if (uVar10 == 0) {\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }\n          else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            pAVar2->tuple[0] = 'z';\n            pAVar2->tuple[1] = '\0';\n          }" { (expression_statement "pAVar2->tuple[0] = 'z';" (assignment_expression "pAVar2->tuple[0] = 'z'" (subscript_expression "pAVar2->tuple[0]" (field_expression "pAVar2->tuple" identifier -> field_identifier) [ number_literal ]) = (char_literal "'z'" ' character ')) ;) (expression_statement "pAVar2->tuple[1] = '\0';" (assignment_expression "pAVar2->tuple[1] = '\0'" (subscript_expression "pAVar2->tuple[1]" (field_expression "pAVar2->tuple" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }) (else_clause "else {\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }" else (compound_statement "{\n            pcVar6 = pAVar2->tuple;\n            uVar5 = 0x31c84b1;\n            do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);\n            pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            pAVar2->tuple[5] = '\0';\n          }" { (expression_statement "pcVar6 = pAVar2->tuple;" (assignment_expression "pcVar6 = pAVar2->tuple" identifier = (field_expression "pAVar2->tuple" identifier -> field_identifier)) ;) (expression_statement "uVar5 = 0x31c84b1;" (assignment_expression "uVar5 = 0x31c84b1" identifier = number_literal) ;) (do_statement "do {\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            } while (pcVar6 != pAVar2->tuple + 4);" do (compound_statement "{\n              if (uVar5 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar5;\n              uVar10 = uVar10 % uVar5;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar5 = uVar5 / 0x55;\n            }" { (if_statement "if (uVar5 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar11 = uVar10 / uVar5;" (assignment_expression "uVar11 = uVar10 / uVar5" identifier = (binary_expression "uVar10 / uVar5" identifier / identifier)) ;) (expression_statement "uVar10 = uVar10 % uVar5;" (assignment_expression "uVar10 = uVar10 % uVar5" identifier = (binary_expression "uVar10 % uVar5" identifier % identifier)) ;) (expression_statement "*pcVar6 = (char)uVar11 + '!';" (assignment_expression "*pcVar6 = (char)uVar11 + '!'" (pointer_expression "*pcVar6" * identifier) = (binary_expression "(char)uVar11 + '!'" (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'!'" ' character '))) ;) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar5 / 0x55;" (assignment_expression "uVar5 = uVar5 / 0x55" identifier = (binary_expression "uVar5 / 0x55" identifier / number_literal)) ;) }) while (parenthesized_expression "(pcVar6 != pAVar2->tuple + 4)" ( (binary_expression "pcVar6 != pAVar2->tuple + 4" identifier != (binary_expression "pAVar2->tuple + 4" (field_expression "pAVar2->tuple" identifier -> field_identifier) + number_literal)) )) ;) (expression_statement "pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';" (assignment_expression "pAVar2->tuple[4] = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!'" (subscript_expression "pAVar2->tuple[4]" (field_expression "pAVar2->tuple" identifier -> field_identifier) [ number_literal ]) = (binary_expression "(char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!'" (binary_expression "(char)uVar10 + (char)(uVar10 / 0x55) * -0x55" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(uVar10 / 0x55) * -0x55" (cast_expression "(char)(uVar10 / 0x55)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar10 / 0x55)" ( (binary_expression "uVar10 / 0x55" identifier / number_literal) ))) * number_literal)) + (char_literal "'!'" ' character '))) ;) (expression_statement "pAVar2->tuple[5] = '\0';" (assignment_expression "pAVar2->tuple[5] = '\0'" (subscript_expression "pAVar2->tuple[5]" (field_expression "pAVar2->tuple" identifier -> field_identifier) [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) }))) (expression_statement "pcVar6 = image->ascii85->tuple;" (assignment_expression "pcVar6 = image->ascii85->tuple" identifier = (field_expression "image->ascii85->tuple" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier)) ;) (expression_statement "cVar1 = image->ascii85->tuple[0];" (assignment_expression "cVar1 = image->ascii85->tuple[0]" identifier = (subscript_expression "image->ascii85->tuple[0]" (field_expression "image->ascii85->tuple" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier) [ number_literal ])) ;) (while_statement "while (cVar1 != '\0') {\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }" while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            image->ascii85->line_break = image->ascii85->line_break + -1;\n            if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }" { (expression_statement "image->ascii85->line_break = image->ascii85->line_break + -1;" (assignment_expression "image->ascii85->line_break = image->ascii85->line_break + -1" (field_expression "image->ascii85->line_break" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier) = (binary_expression "image->ascii85->line_break + -1" (field_expression "image->ascii85->line_break" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier) + number_literal)) ;) (if_statement "if ((image->ascii85->line_break < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }" if (parenthesized_expression "((image->ascii85->line_break < 0) && (*pcVar6 != '%'))" ( (binary_expression "(image->ascii85->line_break < 0) && (*pcVar6 != '%')" (parenthesized_expression "(image->ascii85->line_break < 0)" ( (binary_expression "image->ascii85->line_break < 0" (field_expression "image->ascii85->line_break" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier) < number_literal) )) && (parenthesized_expression "(*pcVar6 != '%')" ( (binary_expression "*pcVar6 != '%'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'%'" ' character ')) ))) )) (compound_statement "{\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);\n              image->ascii85->line_break = 0x48;\n            }" { (expression_statement "(*(code *)PTR_WriteBlobByte_003f9ff4)(image,10);" (call_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)(image,10)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003f9ff4" * (cast_expression "(code *)PTR_WriteBlobByte_003f9ff4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,10)" ( identifier , number_literal ))) ;) (expression_statement "image->ascii85->line_break = 0x48;" (assignment_expression "image->ascii85->line_break = 0x48" (field_expression "image->ascii85->line_break" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier) = number_literal) ;) })) (expression_statement "(*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6);" (call_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)(image,*pcVar6)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003f9ff4" * (cast_expression "(code *)PTR_WriteBlobByte_003f9ff4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(image,*pcVar6)" ( identifier , (pointer_expression "*pcVar6" * identifier) ))) ;) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar6;" (assignment_expression "cVar1 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) })) (expression_statement "puVar7 = puVar7 + 8;" (assignment_expression "puVar7 = puVar7 + 8" identifier = (binary_expression "puVar7 + 8" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar7 != puVar3 + (uVar8 + 1) * 8)" ( (binary_expression "puVar7 != puVar3 + (uVar8 + 1) * 8" identifier != (binary_expression "puVar3 + (uVar8 + 1) * 8" identifier + (binary_expression "(uVar8 + 1) * 8" (parenthesized_expression "(uVar8 + 1)" ( (binary_expression "uVar8 + 1" identifier + number_literal) )) * number_literal))) )) ;) (expression_statement "image->ascii85->offset = iVar9 + -4 + uVar8 * -4;" (assignment_expression "image->ascii85->offset = iVar9 + -4 + uVar8 * -4" (field_expression "image->ascii85->offset" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier) = (binary_expression "iVar9 + -4 + uVar8 * -4" (binary_expression "iVar9 + -4" identifier + number_literal) + (binary_expression "uVar8 * -4" identifier * number_literal))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar7 = puVar3 + uVar8 * 8 + 4;" (assignment_expression "puVar7 = puVar3 + uVar8 * 8 + 4" identifier = (binary_expression "puVar3 + uVar8 * 8 + 4" (binary_expression "puVar3 + uVar8 * 8" identifier + (binary_expression "uVar8 * 8" identifier * number_literal)) + number_literal)) ;) (do_statement "do {\n          iVar4 = iVar9 + 1;\n          image->ascii85->buffer[iVar9] = *puVar7;\n          iVar9 = iVar4;\n          puVar7 = puVar7 + 1;\n        } while (iVar4 != 4);" do (compound_statement "{\n          iVar4 = iVar9 + 1;\n          image->ascii85->buffer[iVar9] = *puVar7;\n          iVar9 = iVar4;\n          puVar7 = puVar7 + 1;\n        }" { (expression_statement "iVar4 = iVar9 + 1;" (assignment_expression "iVar4 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "image->ascii85->buffer[iVar9] = *puVar7;" (assignment_expression "image->ascii85->buffer[iVar9] = *puVar7" (subscript_expression "image->ascii85->buffer[iVar9]" (field_expression "image->ascii85->buffer" (field_expression "image->ascii85" identifier -> field_identifier) -> field_identifier) [ identifier ]) = (pointer_expression "*puVar7" * identifier)) ;) (expression_statement "iVar9 = iVar4;" (assignment_expression "iVar9 = iVar4" identifier = identifier) ;) (expression_statement "puVar7 = puVar7 + 1;" (assignment_expression "puVar7 = puVar7 + 1" identifier = (binary_expression "puVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 4)" ( (binary_expression "iVar4 != 4" identifier != number_literal) )) ;) })) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec)" ( (binary_expression "PTR_UINT_003f98e4 + 0x2e0" identifier + number_literal) , (binary_expression "PTR_UINT_003f98e4 + 0x2c0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_003f98e4 + 0x3ec" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec)" ( (binary_expression "PTR_UINT_003f98e4 + -0x784" identifier + number_literal) , (binary_expression "PTR_UINT_003f98e4 + 0x2c0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_003f98e4 + 0x3ec" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void Ascii85Encode(int param_1,undefined1 param_2)\n\n{\n  char cVar1;\n  int *piVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  (*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);\n  return;\n}\n\n" (function_definition "void Ascii85Encode(int param_1,undefined1 param_2)\n\n{\n  char cVar1;\n  int *piVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  (*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);\n  return;\n}" primitive_type (function_declarator "Ascii85Encode(int param_1,undefined1 param_2)" identifier (parameter_list "(int param_1,undefined1 param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined1 param_2" type_identifier identifier) ))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  (*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);\n  return;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "uint *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "uint *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "uint uVar11;" type_identifier identifier ;) (if_statement "if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" { (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec)" ( (binary_expression "PTR_LAB_003f98e0 + 0x3da0" identifier + number_literal) , (binary_expression "PTR_UINT_003f98e4 + 0x2c0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_003f98e4 + 0x3ec" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (if_statement "if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0x336c) == -0x54535255)" ( (binary_expression "*(int *)(param_1 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(param_1 + 0x336c)" * (cast_expression "(int *)(param_1 + 0x336c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x336c)" ( (binary_expression "param_1 + 0x336c" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" { (expression_statement "piVar2 = *(int **)(param_1 + 0x330);" (assignment_expression "piVar2 = *(int **)(param_1 + 0x330)" identifier = (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) ;) (if_statement "if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }" if (parenthesized_expression "(piVar2 != (int *)0x0)" ( (binary_expression "piVar2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }" { (expression_statement "*(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;" (assignment_expression "*(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2" (pointer_expression "*(undefined1 *)((int)piVar2 + *piVar2 + 0xe)" * (cast_expression "(undefined1 *)((int)piVar2 + *piVar2 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar2 + *piVar2 + 0xe)" ( (binary_expression "(int)piVar2 + *piVar2 + 0xe" (binary_expression "(int)piVar2 + *piVar2" (cast_expression "(int)piVar2" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*piVar2" * identifier)) + number_literal) )))) = identifier) ;) (expression_statement "**(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;" (assignment_expression "**(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1" (pointer_expression "**(int **)(param_1 + 0x330)" * (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) = (binary_expression "**(int **)(param_1 + 0x330) + 1" (pointer_expression "**(int **)(param_1 + 0x330)" * (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) + number_literal)) ;) (expression_statement "iVar9 = **(int **)(param_1 + 0x330);" (assignment_expression "iVar9 = **(int **)(param_1 + 0x330)" identifier = (pointer_expression "**(int **)(param_1 + 0x330)" * (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))))) ;) (if_statement "if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }" if (parenthesized_expression "(3 < iVar9)" ( (binary_expression "3 < iVar9" number_literal < identifier) )) (compound_statement "{\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }" { (expression_statement "puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);" (assignment_expression "puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe)" identifier = (cast_expression "(uint *)((int)*(int **)(param_1 + 0x330) + 0xe)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)*(int **)(param_1 + 0x330) + 0xe)" ( (binary_expression "(int)*(int **)(param_1 + 0x330) + 0xe" (cast_expression "(int)*(int **)(param_1 + 0x330)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) + number_literal) )))) ;) (expression_statement "uVar8 = iVar9 - 4U >> 2;" (assignment_expression "uVar8 = iVar9 - 4U >> 2" identifier = (binary_expression "iVar9 - 4U >> 2" (binary_expression "iVar9 - 4U" identifier - number_literal) >> number_literal)) ;) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" identifier = identifier) ;) (do_statement "do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);" do (compound_statement "{\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        }" { (expression_statement "uVar10 = *puVar5;" (assignment_expression "uVar10 = *puVar5" identifier = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x330);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x330)" identifier = (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) ;) (if_statement "if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }" if (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) (compound_statement "{\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }" { (expression_statement "*(undefined1 *)(iVar7 + 8) = 0x7a;" (assignment_expression "*(undefined1 *)(iVar7 + 8) = 0x7a" (pointer_expression "*(undefined1 *)(iVar7 + 8)" * (cast_expression "(undefined1 *)(iVar7 + 8)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(iVar7 + 9) = 0;" (assignment_expression "*(undefined1 *)(iVar7 + 9) = 0" (pointer_expression "*(undefined1 *)(iVar7 + 9)" * (cast_expression "(undefined1 *)(iVar7 + 9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 9)" ( (binary_expression "iVar7 + 9" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }" else (compound_statement "{\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }" { (expression_statement "pcVar6 = (char *)(iVar7 + 8);" (assignment_expression "pcVar6 = (char *)(iVar7 + 8)" identifier = (cast_expression "(char *)(iVar7 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) ;) (expression_statement "uVar4 = 0x31c84b1;" (assignment_expression "uVar4 = 0x31c84b1" identifier = number_literal) ;) (do_statement "do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));" do (compound_statement "{\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            }" { (if_statement "if (uVar4 == 0) {\n                trap(7);\n              }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n                trap(7);\n              }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "uVar11 = uVar10 / uVar4;" (assignment_expression "uVar11 = uVar10 / uVar4" identifier = (binary_expression "uVar10 / uVar4" identifier / identifier)) ;) (expression_statement "uVar10 = uVar10 % uVar4;" (assignment_expression "uVar10 = uVar10 % uVar4" identifier = (binary_expression "uVar10 % uVar4" identifier % identifier)) ;) (expression_statement "*pcVar6 = (char)uVar11 + '!';" (assignment_expression "*pcVar6 = (char)uVar11 + '!'" (pointer_expression "*pcVar6" * identifier) = (binary_expression "(char)uVar11 + '!'" (cast_expression "(char)uVar11" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'!'" ' character '))) ;) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 / 0x55;" (assignment_expression "uVar4 = uVar4 / 0x55" identifier = (binary_expression "uVar4 / 0x55" identifier / number_literal)) ;) }) while (parenthesized_expression "(pcVar6 != (char *)(iVar7 + 0xc))" ( (binary_expression "pcVar6 != (char *)(iVar7 + 0xc)" identifier != (cast_expression "(char *)(iVar7 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) )) ;) (expression_statement "*(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';" (assignment_expression "*(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!'" (pointer_expression "*(char *)(iVar7 + 0xc)" * (cast_expression "(char *)(iVar7 + 0xc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = (binary_expression "(char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!'" (binary_expression "(char)uVar10 + (char)(uVar10 / 0x55) * -0x55" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) + (binary_expression "(char)(uVar10 / 0x55) * -0x55" (cast_expression "(char)(uVar10 / 0x55)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "(uVar10 / 0x55)" ( (binary_expression "uVar10 / 0x55" identifier / number_literal) ))) * number_literal)) + (char_literal "'!'" ' character '))) ;) (expression_statement "*(undefined1 *)(iVar7 + 0xd) = 0;" (assignment_expression "*(undefined1 *)(iVar7 + 0xd) = 0" (pointer_expression "*(undefined1 *)(iVar7 + 0xd)" * (cast_expression "(undefined1 *)(iVar7 + 0xd)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xd)" ( (binary_expression "iVar7 + 0xd" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);" (assignment_expression "pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8)" identifier = (cast_expression "(char *)(*(int *)(param_1 + 0x330) + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 8)" ( (binary_expression "*(int *)(param_1 + 0x330) + 8" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);" (assignment_expression "cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8)" identifier = (pointer_expression "*(char *)(*(int *)(param_1 + 0x330) + 8)" * (cast_expression "(char *)(*(int *)(param_1 + 0x330) + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 8)" ( (binary_expression "*(int *)(param_1 + 0x330) + 8" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) ))))) ;) (while_statement "while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }" while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }" { (expression_statement "*(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1" (pointer_expression "*(int *)(*(int *)(param_1 + 0x330) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x330) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" ( (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) )))) = (binary_expression "*(int *)(*(int *)(param_1 + 0x330) + 4) + -1" (pointer_expression "*(int *)(*(int *)(param_1 + 0x330) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x330) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" ( (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) )))) + number_literal)) ;) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }" if (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%'))" ( (binary_expression "(*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x330) + 4) < 0)" ( (binary_expression "*(int *)(*(int *)(param_1 + 0x330) + 4) < 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x330) + 4)" * (cast_expression "(int *)(*(int *)(param_1 + 0x330) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" ( (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) )))) < number_literal) )) && (parenthesized_expression "(*pcVar6 != '%')" ( (binary_expression "*pcVar6 != '%'" (pointer_expression "*pcVar6" * identifier) != (char_literal "'%'" ' character ')) ))) )) (compound_statement "{\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }" { (expression_statement "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);" (call_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003f9ff4" * (cast_expression "(code *)PTR_WriteBlobByte_003f9ff4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,10)" ( identifier , number_literal ))) ;) (expression_statement "*(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;" (assignment_expression "*(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48" (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x330) + 4)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x330) + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" ( (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) })) (expression_statement "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);" (call_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)" ( (pointer_expression "*(code *)PTR_WriteBlobByte_003f9ff4" * (cast_expression "(code *)PTR_WriteBlobByte_003f9ff4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,*pcVar6)" ( identifier , (pointer_expression "*pcVar6" * identifier) ))) ;) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" identifier = (binary_expression "pcVar6 + 1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar6;" (assignment_expression "cVar1 = *pcVar6" identifier = (pointer_expression "*pcVar6" * identifier)) ;) })) (expression_statement "puVar5 = puVar5 + 2;" (assignment_expression "puVar5 = puVar5 + 2" identifier = (binary_expression "puVar5 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar5 != puVar3 + (uVar8 + 1) * 2)" ( (binary_expression "puVar5 != puVar3 + (uVar8 + 1) * 2" identifier != (binary_expression "puVar3 + (uVar8 + 1) * 2" identifier + (binary_expression "(uVar8 + 1) * 2" (parenthesized_expression "(uVar8 + 1)" ( (binary_expression "uVar8 + 1" identifier + number_literal) )) * number_literal))) )) ;) (expression_statement "**(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;" (assignment_expression "**(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4" (pointer_expression "**(int **)(param_1 + 0x330)" * (pointer_expression "*(int **)(param_1 + 0x330)" * (cast_expression "(int **)(param_1 + 0x330)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) ))))) = (binary_expression "iVar9 + -4 + uVar8 * -4" (binary_expression "iVar9 + -4" identifier + number_literal) + (binary_expression "uVar8 * -4" identifier * number_literal))) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar5 = puVar3 + uVar8 * 2 + 1;" (assignment_expression "puVar5 = puVar3 + uVar8 * 2 + 1" identifier = (binary_expression "puVar3 + uVar8 * 2 + 1" (binary_expression "puVar3 + uVar8 * 2" identifier + (binary_expression "uVar8 * 2" identifier * number_literal)) + number_literal)) ;) (do_statement "do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);" do (compound_statement "{\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x330) + iVar9;" (assignment_expression "iVar7 = *(int *)(param_1 + 0x330) + iVar9" identifier = (binary_expression "*(int *)(param_1 + 0x330) + iVar9" (pointer_expression "*(int *)(param_1 + 0x330)" * (cast_expression "(int *)(param_1 + 0x330)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x330)" ( (binary_expression "param_1 + 0x330" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;" (assignment_expression "*(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5" (pointer_expression "*(undefined1 *)(iVar7 + 0xe)" * (cast_expression "(undefined1 *)(iVar7 + 0xe)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xe)" ( (binary_expression "iVar7 + 0xe" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)puVar5" * (cast_expression "(undefined1 *)puVar5" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar5 = (uint *)((int)puVar5 + 1);" (assignment_expression "puVar5 = (uint *)((int)puVar5 + 1)" identifier = (cast_expression "(uint *)((int)puVar5 + 1)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar5 + 1)" ( (binary_expression "(int)puVar5 + 1" (cast_expression "(int)puVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(iVar9 != 4)" ( (binary_expression "iVar9 != 4" identifier != number_literal) )) ;) })) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec)" ( (binary_expression "PTR_UINT_003f98e4 + 0x2e0" identifier + number_literal) , (binary_expression "PTR_UINT_003f98e4 + 0x2c0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_003f98e4 + 0x3ec" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" ( (pointer_expression "*(code *)PTR___assert_fail_003fa620" * (cast_expression "(code *)PTR___assert_fail_003fa620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec)" ( (binary_expression "PTR_UINT_003f98e4 + -0x784" identifier + number_literal) , (binary_expression "PTR_UINT_003f98e4 + 0x2c0" identifier + number_literal) , number_literal , (binary_expression "PTR_UINT_003f98e4 + 0x3ec" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * IDENT)) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT % IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (char_literal ' character '))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT / LIT) ))) * LIT)) + (char_literal ' character '))) ;) (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 IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + 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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) < LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = LIT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (pointer_expression * IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT))) )) ;) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })))
(function_definition "void Ascii85Encode(int param_1,undefined1 param_2)\n\n{\n  char cVar1;\n  int *piVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  (*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);\n  return;\n}" (primitive_type "void") (function_declarator "Ascii85Encode(int param_1,undefined1 param_2)" (identifier "Ascii85Encode") (parameter_list "(int param_1,undefined1 param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined1 param_2" (type_identifier "undefined1") (identifier "param_2")) () ")"))) (compound_statement "{\n  char cVar1;\n  int *piVar2;\n  uint *puVar3;\n  uint uVar4;\n  uint *puVar5;\n  char *pcVar6;\n  int iVar7;\n  uint uVar8;\n  int iVar9;\n  uint uVar10;\n  uint uVar11;\n  \n  if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }\n  (*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);\n  return;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "uint *puVar3;" (type_identifier "uint") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "uint *puVar5;" (type_identifier "uint") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (if_statement "if (param_1 == 0) {\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" ({ "{") (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003fa620" (* "*") (cast_expression "(code *)PTR___assert_fail_003fa620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003fa620"))) () ")")) (argument_list "(PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec)" (( "(") (binary_expression "PTR_LAB_003f98e0 + 0x3da0" (identifier "PTR_LAB_003f98e0") (+ "+") (number_literal "0x3da0")) (, ",") (binary_expression "PTR_UINT_003f98e4 + 0x2c0" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "0x2c0")) (, ",") (number_literal "0x137") (, ",") (binary_expression "PTR_UINT_003f98e4 + 0x3ec" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "0x3ec")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x336c) == -0x54535255) {\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x336c) == -0x54535255)" (( "(") (binary_expression "*(int *)(param_1 + 0x336c) == -0x54535255" (pointer_expression "*(int *)(param_1 + 0x336c)" (* "*") (cast_expression "(int *)(param_1 + 0x336c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x336c)" (( "(") (binary_expression "param_1 + 0x336c" (identifier "param_1") (+ "+") (number_literal "0x336c")) () ")")))) (== "==") (number_literal "-0x54535255")) () ")")) (compound_statement "{\n    piVar2 = *(int **)(param_1 + 0x330);\n    if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }\n    (*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);\n    return;\n  }" ({ "{") (expression_statement "piVar2 = *(int **)(param_1 + 0x330);" (assignment_expression "piVar2 = *(int **)(param_1 + 0x330)" (identifier "piVar2") (= "=") (pointer_expression "*(int **)(param_1 + 0x330)" (* "*") (cast_expression "(int **)(param_1 + 0x330)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")"))))) (; ";")) (if_statement "if (piVar2 != (int *)0x0) {\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }" (if "if") (parenthesized_expression "(piVar2 != (int *)0x0)" (( "(") (binary_expression "piVar2 != (int *)0x0" (identifier "piVar2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;\n      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;\n      iVar9 = **(int **)(param_1 + 0x330);\n      if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }\n      return;\n    }" ({ "{") (expression_statement "*(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;" (assignment_expression "*(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2" (pointer_expression "*(undefined1 *)((int)piVar2 + *piVar2 + 0xe)" (* "*") (cast_expression "(undefined1 *)((int)piVar2 + *piVar2 + 0xe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar2 + *piVar2 + 0xe)" (( "(") (binary_expression "(int)piVar2 + *piVar2 + 0xe" (binary_expression "(int)piVar2 + *piVar2" (cast_expression "(int)piVar2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar2")) (+ "+") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (+ "+") (number_literal "0xe")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "**(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;" (assignment_expression "**(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1" (pointer_expression "**(int **)(param_1 + 0x330)" (* "*") (pointer_expression "*(int **)(param_1 + 0x330)" (* "*") (cast_expression "(int **)(param_1 + 0x330)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")"))))) (= "=") (binary_expression "**(int **)(param_1 + 0x330) + 1" (pointer_expression "**(int **)(param_1 + 0x330)" (* "*") (pointer_expression "*(int **)(param_1 + 0x330)" (* "*") (cast_expression "(int **)(param_1 + 0x330)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")"))))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar9 = **(int **)(param_1 + 0x330);" (assignment_expression "iVar9 = **(int **)(param_1 + 0x330)" (identifier "iVar9") (= "=") (pointer_expression "**(int **)(param_1 + 0x330)" (* "*") (pointer_expression "*(int **)(param_1 + 0x330)" (* "*") (cast_expression "(int **)(param_1 + 0x330)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")")))))) (; ";")) (if_statement "if (3 < iVar9) {\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }" (if "if") (parenthesized_expression "(3 < iVar9)" (( "(") (binary_expression "3 < iVar9" (number_literal "3") (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);\n        uVar8 = iVar9 - 4U >> 2;\n        puVar5 = puVar3;\n        do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);\n        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;\n        iVar9 = 0;\n        puVar5 = puVar3 + uVar8 * 2 + 1;\n        do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);\n      }" ({ "{") (expression_statement "puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);" (assignment_expression "puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe)" (identifier "puVar3") (= "=") (cast_expression "(uint *)((int)*(int **)(param_1 + 0x330) + 0xe)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)*(int **)(param_1 + 0x330) + 0xe)" (( "(") (binary_expression "(int)*(int **)(param_1 + 0x330) + 0xe" (cast_expression "(int)*(int **)(param_1 + 0x330)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(int **)(param_1 + 0x330)" (* "*") (cast_expression "(int **)(param_1 + 0x330)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")"))))) (+ "+") (number_literal "0xe")) () ")")))) (; ";")) (expression_statement "uVar8 = iVar9 - 4U >> 2;" (assignment_expression "uVar8 = iVar9 - 4U >> 2" (identifier "uVar8") (= "=") (binary_expression "iVar9 - 4U >> 2" (binary_expression "iVar9 - 4U" (identifier "iVar9") (- "-") (number_literal "4U")) (>> ">>") (number_literal "2"))) (; ";")) (expression_statement "puVar5 = puVar3;" (assignment_expression "puVar5 = puVar3" (identifier "puVar5") (= "=") (identifier "puVar3")) (; ";")) (do_statement "do {\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);" (do "do") (compound_statement "{\n          uVar10 = *puVar5;\n          iVar7 = *(int *)(param_1 + 0x330);\n          if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }\n          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);\n          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);\n          while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }\n          puVar5 = puVar5 + 2;\n        }" ({ "{") (expression_statement "uVar10 = *puVar5;" (assignment_expression "uVar10 = *puVar5" (identifier "uVar10") (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "iVar7 = *(int *)(param_1 + 0x330);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x330)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x330)" (* "*") (cast_expression "(int *)(param_1 + 0x330)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")"))))) (; ";")) (if_statement "if (uVar10 == 0) {\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }\n          else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }" (if "if") (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined1 *)(iVar7 + 8) = 0x7a;\n            *(undefined1 *)(iVar7 + 9) = 0;\n          }" ({ "{") (expression_statement "*(undefined1 *)(iVar7 + 8) = 0x7a;" (assignment_expression "*(undefined1 *)(iVar7 + 8) = 0x7a" (pointer_expression "*(undefined1 *)(iVar7 + 8)" (* "*") (cast_expression "(undefined1 *)(iVar7 + 8)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0x7a")) (; ";")) (expression_statement "*(undefined1 *)(iVar7 + 9) = 0;" (assignment_expression "*(undefined1 *)(iVar7 + 9) = 0" (pointer_expression "*(undefined1 *)(iVar7 + 9)" (* "*") (cast_expression "(undefined1 *)(iVar7 + 9)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 9)" (( "(") (binary_expression "iVar7 + 9" (identifier "iVar7") (+ "+") (number_literal "9")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }" (else "else") (compound_statement "{\n            pcVar6 = (char *)(iVar7 + 8);\n            uVar4 = 0x31c84b1;\n            do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));\n            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';\n            *(undefined1 *)(iVar7 + 0xd) = 0;\n          }" ({ "{") (expression_statement "pcVar6 = (char *)(iVar7 + 8);" (assignment_expression "pcVar6 = (char *)(iVar7 + 8)" (identifier "pcVar6") (= "=") (cast_expression "(char *)(iVar7 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "uVar4 = 0x31c84b1;" (assignment_expression "uVar4 = 0x31c84b1" (identifier "uVar4") (= "=") (number_literal "0x31c84b1")) (; ";")) (do_statement "do {\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            } while (pcVar6 != (char *)(iVar7 + 0xc));" (do "do") (compound_statement "{\n              if (uVar4 == 0) {\n                trap(7);\n              }\n              uVar11 = uVar10 / uVar4;\n              uVar10 = uVar10 % uVar4;\n              *pcVar6 = (char)uVar11 + '!';\n              pcVar6 = pcVar6 + 1;\n              uVar4 = uVar4 / 0x55;\n            }" ({ "{") (if_statement "if (uVar4 == 0) {\n                trap(7);\n              }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                trap(7);\n              }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar11 = uVar10 / uVar4;" (assignment_expression "uVar11 = uVar10 / uVar4" (identifier "uVar11") (= "=") (binary_expression "uVar10 / uVar4" (identifier "uVar10") (/ "/") (identifier "uVar4"))) (; ";")) (expression_statement "uVar10 = uVar10 % uVar4;" (assignment_expression "uVar10 = uVar10 % uVar4" (identifier "uVar10") (= "=") (binary_expression "uVar10 % uVar4" (identifier "uVar10") (% "%") (identifier "uVar4"))) (; ";")) (expression_statement "*pcVar6 = (char)uVar11 + '!';" (assignment_expression "*pcVar6 = (char)uVar11 + '!'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (= "=") (binary_expression "(char)uVar11 + '!'" (cast_expression "(char)uVar11" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar11")) (+ "+") (char_literal "'!'" (' "'") (character "!") (' "'")))) (; ";")) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = uVar4 / 0x55;" (assignment_expression "uVar4 = uVar4 / 0x55" (identifier "uVar4") (= "=") (binary_expression "uVar4 / 0x55" (identifier "uVar4") (/ "/") (number_literal "0x55"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar6 != (char *)(iVar7 + 0xc))" (( "(") (binary_expression "pcVar6 != (char *)(iVar7 + 0xc)" (identifier "pcVar6") (!= "!=") (cast_expression "(char *)(iVar7 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) () ")")) (; ";")) (expression_statement "*(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';" (assignment_expression "*(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!'" (pointer_expression "*(char *)(iVar7 + 0xc)" (* "*") (cast_expression "(char *)(iVar7 + 0xc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "(char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!'" (binary_expression "(char)uVar10 + (char)(uVar10 / 0x55) * -0x55" (cast_expression "(char)uVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar10")) (+ "+") (binary_expression "(char)(uVar10 / 0x55) * -0x55" (cast_expression "(char)(uVar10 / 0x55)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "(uVar10 / 0x55)" (( "(") (binary_expression "uVar10 / 0x55" (identifier "uVar10") (/ "/") (number_literal "0x55")) () ")"))) (* "*") (number_literal "-0x55"))) (+ "+") (char_literal "'!'" (' "'") (character "!") (' "'")))) (; ";")) (expression_statement "*(undefined1 *)(iVar7 + 0xd) = 0;" (assignment_expression "*(undefined1 *)(iVar7 + 0xd) = 0" (pointer_expression "*(undefined1 *)(iVar7 + 0xd)" (* "*") (cast_expression "(undefined1 *)(iVar7 + 0xd)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xd)" (( "(") (binary_expression "iVar7 + 0xd" (identifier "iVar7") (+ "+") (number_literal "0xd")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);" (assignment_expression "pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8)" (identifier "pcVar6") (= "=") (cast_expression "(char *)(*(int *)(param_1 + 0x330) + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x330) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x330) + 8" (pointer_expression "*(int *)(param_1 + 0x330)" (* "*") (cast_expression "(int *)(param_1 + 0x330)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")")))) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);" (assignment_expression "cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(*(int *)(param_1 + 0x330) + 8)" (* "*") (cast_expression "(char *)(*(int *)(param_1 + 0x330) + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x330) + 8)" (( "(") (binary_expression "*(int *)(param_1 + 0x330) + 8" (pointer_expression "*(int *)(param_1 + 0x330)" (* "*") (cast_expression "(int *)(param_1 + 0x330)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (while_statement "while (cVar1 != '\0') {\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }" (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;\n            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }\n            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);\n            pcVar6 = pcVar6 + 1;\n            cVar1 = *pcVar6;\n          }" ({ "{") (expression_statement "*(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;" (assignment_expression "*(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1" (pointer_expression "*(int *)(*(int *)(param_1 + 0x330) + 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x330) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" (* "*") (cast_expression "(int *)(param_1 + 0x330)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "*(int *)(*(int *)(param_1 + 0x330) + 4) + -1" (pointer_expression "*(int *)(*(int *)(param_1 + 0x330) + 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x330) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" (* "*") (cast_expression "(int *)(param_1 + 0x330)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }" (if "if") (parenthesized_expression "((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%'))" (( "(") (binary_expression "(*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')" (parenthesized_expression "(*(int *)(*(int *)(param_1 + 0x330) + 4) < 0)" (( "(") (binary_expression "*(int *)(*(int *)(param_1 + 0x330) + 4) < 0" (pointer_expression "*(int *)(*(int *)(param_1 + 0x330) + 4)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x330) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" (* "*") (cast_expression "(int *)(param_1 + 0x330)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (< "<") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*pcVar6 != '%')" (( "(") (binary_expression "*pcVar6 != '%'" (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) (!= "!=") (char_literal "'%'" (' "'") (character "%") (' "'"))) () ")"))) () ")")) (compound_statement "{\n              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);\n              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;\n            }" ({ "{") (expression_statement "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);" (call_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)" (( "(") (pointer_expression "*(code *)PTR_WriteBlobByte_003f9ff4" (* "*") (cast_expression "(code *)PTR_WriteBlobByte_003f9ff4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_WriteBlobByte_003f9ff4"))) () ")")) (argument_list "(param_1,10)" (( "(") (identifier "param_1") (, ",") (number_literal "10") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;" (assignment_expression "*(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48" (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x330) + 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x330) + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x330) + 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x330) + 4" (pointer_expression "*(int *)(param_1 + 0x330)" (* "*") (cast_expression "(int *)(param_1 + 0x330)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0x48")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);" (call_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6)" (parenthesized_expression "(*(code *)PTR_WriteBlobByte_003f9ff4)" (( "(") (pointer_expression "*(code *)PTR_WriteBlobByte_003f9ff4" (* "*") (cast_expression "(code *)PTR_WriteBlobByte_003f9ff4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_WriteBlobByte_003f9ff4"))) () ")")) (argument_list "(param_1,*pcVar6)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")"))) (; ";")) (expression_statement "pcVar6 = pcVar6 + 1;" (assignment_expression "pcVar6 = pcVar6 + 1" (identifier "pcVar6") (= "=") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar1 = *pcVar6;" (assignment_expression "cVar1 = *pcVar6" (identifier "cVar1") (= "=") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6"))) (; ";")) (} "}"))) (expression_statement "puVar5 = puVar5 + 2;" (assignment_expression "puVar5 = puVar5 + 2" (identifier "puVar5") (= "=") (binary_expression "puVar5 + 2" (identifier "puVar5") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar5 != puVar3 + (uVar8 + 1) * 2)" (( "(") (binary_expression "puVar5 != puVar3 + (uVar8 + 1) * 2" (identifier "puVar5") (!= "!=") (binary_expression "puVar3 + (uVar8 + 1) * 2" (identifier "puVar3") (+ "+") (binary_expression "(uVar8 + 1) * 2" (parenthesized_expression "(uVar8 + 1)" (( "(") (binary_expression "uVar8 + 1" (identifier "uVar8") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2")))) () ")")) (; ";")) (expression_statement "**(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;" (assignment_expression "**(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4" (pointer_expression "**(int **)(param_1 + 0x330)" (* "*") (pointer_expression "*(int **)(param_1 + 0x330)" (* "*") (cast_expression "(int **)(param_1 + 0x330)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")"))))) (= "=") (binary_expression "iVar9 + -4 + uVar8 * -4" (binary_expression "iVar9 + -4" (identifier "iVar9") (+ "+") (number_literal "-4")) (+ "+") (binary_expression "uVar8 * -4" (identifier "uVar8") (* "*") (number_literal "-4")))) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar5 = puVar3 + uVar8 * 2 + 1;" (assignment_expression "puVar5 = puVar3 + uVar8 * 2 + 1" (identifier "puVar5") (= "=") (binary_expression "puVar3 + uVar8 * 2 + 1" (binary_expression "puVar3 + uVar8 * 2" (identifier "puVar3") (+ "+") (binary_expression "uVar8 * 2" (identifier "uVar8") (* "*") (number_literal "2"))) (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        } while (iVar9 != 4);" (do "do") (compound_statement "{\n          iVar7 = *(int *)(param_1 + 0x330) + iVar9;\n          iVar9 = iVar9 + 1;\n          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;\n          puVar5 = (uint *)((int)puVar5 + 1);\n        }" ({ "{") (expression_statement "iVar7 = *(int *)(param_1 + 0x330) + iVar9;" (assignment_expression "iVar7 = *(int *)(param_1 + 0x330) + iVar9" (identifier "iVar7") (= "=") (binary_expression "*(int *)(param_1 + 0x330) + iVar9" (pointer_expression "*(int *)(param_1 + 0x330)" (* "*") (cast_expression "(int *)(param_1 + 0x330)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x330)" (( "(") (binary_expression "param_1 + 0x330" (identifier "param_1") (+ "+") (number_literal "0x330")) () ")")))) (+ "+") (identifier "iVar9"))) (; ";")) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;" (assignment_expression "*(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5" (pointer_expression "*(undefined1 *)(iVar7 + 0xe)" (* "*") (cast_expression "(undefined1 *)(iVar7 + 0xe)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xe)" (( "(") (binary_expression "iVar7 + 0xe" (identifier "iVar7") (+ "+") (number_literal "0xe")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)puVar5" (* "*") (cast_expression "(undefined1 *)puVar5" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar5")))) (; ";")) (expression_statement "puVar5 = (uint *)((int)puVar5 + 1);" (assignment_expression "puVar5 = (uint *)((int)puVar5 + 1)" (identifier "puVar5") (= "=") (cast_expression "(uint *)((int)puVar5 + 1)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar5 + 1)" (( "(") (binary_expression "(int)puVar5 + 1" (cast_expression "(int)puVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar5")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 != 4)" (( "(") (binary_expression "iVar9 != 4" (identifier "iVar9") (!= "!=") (number_literal "4")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003fa620" (* "*") (cast_expression "(code *)PTR___assert_fail_003fa620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003fa620"))) () ")")) (argument_list "(PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec)" (( "(") (binary_expression "PTR_UINT_003f98e4 + 0x2e0" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "0x2e0")) (, ",") (binary_expression "PTR_UINT_003f98e4 + 0x2c0" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "0x2c0")) (, ",") (number_literal "0x139") (, ",") (binary_expression "PTR_UINT_003f98e4 + 0x3ec" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "0x3ec")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);" (call_expression "(*(code *)PTR___assert_fail_003fa620)\n            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec)" (parenthesized_expression "(*(code *)PTR___assert_fail_003fa620)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_003fa620" (* "*") (cast_expression "(code *)PTR___assert_fail_003fa620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_003fa620"))) () ")")) (argument_list "(PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec)" (( "(") (binary_expression "PTR_UINT_003f98e4 + -0x784" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "-0x784")) (, ",") (binary_expression "PTR_UINT_003f98e4 + 0x2c0" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "0x2c0")) (, ",") (number_literal "0x138") (, ",") (binary_expression "PTR_UINT_003f98e4 + 0x3ec" (identifier "PTR_UINT_003f98e4") (+ "+") (number_literal "0x3ec")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Enum "GravityType": Some values do not have unique names */
/* WARNING: Enum "DisposeType": Some values do not have unique names */
/* WARNING: Enum "ChannelType": Some values do not have unique names */
/* WARNING: Enum "PixelChannel": Some values do not have unique names */

void function_1(type_1 *var_1,type_2 type_5)

{
  char var_10;
  type_3 *var_4;
  type_2 *var_12;
  int var_14;
  type_4 var_7;
  char *var_9;
  type_2 *var_11;
  type_4 var_13;
  int var_5;
  type_4 var_6;
  type_4 uVar11;
  
  if (var_1 == (type_1 *)0x0) {
    (*(type_5 *)PTR___assert_fail_003fa620)
              (var_2 + 0x3da0,var_3 + 0x2c0,0x137,var_3 + 0x3ec);
    return;
  }
  if (var_1->signature == 0xabacadab) {
    var_4 = var_1->ascii85;
    if (var_4 != (type_3 *)0x0) {
      var_4->buffer[var_4->offset] = type_5;
      var_1->ascii85->offset = var_1->ascii85->offset + 1;
      var_5 = var_1->ascii85->offset;
      if (3 < var_5) {
        var_12 = var_1->ascii85->buffer;
        var_13 = var_5 - 4U >> 2;
        var_11 = var_12;
        do {
          var_6 = *(type_4 *)var_11;
          var_4 = var_1->ascii85;
          if (var_6 == 0) {
            var_4->tuple[0] = 'z';
            var_4->tuple[1] = '\0';
          }
          else {
            var_9 = var_4->tuple;
            var_7 = 0x31c84b1;
            do {
              if (var_7 == 0) {
                var_8(7);
              }
              uVar11 = var_6 / var_7;
              var_6 = var_6 % var_7;
              *var_9 = (char)uVar11 + '!';
              var_9 = var_9 + 1;
              var_7 = var_7 / 0x55;
            } while (var_9 != var_4->tuple + 4);
            var_4->tuple[4] = (char)var_6 + (char)(var_6 / 0x55) * -0x55 + '!';
            var_4->tuple[5] = '\0';
          }
          var_9 = var_1->ascii85->tuple;
          var_10 = var_1->ascii85->tuple[0];
          while (var_10 != '\0') {
            var_1->ascii85->line_break = var_1->ascii85->line_break + -1;
            if ((var_1->ascii85->line_break < 0) && (*var_9 != '%')) {
              (*(type_5 *)PTR_WriteBlobByte_003f9ff4)(var_1,10);
              var_1->ascii85->line_break = 0x48;
            }
            (*(type_5 *)PTR_WriteBlobByte_003f9ff4)(var_1,*var_9);
            var_9 = var_9 + 1;
            var_10 = *var_9;
          }
          var_11 = var_11 + 8;
        } while (var_11 != var_12 + (var_13 + 1) * 8);
        var_1->ascii85->offset = var_5 + -4 + var_13 * -4;
        var_5 = 0;
        var_11 = var_12 + var_13 * 8 + 4;
        do {
          var_14 = var_5 + 1;
          var_1->ascii85->buffer[var_5] = *var_11;
          var_5 = var_14;
          var_11 = var_11 + 1;
        } while (var_14 != 4);
      }
      return;
    }
    (*(type_5 *)PTR___assert_fail_003fa620)
              (var_3 + 0x2e0,var_3 + 0x2c0,0x139,var_3 + 0x3ec);
    return;
  }
  (*(type_5 *)PTR___assert_fail_003fa620)
            (var_3 + -0x784,var_3 + 0x2c0,0x138,var_3 + 0x3ec);
  return;
}


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

void MASKED(int param_1,undefined1 param_2)

{
  char cVar1;
  int *piVar2;
  uint *puVar3;
  uint uVar4;
  uint *puVar5;
  char *pcVar6;
  int iVar7;
  uint uVar8;
  int iVar9;
  uint uVar10;
  uint uVar11;
  
  if (param_1 == 0) {
    (*(code *)PTR___assert_fail_003fa620)
              (PTR_LAB_003f98e0 + 0x3da0,PTR_UINT_003f98e4 + 0x2c0,0x137,PTR_UINT_003f98e4 + 0x3ec);
    return;
  }
  if (*(int *)(param_1 + 0x336c) == -0x54535255) {
    piVar2 = *(int **)(param_1 + 0x330);
    if (piVar2 != (int *)0x0) {
      *(undefined1 *)((int)piVar2 + *piVar2 + 0xe) = param_2;
      **(int **)(param_1 + 0x330) = **(int **)(param_1 + 0x330) + 1;
      iVar9 = **(int **)(param_1 + 0x330);
      if (3 < iVar9) {
        puVar3 = (uint *)((int)*(int **)(param_1 + 0x330) + 0xe);
        uVar8 = iVar9 - 4U >> 2;
        puVar5 = puVar3;
        do {
          uVar10 = *puVar5;
          iVar7 = *(int *)(param_1 + 0x330);
          if (uVar10 == 0) {
            *(undefined1 *)(iVar7 + 8) = 0x7a;
            *(undefined1 *)(iVar7 + 9) = 0;
          }
          else {
            pcVar6 = (char *)(iVar7 + 8);
            uVar4 = 0x31c84b1;
            do {
              if (uVar4 == 0) {
                trap(7);
              }
              uVar11 = uVar10 / uVar4;
              uVar10 = uVar10 % uVar4;
              *pcVar6 = (char)uVar11 + '!';
              pcVar6 = pcVar6 + 1;
              uVar4 = uVar4 / 0x55;
            } while (pcVar6 != (char *)(iVar7 + 0xc));
            *(char *)(iVar7 + 0xc) = (char)uVar10 + (char)(uVar10 / 0x55) * -0x55 + '!';
            *(undefined1 *)(iVar7 + 0xd) = 0;
          }
          pcVar6 = (char *)(*(int *)(param_1 + 0x330) + 8);
          cVar1 = *(char *)(*(int *)(param_1 + 0x330) + 8);
          while (cVar1 != '\0') {
            *(int *)(*(int *)(param_1 + 0x330) + 4) = *(int *)(*(int *)(param_1 + 0x330) + 4) + -1;
            if ((*(int *)(*(int *)(param_1 + 0x330) + 4) < 0) && (*pcVar6 != '%')) {
              (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,10);
              *(undefined4 *)(*(int *)(param_1 + 0x330) + 4) = 0x48;
            }
            (*(code *)PTR_WriteBlobByte_003f9ff4)(param_1,*pcVar6);
            pcVar6 = pcVar6 + 1;
            cVar1 = *pcVar6;
          }
          puVar5 = puVar5 + 2;
        } while (puVar5 != puVar3 + (uVar8 + 1) * 2);
        **(int **)(param_1 + 0x330) = iVar9 + -4 + uVar8 * -4;
        iVar9 = 0;
        puVar5 = puVar3 + uVar8 * 2 + 1;
        do {
          iVar7 = *(int *)(param_1 + 0x330) + iVar9;
          iVar9 = iVar9 + 1;
          *(undefined1 *)(iVar7 + 0xe) = *(undefined1 *)puVar5;
          puVar5 = (uint *)((int)puVar5 + 1);
        } while (iVar9 != 4);
      }
      return;
    }
    (*(code *)PTR___assert_fail_003fa620)
              (PTR_UINT_003f98e4 + 0x2e0,PTR_UINT_003f98e4 + 0x2c0,0x139,PTR_UINT_003f98e4 + 0x3ec);
    return;
  }
  (*(code *)PTR___assert_fail_003fa620)
            (PTR_UINT_003f98e4 + -0x784,PTR_UINT_003f98e4 + 0x2c0,0x138,PTR_UINT_003f98e4 + 0x3ec);
  return;
}

