
/* __throw_insufficient_space(char const*, char const*) */

char * __throw_insufficient_space(char *param_1,char *param_2)

{
  undefined1 uVar1;
  bool bVar2;
  int iVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  char *pcVar7;
  undefined4 *puVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  int iVar12;
  uint uVar13;
  int iVar14;
  undefined4 *puVar15;
  undefined *puVar16;
  code *pcVar17;
  char acStack_b4 [4];
  int aiStack_b0 [4];
  undefined1 auStack_a0 [4];
  undefined4 uStack_9c;
  undefined1 auStack_98 [16];
  undefined4 local_80 [6];
  undefined1 local_68 [72];
  undefined4 auStack_20 [4];
  
  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);
  puVar4 = local_80;
  do {
    puVar6 = puVar4;
    puVar15 = puVar5;
    puVar5 = puVar15 + 4;
    *puVar6 = *puVar15;
    uVar11 = puVar15[2];
    uVar10 = puVar15[3];
    puVar6[1] = puVar15[1];
    puVar6[2] = uVar11;
    puVar6[3] = uVar10;
    puVar4 = puVar6 + 4;
  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));
  uVar13 = (int)param_2 - (int)param_1;
  uVar10 = puVar15[5];
  uVar1 = *(undefined1 *)(puVar15 + 6);
  puVar6[4] = *puVar5;
  puVar6[5] = uVar10;
  *(undefined1 *)(puVar6 + 6) = uVar1;
  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);
  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);
  puVar5 = local_80;
  puVar4 = puVar15;
  do {
    puVar8 = puVar4;
    puVar6 = puVar5;
    puVar5 = puVar6 + 4;
    uVar9 = puVar6[1];
    uVar11 = puVar6[2];
    uVar10 = puVar6[3];
    *puVar8 = *puVar6;
    puVar8[1] = uVar9;
    puVar8[2] = uVar11;
    puVar8[3] = uVar10;
    puVar4 = puVar8 + 4;
  } while (puVar5 != auStack_20);
  uVar10 = puVar6[5];
  puVar8[4] = *puVar5;
  iVar14 = (int)puVar15 + uVar13;
  puVar8[5] = uVar10;
  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);
  pcVar17 = __concat_size_t;
  *(undefined1 *)(iVar14 + 0x68) = 0;
  puVar16 = PTR___throw_logic_error_00432268;
  (*(code *)PTR___throw_logic_error_00432268)(puVar15);
  iVar12 = *(int *)(puVar16 + 0xd63ec);
  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;
  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;
  *(code **)((int)&uStack_9c + iVar3) = pcVar17;
  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;
  pcVar7 = acStack_b4 + iVar3;
  do {
    pcVar7 = pcVar7 + -1;
    bVar2 = 9 < uVar13;
    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);
    uVar13 = uVar13 / 10;
  } while (bVar2);
  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;
  if (param_1 < pcVar7) {
    pcVar7 = (char *)0xffffffff;
  }
  else {
    (**(code **)(puVar16 + 0xda888))();
  }
  return pcVar7;
}



/* __throw_insufficient_space(char const*, char const*) */

char * __throw_insufficient_space(char *param_1,char *param_2)

{
  undefined1 uVar1;
  bool bVar2;
  int iVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  char *pcVar7;
  undefined4 *puVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  int iVar12;
  uint uVar13;
  int iVar14;
  undefined4 *puVar15;
  undefined *puVar16;
  code *pcVar17;
  char acStack_b4 [4];
  int aiStack_b0 [4];
  undefined1 auStack_a0 [4];
  undefined4 uStack_9c;
  undefined1 auStack_98 [16];
  undefined4 local_80 [6];
  undefined1 local_68 [72];
  undefined4 auStack_20 [4];
  
  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);
  puVar4 = local_80;
  do {
    puVar6 = puVar4;
    puVar15 = puVar5;
    puVar5 = puVar15 + 4;
    *puVar6 = *puVar15;
    uVar11 = puVar15[2];
    uVar10 = puVar15[3];
    puVar6[1] = puVar15[1];
    puVar6[2] = uVar11;
    puVar6[3] = uVar10;
    puVar4 = puVar6 + 4;
  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));
  uVar13 = (int)param_2 - (int)param_1;
  uVar10 = puVar15[5];
  uVar1 = *(undefined1 *)(puVar15 + 6);
  puVar6[4] = *puVar5;
  puVar6[5] = uVar10;
  *(undefined1 *)(puVar6 + 6) = uVar1;
  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);
  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);
  puVar5 = local_80;
  puVar4 = puVar15;
  do {
    puVar8 = puVar4;
    puVar6 = puVar5;
    puVar5 = puVar6 + 4;
    uVar9 = puVar6[1];
    uVar11 = puVar6[2];
    uVar10 = puVar6[3];
    *puVar8 = *puVar6;
    puVar8[1] = uVar9;
    puVar8[2] = uVar11;
    puVar8[3] = uVar10;
    puVar4 = puVar8 + 4;
  } while (puVar5 != auStack_20);
  uVar10 = puVar6[5];
  puVar8[4] = *puVar5;
  iVar14 = (int)puVar15 + uVar13;
  puVar8[5] = uVar10;
  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);
  pcVar17 = __concat_size_t;
  *(undefined1 *)(iVar14 + 0x68) = 0;
  puVar16 = PTR___throw_logic_error_00432268;
  (*(code *)PTR___throw_logic_error_00432268)(puVar15);
  iVar12 = *(int *)(puVar16 + 0xd63ec);
  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;
  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;
  *(code **)((int)&uStack_9c + iVar3) = pcVar17;
  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;
  pcVar7 = acStack_b4 + iVar3;
  do {
    pcVar7 = pcVar7 + -1;
    bVar2 = 9 < uVar13;
    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);
    uVar13 = uVar13 / 10;
  } while (bVar2);
  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;
  if (param_1 < pcVar7) {
    pcVar7 = (char *)0xffffffff;
  }
  else {
    (**(code **)(puVar16 + 0xda888))();
  }
  return pcVar7;
}


lui gp,0xe
addiu gp,gp,-0x1c20
addu gp,gp,t9
addiu sp,sp,-0x98
lw v0,-0x7ee4(gp)
or t2,a0,zero
sw s8,0x90(sp)
addiu v0,v0,-0x5914
or s8,sp,zero
sw ra,0x94(sp)
addiu v1,s8,0x18
sw s1,0x8c(sp)
addiu a2,v0,0x60
sw s0,0x88(sp)
sw gp,0x10(sp)
or a0,v1,zero
lw t3,0x0(v0)
addiu v0,v0,0x10
addiu a0,a0,0x10
sw t3,-0x10(a0)
lw t1,-0xc(v0)
lw t0,-0x8(v0)
lw a3,-0x4(v0)
sw t1,-0xc(a0)
sw t0,-0x8(a0)
bne v0,a2,0x0035be30
_sw a3,-0x4(a0)
subu s0,a1,t2
lw t0,0x0(v0)
lw a3,0x4(v0)
addiu t1,s8,0x78
addiu a1,s0,0x70
lbu a2,0x8(v0)
or v0,v1,zero
sw t0,0x0(a0)
srl v1,a1,0x3
sw a3,0x4(a0)
sb a2,0x8(a0)
sll v1,v1,0x3
subu sp,sp,v1
addiu s1,sp,0x10
or v1,s1,zero
lw a3,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw a2,-0xc(v0)
lw a1,-0x8(v0)
lw a0,-0x4(v0)
sw a3,-0x10(v1)
sw a2,-0xc(v1)
sw a1,-0x8(v1)
bne v0,t1,0x0035be98
_sw a0,-0x4(v1)
lw a3,0x0(v0)
addiu a0,s1,0x68
lw v0,0x4(v0)
or a2,s0,zero
lw t9,-0x3a48(gp)
or a1,t2,zero
sw a3,0x0(v1)
addu s0,s1,s0
jalr t9
_sw v0,0x4(v1)
or a0,s1,zero
lw gp,0x10(s8)
lw t9,-0x7f68(gp)
jalr t9
_sb zero,0x68(s0)
(translation_unit "/* __throw_insufficient_space(char const*, char const*) */\n\nchar * __throw_insufficient_space(char *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  bool bVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  char acStack_b4 [4];\n  int aiStack_b0 [4];\n  undefined1 auStack_a0 [4];\n  undefined4 uStack_9c;\n  undefined1 auStack_98 [16];\n  undefined4 local_80 [6];\n  undefined1 local_68 [72];\n  undefined4 auStack_20 [4];\n  \n  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);\n  puVar4 = local_80;\n  do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));\n  uVar13 = (int)param_2 - (int)param_1;\n  uVar10 = puVar15[5];\n  uVar1 = *(undefined1 *)(puVar15 + 6);\n  puVar6[4] = *puVar5;\n  puVar6[5] = uVar10;\n  *(undefined1 *)(puVar6 + 6) = uVar1;\n  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);\n  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);\n  puVar5 = local_80;\n  puVar4 = puVar15;\n  do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);\n  uVar10 = puVar6[5];\n  puVar8[4] = *puVar5;\n  iVar14 = (int)puVar15 + uVar13;\n  puVar8[5] = uVar10;\n  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);\n  pcVar17 = __concat_size_t;\n  *(undefined1 *)(iVar14 + 0x68) = 0;\n  puVar16 = PTR___throw_logic_error_00432268;\n  (*(code *)PTR___throw_logic_error_00432268)(puVar15);\n  iVar12 = *(int *)(puVar16 + 0xd63ec);\n  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;\n  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;\n  *(code **)((int)&uStack_9c + iVar3) = pcVar17;\n  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;\n  pcVar7 = acStack_b4 + iVar3;\n  do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);\n  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;\n  if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }\n  return pcVar7;\n}\n\n" comment (function_definition "char * __throw_insufficient_space(char *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  bool bVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  char acStack_b4 [4];\n  int aiStack_b0 [4];\n  undefined1 auStack_a0 [4];\n  undefined4 uStack_9c;\n  undefined1 auStack_98 [16];\n  undefined4 local_80 [6];\n  undefined1 local_68 [72];\n  undefined4 auStack_20 [4];\n  \n  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);\n  puVar4 = local_80;\n  do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));\n  uVar13 = (int)param_2 - (int)param_1;\n  uVar10 = puVar15[5];\n  uVar1 = *(undefined1 *)(puVar15 + 6);\n  puVar6[4] = *puVar5;\n  puVar6[5] = uVar10;\n  *(undefined1 *)(puVar6 + 6) = uVar1;\n  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);\n  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);\n  puVar5 = local_80;\n  puVar4 = puVar15;\n  do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);\n  uVar10 = puVar6[5];\n  puVar8[4] = *puVar5;\n  iVar14 = (int)puVar15 + uVar13;\n  puVar8[5] = uVar10;\n  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);\n  pcVar17 = __concat_size_t;\n  *(undefined1 *)(iVar14 + 0x68) = 0;\n  puVar16 = PTR___throw_logic_error_00432268;\n  (*(code *)PTR___throw_logic_error_00432268)(puVar15);\n  iVar12 = *(int *)(puVar16 + 0xd63ec);\n  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;\n  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;\n  *(code **)((int)&uStack_9c + iVar3) = pcVar17;\n  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;\n  pcVar7 = acStack_b4 + iVar3;\n  do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);\n  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;\n  if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }\n  return pcVar7;\n}" primitive_type (pointer_declarator "* __throw_insufficient_space(char *param_1,char *param_2)" * (function_declarator "__throw_insufficient_space(char *param_1,char *param_2)" identifier (parameter_list "(char *param_1,char *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  undefined1 uVar1;\n  bool bVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  char acStack_b4 [4];\n  int aiStack_b0 [4];\n  undefined1 auStack_a0 [4];\n  undefined4 uStack_9c;\n  undefined1 auStack_98 [16];\n  undefined4 local_80 [6];\n  undefined1 local_68 [72];\n  undefined4 auStack_20 [4];\n  \n  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);\n  puVar4 = local_80;\n  do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));\n  uVar13 = (int)param_2 - (int)param_1;\n  uVar10 = puVar15[5];\n  uVar1 = *(undefined1 *)(puVar15 + 6);\n  puVar6[4] = *puVar5;\n  puVar6[5] = uVar10;\n  *(undefined1 *)(puVar6 + 6) = uVar1;\n  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);\n  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);\n  puVar5 = local_80;\n  puVar4 = puVar15;\n  do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);\n  uVar10 = puVar6[5];\n  puVar8[4] = *puVar5;\n  iVar14 = (int)puVar15 + uVar13;\n  puVar8[5] = uVar10;\n  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);\n  pcVar17 = __concat_size_t;\n  *(undefined1 *)(iVar14 + 0x68) = 0;\n  puVar16 = PTR___throw_logic_error_00432268;\n  (*(code *)PTR___throw_logic_error_00432268)(puVar15);\n  iVar12 = *(int *)(puVar16 + 0xd63ec);\n  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;\n  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;\n  *(code **)((int)&uStack_9c + iVar3) = pcVar17;\n  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;\n  pcVar7 = acStack_b4 + iVar3;\n  do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);\n  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;\n  if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }\n  return pcVar7;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "char acStack_b4 [4];" primitive_type (array_declarator "acStack_b4 [4]" identifier [ number_literal ]) ;) (declaration "int aiStack_b0 [4];" primitive_type (array_declarator "aiStack_b0 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_a0 [4];" type_identifier (array_declarator "auStack_a0 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_9c;" type_identifier identifier ;) (declaration "undefined1 auStack_98 [16];" type_identifier (array_declarator "auStack_98 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_80 [6];" type_identifier (array_declarator "local_80 [6]" identifier [ number_literal ]) ;) (declaration "undefined1 local_68 [72];" type_identifier (array_declarator "local_68 [72]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_20 [4];" type_identifier (array_declarator "auStack_20 [4]" identifier [ number_literal ]) ;) (expression_statement "puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);" (assignment_expression "puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" identifier = (cast_expression "(undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" ( (binary_expression "PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914" identifier + number_literal) )))) ;) (expression_statement "puVar4 = local_80;" (assignment_expression "puVar4 = local_80" identifier = identifier) ;) (do_statement "do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));" do (compound_statement "{\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  }" { (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) (expression_statement "puVar15 = puVar5;" (assignment_expression "puVar15 = puVar5" identifier = identifier) ;) (expression_statement "puVar5 = puVar15 + 4;" (assignment_expression "puVar5 = puVar15 + 4" identifier = (binary_expression "puVar15 + 4" identifier + number_literal)) ;) (expression_statement "*puVar6 = *puVar15;" (assignment_expression "*puVar6 = *puVar15" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar11 = puVar15[2];" (assignment_expression "uVar11 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar15[3];" (assignment_expression "uVar10 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar6[1] = puVar15[1];" (assignment_expression "puVar6[1] = puVar15[1]" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "puVar6[2] = uVar11;" (assignment_expression "puVar6[2] = uVar11" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = uVar10;" (assignment_expression "puVar6[3] = uVar10" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4))" ( (binary_expression "puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" identifier != (cast_expression "(undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" ( (binary_expression "PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4" identifier + number_literal) )))) )) ;) (expression_statement "uVar13 = (int)param_2 - (int)param_1;" (assignment_expression "uVar13 = (int)param_2 - (int)param_1" identifier = (binary_expression "(int)param_2 - (int)param_1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar10 = puVar15[5];" (assignment_expression "uVar10 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar15 + 6);" (assignment_expression "uVar1 = *(undefined1 *)(puVar15 + 6)" identifier = (pointer_expression "*(undefined1 *)(puVar15 + 6)" * (cast_expression "(undefined1 *)(puVar15 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) ))))) ;) (expression_statement "puVar6[4] = *puVar5;" (assignment_expression "puVar6[4] = *puVar5" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar6[5] = uVar10;" (assignment_expression "puVar6[5] = uVar10" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar6 + 6) = uVar1;" (assignment_expression "*(undefined1 *)(puVar6 + 6) = uVar1" (pointer_expression "*(undefined1 *)(puVar6 + 6)" * (cast_expression "(undefined1 *)(puVar6 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 6)" ( (binary_expression "puVar6 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = -(uVar13 + 0x70 & 0xfffffff8);" (assignment_expression "iVar3 = -(uVar13 + 0x70 & 0xfffffff8)" identifier = (unary_expression "-(uVar13 + 0x70 & 0xfffffff8)" - (parenthesized_expression "(uVar13 + 0x70 & 0xfffffff8)" ( (binary_expression "uVar13 + 0x70 & 0xfffffff8" (binary_expression "uVar13 + 0x70" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);" (assignment_expression "puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20)" identifier = (cast_expression "(undefined4 *)(local_68 + iVar3 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + iVar3 + -0x20)" ( (binary_expression "local_68 + iVar3 + -0x20" (binary_expression "local_68 + iVar3" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar5 = local_80;" (assignment_expression "puVar5 = local_80" identifier = identifier) ;) (expression_statement "puVar4 = puVar15;" (assignment_expression "puVar4 = puVar15" identifier = identifier) ;) (do_statement "do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);" do (compound_statement "{\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "puVar6 = puVar5;" (assignment_expression "puVar6 = puVar5" identifier = identifier) ;) (expression_statement "puVar5 = puVar6 + 4;" (assignment_expression "puVar5 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar9 = puVar6[1];" (assignment_expression "uVar9 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = puVar6[2];" (assignment_expression "uVar11 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar6[3];" (assignment_expression "uVar10 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar8 = *puVar6;" (assignment_expression "*puVar8 = *puVar6" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar8[1] = uVar9;" (assignment_expression "puVar8[1] = uVar9" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uVar11;" (assignment_expression "puVar8[2] = uVar11" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = uVar10;" (assignment_expression "puVar8[3] = uVar10" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar5 != auStack_20)" ( (binary_expression "puVar5 != auStack_20" identifier != identifier) )) ;) (expression_statement "uVar10 = puVar6[5];" (assignment_expression "uVar10 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar8[4] = *puVar5;" (assignment_expression "puVar8[4] = *puVar5" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "iVar14 = (int)puVar15 + uVar13;" (assignment_expression "iVar14 = (int)puVar15 + uVar13" identifier = (binary_expression "(int)puVar15 + uVar13" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar8[5] = uVar10;" (assignment_expression "puVar8[5] = uVar10" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);" (call_expression "(*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" ( (pointer_expression "*(code *)PTR_memcpy_00436788" * (cast_expression "(code *)PTR_memcpy_00436788" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)auStack_20 + iVar3)" ( (binary_expression "(int)auStack_20 + iVar3" (cast_expression "(int)auStack_20" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) ;) (expression_statement "pcVar17 = __concat_size_t;" (assignment_expression "pcVar17 = __concat_size_t" identifier = identifier) ;) (expression_statement "*(undefined1 *)(iVar14 + 0x68) = 0;" (assignment_expression "*(undefined1 *)(iVar14 + 0x68) = 0" (pointer_expression "*(undefined1 *)(iVar14 + 0x68)" * (cast_expression "(undefined1 *)(iVar14 + 0x68)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x68)" ( (binary_expression "iVar14 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar16 = PTR___throw_logic_error_00432268;" (assignment_expression "puVar16 = PTR___throw_logic_error_00432268" identifier = identifier) ;) (expression_statement "(*(code *)PTR___throw_logic_error_00432268)(puVar15);" (call_expression "(*(code *)PTR___throw_logic_error_00432268)(puVar15)" (parenthesized_expression "(*(code *)PTR___throw_logic_error_00432268)" ( (pointer_expression "*(code *)PTR___throw_logic_error_00432268" * (cast_expression "(code *)PTR___throw_logic_error_00432268" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar15)" ( identifier ))) ;) (expression_statement "iVar12 = *(int *)(puVar16 + 0xd63ec);" (assignment_expression "iVar12 = *(int *)(puVar16 + 0xd63ec)" identifier = (pointer_expression "*(int *)(puVar16 + 0xd63ec)" * (cast_expression "(int *)(puVar16 + 0xd63ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xd63ec)" ( (binary_expression "puVar16 + 0xd63ec" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(auStack_a0 + iVar3) = auStack_98;" (assignment_expression "*(undefined1 **)(auStack_a0 + iVar3) = auStack_98" (pointer_expression "*(undefined1 **)(auStack_a0 + iVar3)" * (cast_expression "(undefined1 **)(auStack_a0 + iVar3)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_a0 + iVar3)" ( (binary_expression "auStack_a0 + iVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;" (assignment_expression "*(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14" (pointer_expression "*(int *)((int)aiStack_b0 + iVar3 + 0xc)" * (cast_expression "(int *)((int)aiStack_b0 + iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar3 + 0xc)" ( (binary_expression "(int)aiStack_b0 + iVar3 + 0xc" (binary_expression "(int)aiStack_b0 + iVar3" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)&uStack_9c + iVar3) = pcVar17;" (assignment_expression "*(code **)((int)&uStack_9c + iVar3) = pcVar17" (pointer_expression "*(code **)((int)&uStack_9c + iVar3)" * (cast_expression "(code **)((int)&uStack_9c + iVar3)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&uStack_9c + iVar3)" ( (binary_expression "(int)&uStack_9c + iVar3" (cast_expression "(int)&uStack_9c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_9c" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;" (assignment_expression "*(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0" (pointer_expression "*(undefined **)((int)aiStack_b0 + iVar3)" * (cast_expression "(undefined **)((int)aiStack_b0 + iVar3)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_b0 + iVar3)" ( (binary_expression "(int)aiStack_b0 + iVar3" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (binary_expression "puVar16 + 0xde2d0" identifier + number_literal)) ;) (expression_statement "pcVar7 = acStack_b4 + iVar3;" (assignment_expression "pcVar7 = acStack_b4 + iVar3" identifier = (binary_expression "acStack_b4 + iVar3" identifier + identifier)) ;) (do_statement "do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);" do (compound_statement "{\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  }" { (expression_statement "pcVar7 = pcVar7 + -1;" (assignment_expression "pcVar7 = pcVar7 + -1" identifier = (binary_expression "pcVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar2 = 9 < uVar13;" (assignment_expression "bVar2 = 9 < uVar13" identifier = (binary_expression "9 < uVar13" number_literal < identifier)) ;) (expression_statement "*pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);" (assignment_expression "*pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10)" (pointer_expression "*pcVar7" * identifier) = (pointer_expression "*(char *)(iVar12 + -0x58a8 + uVar13 % 10)" * (cast_expression "(char *)(iVar12 + -0x58a8 + uVar13 % 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -0x58a8 + uVar13 % 10)" ( (binary_expression "iVar12 + -0x58a8 + uVar13 % 10" (binary_expression "iVar12 + -0x58a8" identifier + number_literal) + (binary_expression "uVar13 % 10" identifier % number_literal)) ))))) ;) (expression_statement "uVar13 = uVar13 / 10;" (assignment_expression "uVar13 = uVar13 / 10" identifier = (binary_expression "uVar13 / 10" identifier / number_literal)) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (expression_statement "pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;" (assignment_expression "pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7" identifier = (binary_expression "acStack_b4 + iVar3 + -(int)pcVar7" (binary_expression "acStack_b4 + iVar3" identifier + identifier) + (unary_expression "-(int)pcVar7" - (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }" if (parenthesized_expression "(param_1 < pcVar7)" ( (binary_expression "param_1 < pcVar7" identifier < identifier) )) (compound_statement "{\n    pcVar7 = (char *)0xffffffff;\n  }" { (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    (**(code **)(puVar16 + 0xda888))();\n  }" else (compound_statement "{\n    (**(code **)(puVar16 + 0xda888))();\n  }" { (expression_statement "(**(code **)(puVar16 + 0xda888))();" (call_expression "(**(code **)(puVar16 + 0xda888))()" (parenthesized_expression "(**(code **)(puVar16 + 0xda888))" ( (pointer_expression "**(code **)(puVar16 + 0xda888)" * (pointer_expression "*(code **)(puVar16 + 0xda888)" * (cast_expression "(code **)(puVar16 + 0xda888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0xda888)" ( (binary_expression "puVar16 + 0xda888" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (return_statement "return pcVar7;" return identifier ;) })))
(translation_unit "/* __throw_insufficient_space(char const*, char const*) */\n\nchar * __throw_insufficient_space(char *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  bool bVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  char acStack_b4 [4];\n  int aiStack_b0 [4];\n  undefined1 auStack_a0 [4];\n  undefined4 uStack_9c;\n  undefined1 auStack_98 [16];\n  undefined4 local_80 [6];\n  undefined1 local_68 [72];\n  undefined4 auStack_20 [4];\n  \n  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);\n  puVar4 = local_80;\n  do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));\n  uVar13 = (int)param_2 - (int)param_1;\n  uVar10 = puVar15[5];\n  uVar1 = *(undefined1 *)(puVar15 + 6);\n  puVar6[4] = *puVar5;\n  puVar6[5] = uVar10;\n  *(undefined1 *)(puVar6 + 6) = uVar1;\n  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);\n  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);\n  puVar5 = local_80;\n  puVar4 = puVar15;\n  do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);\n  uVar10 = puVar6[5];\n  puVar8[4] = *puVar5;\n  iVar14 = (int)puVar15 + uVar13;\n  puVar8[5] = uVar10;\n  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);\n  pcVar17 = __concat_size_t;\n  *(undefined1 *)(iVar14 + 0x68) = 0;\n  puVar16 = PTR___throw_logic_error_00432268;\n  (*(code *)PTR___throw_logic_error_00432268)(puVar15);\n  iVar12 = *(int *)(puVar16 + 0xd63ec);\n  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;\n  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;\n  *(code **)((int)&uStack_9c + iVar3) = pcVar17;\n  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;\n  pcVar7 = acStack_b4 + iVar3;\n  do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);\n  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;\n  if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }\n  return pcVar7;\n}\n\n" comment (function_definition "char * __throw_insufficient_space(char *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  bool bVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  char acStack_b4 [4];\n  int aiStack_b0 [4];\n  undefined1 auStack_a0 [4];\n  undefined4 uStack_9c;\n  undefined1 auStack_98 [16];\n  undefined4 local_80 [6];\n  undefined1 local_68 [72];\n  undefined4 auStack_20 [4];\n  \n  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);\n  puVar4 = local_80;\n  do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));\n  uVar13 = (int)param_2 - (int)param_1;\n  uVar10 = puVar15[5];\n  uVar1 = *(undefined1 *)(puVar15 + 6);\n  puVar6[4] = *puVar5;\n  puVar6[5] = uVar10;\n  *(undefined1 *)(puVar6 + 6) = uVar1;\n  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);\n  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);\n  puVar5 = local_80;\n  puVar4 = puVar15;\n  do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);\n  uVar10 = puVar6[5];\n  puVar8[4] = *puVar5;\n  iVar14 = (int)puVar15 + uVar13;\n  puVar8[5] = uVar10;\n  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);\n  pcVar17 = __concat_size_t;\n  *(undefined1 *)(iVar14 + 0x68) = 0;\n  puVar16 = PTR___throw_logic_error_00432268;\n  (*(code *)PTR___throw_logic_error_00432268)(puVar15);\n  iVar12 = *(int *)(puVar16 + 0xd63ec);\n  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;\n  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;\n  *(code **)((int)&uStack_9c + iVar3) = pcVar17;\n  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;\n  pcVar7 = acStack_b4 + iVar3;\n  do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);\n  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;\n  if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }\n  return pcVar7;\n}" primitive_type (pointer_declarator "* __throw_insufficient_space(char *param_1,char *param_2)" * (function_declarator "__throw_insufficient_space(char *param_1,char *param_2)" identifier (parameter_list "(char *param_1,char *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  undefined1 uVar1;\n  bool bVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  char acStack_b4 [4];\n  int aiStack_b0 [4];\n  undefined1 auStack_a0 [4];\n  undefined4 uStack_9c;\n  undefined1 auStack_98 [16];\n  undefined4 local_80 [6];\n  undefined1 local_68 [72];\n  undefined4 auStack_20 [4];\n  \n  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);\n  puVar4 = local_80;\n  do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));\n  uVar13 = (int)param_2 - (int)param_1;\n  uVar10 = puVar15[5];\n  uVar1 = *(undefined1 *)(puVar15 + 6);\n  puVar6[4] = *puVar5;\n  puVar6[5] = uVar10;\n  *(undefined1 *)(puVar6 + 6) = uVar1;\n  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);\n  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);\n  puVar5 = local_80;\n  puVar4 = puVar15;\n  do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);\n  uVar10 = puVar6[5];\n  puVar8[4] = *puVar5;\n  iVar14 = (int)puVar15 + uVar13;\n  puVar8[5] = uVar10;\n  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);\n  pcVar17 = __concat_size_t;\n  *(undefined1 *)(iVar14 + 0x68) = 0;\n  puVar16 = PTR___throw_logic_error_00432268;\n  (*(code *)PTR___throw_logic_error_00432268)(puVar15);\n  iVar12 = *(int *)(puVar16 + 0xd63ec);\n  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;\n  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;\n  *(code **)((int)&uStack_9c + iVar3) = pcVar17;\n  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;\n  pcVar7 = acStack_b4 + iVar3;\n  do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);\n  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;\n  if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }\n  return pcVar7;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "char acStack_b4 [4];" primitive_type (array_declarator "acStack_b4 [4]" identifier [ number_literal ]) ;) (declaration "int aiStack_b0 [4];" primitive_type (array_declarator "aiStack_b0 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_a0 [4];" type_identifier (array_declarator "auStack_a0 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_9c;" type_identifier identifier ;) (declaration "undefined1 auStack_98 [16];" type_identifier (array_declarator "auStack_98 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_80 [6];" type_identifier (array_declarator "local_80 [6]" identifier [ number_literal ]) ;) (declaration "undefined1 local_68 [72];" type_identifier (array_declarator "local_68 [72]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_20 [4];" type_identifier (array_declarator "auStack_20 [4]" identifier [ number_literal ]) ;) (expression_statement "puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);" (assignment_expression "puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" identifier = (cast_expression "(undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" ( (binary_expression "PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914" identifier + number_literal) )))) ;) (expression_statement "puVar4 = local_80;" (assignment_expression "puVar4 = local_80" identifier = identifier) ;) (do_statement "do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));" do (compound_statement "{\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  }" { (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) (expression_statement "puVar15 = puVar5;" (assignment_expression "puVar15 = puVar5" identifier = identifier) ;) (expression_statement "puVar5 = puVar15 + 4;" (assignment_expression "puVar5 = puVar15 + 4" identifier = (binary_expression "puVar15 + 4" identifier + number_literal)) ;) (expression_statement "*puVar6 = *puVar15;" (assignment_expression "*puVar6 = *puVar15" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar11 = puVar15[2];" (assignment_expression "uVar11 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar15[3];" (assignment_expression "uVar10 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar6[1] = puVar15[1];" (assignment_expression "puVar6[1] = puVar15[1]" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "puVar6[2] = uVar11;" (assignment_expression "puVar6[2] = uVar11" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = uVar10;" (assignment_expression "puVar6[3] = uVar10" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4))" ( (binary_expression "puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" identifier != (cast_expression "(undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" ( (binary_expression "PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4" identifier + number_literal) )))) )) ;) (expression_statement "uVar13 = (int)param_2 - (int)param_1;" (assignment_expression "uVar13 = (int)param_2 - (int)param_1" identifier = (binary_expression "(int)param_2 - (int)param_1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar10 = puVar15[5];" (assignment_expression "uVar10 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar15 + 6);" (assignment_expression "uVar1 = *(undefined1 *)(puVar15 + 6)" identifier = (pointer_expression "*(undefined1 *)(puVar15 + 6)" * (cast_expression "(undefined1 *)(puVar15 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) ))))) ;) (expression_statement "puVar6[4] = *puVar5;" (assignment_expression "puVar6[4] = *puVar5" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar6[5] = uVar10;" (assignment_expression "puVar6[5] = uVar10" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar6 + 6) = uVar1;" (assignment_expression "*(undefined1 *)(puVar6 + 6) = uVar1" (pointer_expression "*(undefined1 *)(puVar6 + 6)" * (cast_expression "(undefined1 *)(puVar6 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 6)" ( (binary_expression "puVar6 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = -(uVar13 + 0x70 & 0xfffffff8);" (assignment_expression "iVar3 = -(uVar13 + 0x70 & 0xfffffff8)" identifier = (unary_expression "-(uVar13 + 0x70 & 0xfffffff8)" - (parenthesized_expression "(uVar13 + 0x70 & 0xfffffff8)" ( (binary_expression "uVar13 + 0x70 & 0xfffffff8" (binary_expression "uVar13 + 0x70" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);" (assignment_expression "puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20)" identifier = (cast_expression "(undefined4 *)(local_68 + iVar3 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + iVar3 + -0x20)" ( (binary_expression "local_68 + iVar3 + -0x20" (binary_expression "local_68 + iVar3" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar5 = local_80;" (assignment_expression "puVar5 = local_80" identifier = identifier) ;) (expression_statement "puVar4 = puVar15;" (assignment_expression "puVar4 = puVar15" identifier = identifier) ;) (do_statement "do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);" do (compound_statement "{\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "puVar6 = puVar5;" (assignment_expression "puVar6 = puVar5" identifier = identifier) ;) (expression_statement "puVar5 = puVar6 + 4;" (assignment_expression "puVar5 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar9 = puVar6[1];" (assignment_expression "uVar9 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = puVar6[2];" (assignment_expression "uVar11 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar6[3];" (assignment_expression "uVar10 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar8 = *puVar6;" (assignment_expression "*puVar8 = *puVar6" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar8[1] = uVar9;" (assignment_expression "puVar8[1] = uVar9" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uVar11;" (assignment_expression "puVar8[2] = uVar11" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = uVar10;" (assignment_expression "puVar8[3] = uVar10" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar5 != auStack_20)" ( (binary_expression "puVar5 != auStack_20" identifier != identifier) )) ;) (expression_statement "uVar10 = puVar6[5];" (assignment_expression "uVar10 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar8[4] = *puVar5;" (assignment_expression "puVar8[4] = *puVar5" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "iVar14 = (int)puVar15 + uVar13;" (assignment_expression "iVar14 = (int)puVar15 + uVar13" identifier = (binary_expression "(int)puVar15 + uVar13" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar8[5] = uVar10;" (assignment_expression "puVar8[5] = uVar10" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);" (call_expression "(*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" ( (pointer_expression "*(code *)PTR_memcpy_00436788" * (cast_expression "(code *)PTR_memcpy_00436788" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)auStack_20 + iVar3)" ( (binary_expression "(int)auStack_20 + iVar3" (cast_expression "(int)auStack_20" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) ;) (expression_statement "pcVar17 = __concat_size_t;" (assignment_expression "pcVar17 = __concat_size_t" identifier = identifier) ;) (expression_statement "*(undefined1 *)(iVar14 + 0x68) = 0;" (assignment_expression "*(undefined1 *)(iVar14 + 0x68) = 0" (pointer_expression "*(undefined1 *)(iVar14 + 0x68)" * (cast_expression "(undefined1 *)(iVar14 + 0x68)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x68)" ( (binary_expression "iVar14 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar16 = PTR___throw_logic_error_00432268;" (assignment_expression "puVar16 = PTR___throw_logic_error_00432268" identifier = identifier) ;) (expression_statement "(*(code *)PTR___throw_logic_error_00432268)(puVar15);" (call_expression "(*(code *)PTR___throw_logic_error_00432268)(puVar15)" (parenthesized_expression "(*(code *)PTR___throw_logic_error_00432268)" ( (pointer_expression "*(code *)PTR___throw_logic_error_00432268" * (cast_expression "(code *)PTR___throw_logic_error_00432268" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar15)" ( identifier ))) ;) (expression_statement "iVar12 = *(int *)(puVar16 + 0xd63ec);" (assignment_expression "iVar12 = *(int *)(puVar16 + 0xd63ec)" identifier = (pointer_expression "*(int *)(puVar16 + 0xd63ec)" * (cast_expression "(int *)(puVar16 + 0xd63ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xd63ec)" ( (binary_expression "puVar16 + 0xd63ec" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(auStack_a0 + iVar3) = auStack_98;" (assignment_expression "*(undefined1 **)(auStack_a0 + iVar3) = auStack_98" (pointer_expression "*(undefined1 **)(auStack_a0 + iVar3)" * (cast_expression "(undefined1 **)(auStack_a0 + iVar3)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_a0 + iVar3)" ( (binary_expression "auStack_a0 + iVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;" (assignment_expression "*(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14" (pointer_expression "*(int *)((int)aiStack_b0 + iVar3 + 0xc)" * (cast_expression "(int *)((int)aiStack_b0 + iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar3 + 0xc)" ( (binary_expression "(int)aiStack_b0 + iVar3 + 0xc" (binary_expression "(int)aiStack_b0 + iVar3" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)&uStack_9c + iVar3) = pcVar17;" (assignment_expression "*(code **)((int)&uStack_9c + iVar3) = pcVar17" (pointer_expression "*(code **)((int)&uStack_9c + iVar3)" * (cast_expression "(code **)((int)&uStack_9c + iVar3)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&uStack_9c + iVar3)" ( (binary_expression "(int)&uStack_9c + iVar3" (cast_expression "(int)&uStack_9c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_9c" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;" (assignment_expression "*(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0" (pointer_expression "*(undefined **)((int)aiStack_b0 + iVar3)" * (cast_expression "(undefined **)((int)aiStack_b0 + iVar3)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_b0 + iVar3)" ( (binary_expression "(int)aiStack_b0 + iVar3" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (binary_expression "puVar16 + 0xde2d0" identifier + number_literal)) ;) (expression_statement "pcVar7 = acStack_b4 + iVar3;" (assignment_expression "pcVar7 = acStack_b4 + iVar3" identifier = (binary_expression "acStack_b4 + iVar3" identifier + identifier)) ;) (do_statement "do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);" do (compound_statement "{\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  }" { (expression_statement "pcVar7 = pcVar7 + -1;" (assignment_expression "pcVar7 = pcVar7 + -1" identifier = (binary_expression "pcVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar2 = 9 < uVar13;" (assignment_expression "bVar2 = 9 < uVar13" identifier = (binary_expression "9 < uVar13" number_literal < identifier)) ;) (expression_statement "*pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);" (assignment_expression "*pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10)" (pointer_expression "*pcVar7" * identifier) = (pointer_expression "*(char *)(iVar12 + -0x58a8 + uVar13 % 10)" * (cast_expression "(char *)(iVar12 + -0x58a8 + uVar13 % 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -0x58a8 + uVar13 % 10)" ( (binary_expression "iVar12 + -0x58a8 + uVar13 % 10" (binary_expression "iVar12 + -0x58a8" identifier + number_literal) + (binary_expression "uVar13 % 10" identifier % number_literal)) ))))) ;) (expression_statement "uVar13 = uVar13 / 10;" (assignment_expression "uVar13 = uVar13 / 10" identifier = (binary_expression "uVar13 / 10" identifier / number_literal)) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (expression_statement "pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;" (assignment_expression "pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7" identifier = (binary_expression "acStack_b4 + iVar3 + -(int)pcVar7" (binary_expression "acStack_b4 + iVar3" identifier + identifier) + (unary_expression "-(int)pcVar7" - (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }" if (parenthesized_expression "(param_1 < pcVar7)" ( (binary_expression "param_1 < pcVar7" identifier < identifier) )) (compound_statement "{\n    pcVar7 = (char *)0xffffffff;\n  }" { (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    (**(code **)(puVar16 + 0xda888))();\n  }" else (compound_statement "{\n    (**(code **)(puVar16 + 0xda888))();\n  }" { (expression_statement "(**(code **)(puVar16 + 0xda888))();" (call_expression "(**(code **)(puVar16 + 0xda888))()" (parenthesized_expression "(**(code **)(puVar16 + 0xda888))" ( (pointer_expression "**(code **)(puVar16 + 0xda888)" * (pointer_expression "*(code **)(puVar16 + 0xda888)" * (cast_expression "(code **)(puVar16 + 0xda888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0xda888)" ( (binary_expression "puVar16 + 0xda888" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (return_statement "return pcVar7;" return identifier ;) })))
(translation_unit "char * __throw_insufficient_space(char *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  bool bVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  char acStack_b4 [4];\n  int aiStack_b0 [4];\n  undefined1 auStack_a0 [4];\n  undefined4 uStack_9c;\n  undefined1 auStack_98 [16];\n  undefined4 local_80 [6];\n  undefined1 local_68 [72];\n  undefined4 auStack_20 [4];\n  \n  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);\n  puVar4 = local_80;\n  do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));\n  uVar13 = (int)param_2 - (int)param_1;\n  uVar10 = puVar15[5];\n  uVar1 = *(undefined1 *)(puVar15 + 6);\n  puVar6[4] = *puVar5;\n  puVar6[5] = uVar10;\n  *(undefined1 *)(puVar6 + 6) = uVar1;\n  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);\n  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);\n  puVar5 = local_80;\n  puVar4 = puVar15;\n  do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);\n  uVar10 = puVar6[5];\n  puVar8[4] = *puVar5;\n  iVar14 = (int)puVar15 + uVar13;\n  puVar8[5] = uVar10;\n  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);\n  pcVar17 = __concat_size_t;\n  *(undefined1 *)(iVar14 + 0x68) = 0;\n  puVar16 = PTR___throw_logic_error_00432268;\n  (*(code *)PTR___throw_logic_error_00432268)(puVar15);\n  iVar12 = *(int *)(puVar16 + 0xd63ec);\n  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;\n  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;\n  *(code **)((int)&uStack_9c + iVar3) = pcVar17;\n  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;\n  pcVar7 = acStack_b4 + iVar3;\n  do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);\n  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;\n  if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }\n  return pcVar7;\n}\n\n" (function_definition "char * __throw_insufficient_space(char *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  bool bVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  char acStack_b4 [4];\n  int aiStack_b0 [4];\n  undefined1 auStack_a0 [4];\n  undefined4 uStack_9c;\n  undefined1 auStack_98 [16];\n  undefined4 local_80 [6];\n  undefined1 local_68 [72];\n  undefined4 auStack_20 [4];\n  \n  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);\n  puVar4 = local_80;\n  do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));\n  uVar13 = (int)param_2 - (int)param_1;\n  uVar10 = puVar15[5];\n  uVar1 = *(undefined1 *)(puVar15 + 6);\n  puVar6[4] = *puVar5;\n  puVar6[5] = uVar10;\n  *(undefined1 *)(puVar6 + 6) = uVar1;\n  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);\n  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);\n  puVar5 = local_80;\n  puVar4 = puVar15;\n  do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);\n  uVar10 = puVar6[5];\n  puVar8[4] = *puVar5;\n  iVar14 = (int)puVar15 + uVar13;\n  puVar8[5] = uVar10;\n  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);\n  pcVar17 = __concat_size_t;\n  *(undefined1 *)(iVar14 + 0x68) = 0;\n  puVar16 = PTR___throw_logic_error_00432268;\n  (*(code *)PTR___throw_logic_error_00432268)(puVar15);\n  iVar12 = *(int *)(puVar16 + 0xd63ec);\n  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;\n  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;\n  *(code **)((int)&uStack_9c + iVar3) = pcVar17;\n  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;\n  pcVar7 = acStack_b4 + iVar3;\n  do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);\n  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;\n  if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }\n  return pcVar7;\n}" primitive_type (pointer_declarator "* __throw_insufficient_space(char *param_1,char *param_2)" * (function_declarator "__throw_insufficient_space(char *param_1,char *param_2)" identifier (parameter_list "(char *param_1,char *param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) )))) (compound_statement "{\n  undefined1 uVar1;\n  bool bVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  char acStack_b4 [4];\n  int aiStack_b0 [4];\n  undefined1 auStack_a0 [4];\n  undefined4 uStack_9c;\n  undefined1 auStack_98 [16];\n  undefined4 local_80 [6];\n  undefined1 local_68 [72];\n  undefined4 auStack_20 [4];\n  \n  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);\n  puVar4 = local_80;\n  do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));\n  uVar13 = (int)param_2 - (int)param_1;\n  uVar10 = puVar15[5];\n  uVar1 = *(undefined1 *)(puVar15 + 6);\n  puVar6[4] = *puVar5;\n  puVar6[5] = uVar10;\n  *(undefined1 *)(puVar6 + 6) = uVar1;\n  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);\n  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);\n  puVar5 = local_80;\n  puVar4 = puVar15;\n  do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);\n  uVar10 = puVar6[5];\n  puVar8[4] = *puVar5;\n  iVar14 = (int)puVar15 + uVar13;\n  puVar8[5] = uVar10;\n  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);\n  pcVar17 = __concat_size_t;\n  *(undefined1 *)(iVar14 + 0x68) = 0;\n  puVar16 = PTR___throw_logic_error_00432268;\n  (*(code *)PTR___throw_logic_error_00432268)(puVar15);\n  iVar12 = *(int *)(puVar16 + 0xd63ec);\n  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;\n  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;\n  *(code **)((int)&uStack_9c + iVar3) = pcVar17;\n  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;\n  pcVar7 = acStack_b4 + iVar3;\n  do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);\n  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;\n  if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }\n  return pcVar7;\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined4 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined4 uVar9;" type_identifier identifier ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined4 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "code *pcVar17;" type_identifier (pointer_declarator "*pcVar17" * identifier) ;) (declaration "char acStack_b4 [4];" primitive_type (array_declarator "acStack_b4 [4]" identifier [ number_literal ]) ;) (declaration "int aiStack_b0 [4];" primitive_type (array_declarator "aiStack_b0 [4]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_a0 [4];" type_identifier (array_declarator "auStack_a0 [4]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_9c;" type_identifier identifier ;) (declaration "undefined1 auStack_98 [16];" type_identifier (array_declarator "auStack_98 [16]" identifier [ number_literal ]) ;) (declaration "undefined4 local_80 [6];" type_identifier (array_declarator "local_80 [6]" identifier [ number_literal ]) ;) (declaration "undefined1 local_68 [72];" type_identifier (array_declarator "local_68 [72]" identifier [ number_literal ]) ;) (declaration "undefined4 auStack_20 [4];" type_identifier (array_declarator "auStack_20 [4]" identifier [ number_literal ]) ;) (expression_statement "puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);" (assignment_expression "puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" identifier = (cast_expression "(undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" ( (binary_expression "PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914" identifier + number_literal) )))) ;) (expression_statement "puVar4 = local_80;" (assignment_expression "puVar4 = local_80" identifier = identifier) ;) (do_statement "do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));" do (compound_statement "{\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  }" { (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" identifier = identifier) ;) (expression_statement "puVar15 = puVar5;" (assignment_expression "puVar15 = puVar5" identifier = identifier) ;) (expression_statement "puVar5 = puVar15 + 4;" (assignment_expression "puVar5 = puVar15 + 4" identifier = (binary_expression "puVar15 + 4" identifier + number_literal)) ;) (expression_statement "*puVar6 = *puVar15;" (assignment_expression "*puVar6 = *puVar15" (pointer_expression "*puVar6" * identifier) = (pointer_expression "*puVar15" * identifier)) ;) (expression_statement "uVar11 = puVar15[2];" (assignment_expression "uVar11 = puVar15[2]" identifier = (subscript_expression "puVar15[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar15[3];" (assignment_expression "uVar10 = puVar15[3]" identifier = (subscript_expression "puVar15[3]" identifier [ number_literal ])) ;) (expression_statement "puVar6[1] = puVar15[1];" (assignment_expression "puVar6[1] = puVar15[1]" (subscript_expression "puVar6[1]" identifier [ number_literal ]) = (subscript_expression "puVar15[1]" identifier [ number_literal ])) ;) (expression_statement "puVar6[2] = uVar11;" (assignment_expression "puVar6[2] = uVar11" (subscript_expression "puVar6[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar6[3] = uVar10;" (assignment_expression "puVar6[3] = uVar10" (subscript_expression "puVar6[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4))" ( (binary_expression "puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" identifier != (cast_expression "(undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" ( (binary_expression "PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4" identifier + number_literal) )))) )) ;) (expression_statement "uVar13 = (int)param_2 - (int)param_1;" (assignment_expression "uVar13 = (int)param_2 - (int)param_1" identifier = (binary_expression "(int)param_2 - (int)param_1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "uVar10 = puVar15[5];" (assignment_expression "uVar10 = puVar15[5]" identifier = (subscript_expression "puVar15[5]" identifier [ number_literal ])) ;) (expression_statement "uVar1 = *(undefined1 *)(puVar15 + 6);" (assignment_expression "uVar1 = *(undefined1 *)(puVar15 + 6)" identifier = (pointer_expression "*(undefined1 *)(puVar15 + 6)" * (cast_expression "(undefined1 *)(puVar15 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + 6)" ( (binary_expression "puVar15 + 6" identifier + number_literal) ))))) ;) (expression_statement "puVar6[4] = *puVar5;" (assignment_expression "puVar6[4] = *puVar5" (subscript_expression "puVar6[4]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "puVar6[5] = uVar10;" (assignment_expression "puVar6[5] = uVar10" (subscript_expression "puVar6[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined1 *)(puVar6 + 6) = uVar1;" (assignment_expression "*(undefined1 *)(puVar6 + 6) = uVar1" (pointer_expression "*(undefined1 *)(puVar6 + 6)" * (cast_expression "(undefined1 *)(puVar6 + 6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 6)" ( (binary_expression "puVar6 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar3 = -(uVar13 + 0x70 & 0xfffffff8);" (assignment_expression "iVar3 = -(uVar13 + 0x70 & 0xfffffff8)" identifier = (unary_expression "-(uVar13 + 0x70 & 0xfffffff8)" - (parenthesized_expression "(uVar13 + 0x70 & 0xfffffff8)" ( (binary_expression "uVar13 + 0x70 & 0xfffffff8" (binary_expression "uVar13 + 0x70" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);" (assignment_expression "puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20)" identifier = (cast_expression "(undefined4 *)(local_68 + iVar3 + -0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_68 + iVar3 + -0x20)" ( (binary_expression "local_68 + iVar3 + -0x20" (binary_expression "local_68 + iVar3" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar5 = local_80;" (assignment_expression "puVar5 = local_80" identifier = identifier) ;) (expression_statement "puVar4 = puVar15;" (assignment_expression "puVar4 = puVar15" identifier = identifier) ;) (do_statement "do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);" do (compound_statement "{\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  }" { (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" identifier = identifier) ;) (expression_statement "puVar6 = puVar5;" (assignment_expression "puVar6 = puVar5" identifier = identifier) ;) (expression_statement "puVar5 = puVar6 + 4;" (assignment_expression "puVar5 = puVar6 + 4" identifier = (binary_expression "puVar6 + 4" identifier + number_literal)) ;) (expression_statement "uVar9 = puVar6[1];" (assignment_expression "uVar9 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = puVar6[2];" (assignment_expression "uVar11 = puVar6[2]" identifier = (subscript_expression "puVar6[2]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = puVar6[3];" (assignment_expression "uVar10 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "*puVar8 = *puVar6;" (assignment_expression "*puVar8 = *puVar6" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "puVar8[1] = uVar9;" (assignment_expression "puVar8[1] = uVar9" (subscript_expression "puVar8[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[2] = uVar11;" (assignment_expression "puVar8[2] = uVar11" (subscript_expression "puVar8[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar8[3] = uVar10;" (assignment_expression "puVar8[3] = uVar10" (subscript_expression "puVar8[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" identifier = (binary_expression "puVar8 + 4" identifier + number_literal)) ;) }) while (parenthesized_expression "(puVar5 != auStack_20)" ( (binary_expression "puVar5 != auStack_20" identifier != identifier) )) ;) (expression_statement "uVar10 = puVar6[5];" (assignment_expression "uVar10 = puVar6[5]" identifier = (subscript_expression "puVar6[5]" identifier [ number_literal ])) ;) (expression_statement "puVar8[4] = *puVar5;" (assignment_expression "puVar8[4] = *puVar5" (subscript_expression "puVar8[4]" identifier [ number_literal ]) = (pointer_expression "*puVar5" * identifier)) ;) (expression_statement "iVar14 = (int)puVar15 + uVar13;" (assignment_expression "iVar14 = (int)puVar15 + uVar13" identifier = (binary_expression "(int)puVar15 + uVar13" (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier) + identifier)) ;) (expression_statement "puVar8[5] = uVar10;" (assignment_expression "puVar8[5] = uVar10" (subscript_expression "puVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "(*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);" (call_expression "(*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" ( (pointer_expression "*(code *)PTR_memcpy_00436788" * (cast_expression "(code *)PTR_memcpy_00436788" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "((int)auStack_20 + iVar3)" ( (binary_expression "(int)auStack_20 + iVar3" (cast_expression "(int)auStack_20" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) ))) ;) (expression_statement "pcVar17 = __concat_size_t;" (assignment_expression "pcVar17 = __concat_size_t" identifier = identifier) ;) (expression_statement "*(undefined1 *)(iVar14 + 0x68) = 0;" (assignment_expression "*(undefined1 *)(iVar14 + 0x68) = 0" (pointer_expression "*(undefined1 *)(iVar14 + 0x68)" * (cast_expression "(undefined1 *)(iVar14 + 0x68)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x68)" ( (binary_expression "iVar14 + 0x68" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar16 = PTR___throw_logic_error_00432268;" (assignment_expression "puVar16 = PTR___throw_logic_error_00432268" identifier = identifier) ;) (expression_statement "(*(code *)PTR___throw_logic_error_00432268)(puVar15);" (call_expression "(*(code *)PTR___throw_logic_error_00432268)(puVar15)" (parenthesized_expression "(*(code *)PTR___throw_logic_error_00432268)" ( (pointer_expression "*(code *)PTR___throw_logic_error_00432268" * (cast_expression "(code *)PTR___throw_logic_error_00432268" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar15)" ( identifier ))) ;) (expression_statement "iVar12 = *(int *)(puVar16 + 0xd63ec);" (assignment_expression "iVar12 = *(int *)(puVar16 + 0xd63ec)" identifier = (pointer_expression "*(int *)(puVar16 + 0xd63ec)" * (cast_expression "(int *)(puVar16 + 0xd63ec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar16 + 0xd63ec)" ( (binary_expression "puVar16 + 0xd63ec" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 **)(auStack_a0 + iVar3) = auStack_98;" (assignment_expression "*(undefined1 **)(auStack_a0 + iVar3) = auStack_98" (pointer_expression "*(undefined1 **)(auStack_a0 + iVar3)" * (cast_expression "(undefined1 **)(auStack_a0 + iVar3)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(auStack_a0 + iVar3)" ( (binary_expression "auStack_a0 + iVar3" identifier + identifier) )))) = identifier) ;) (expression_statement "*(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;" (assignment_expression "*(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14" (pointer_expression "*(int *)((int)aiStack_b0 + iVar3 + 0xc)" * (cast_expression "(int *)((int)aiStack_b0 + iVar3 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)aiStack_b0 + iVar3 + 0xc)" ( (binary_expression "(int)aiStack_b0 + iVar3 + 0xc" (binary_expression "(int)aiStack_b0 + iVar3" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) = identifier) ;) (expression_statement "*(code **)((int)&uStack_9c + iVar3) = pcVar17;" (assignment_expression "*(code **)((int)&uStack_9c + iVar3) = pcVar17" (pointer_expression "*(code **)((int)&uStack_9c + iVar3)" * (cast_expression "(code **)((int)&uStack_9c + iVar3)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)&uStack_9c + iVar3)" ( (binary_expression "(int)&uStack_9c + iVar3" (cast_expression "(int)&uStack_9c" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&uStack_9c" & identifier)) + identifier) )))) = identifier) ;) (expression_statement "*(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;" (assignment_expression "*(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0" (pointer_expression "*(undefined **)((int)aiStack_b0 + iVar3)" * (cast_expression "(undefined **)((int)aiStack_b0 + iVar3)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)aiStack_b0 + iVar3)" ( (binary_expression "(int)aiStack_b0 + iVar3" (cast_expression "(int)aiStack_b0" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (binary_expression "puVar16 + 0xde2d0" identifier + number_literal)) ;) (expression_statement "pcVar7 = acStack_b4 + iVar3;" (assignment_expression "pcVar7 = acStack_b4 + iVar3" identifier = (binary_expression "acStack_b4 + iVar3" identifier + identifier)) ;) (do_statement "do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);" do (compound_statement "{\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  }" { (expression_statement "pcVar7 = pcVar7 + -1;" (assignment_expression "pcVar7 = pcVar7 + -1" identifier = (binary_expression "pcVar7 + -1" identifier + number_literal)) ;) (expression_statement "bVar2 = 9 < uVar13;" (assignment_expression "bVar2 = 9 < uVar13" identifier = (binary_expression "9 < uVar13" number_literal < identifier)) ;) (expression_statement "*pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);" (assignment_expression "*pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10)" (pointer_expression "*pcVar7" * identifier) = (pointer_expression "*(char *)(iVar12 + -0x58a8 + uVar13 % 10)" * (cast_expression "(char *)(iVar12 + -0x58a8 + uVar13 % 10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + -0x58a8 + uVar13 % 10)" ( (binary_expression "iVar12 + -0x58a8 + uVar13 % 10" (binary_expression "iVar12 + -0x58a8" identifier + number_literal) + (binary_expression "uVar13 % 10" identifier % number_literal)) ))))) ;) (expression_statement "uVar13 = uVar13 / 10;" (assignment_expression "uVar13 = uVar13 / 10" identifier = (binary_expression "uVar13 / 10" identifier / number_literal)) ;) }) while (parenthesized_expression "(bVar2)" ( identifier )) ;) (expression_statement "pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;" (assignment_expression "pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7" identifier = (binary_expression "acStack_b4 + iVar3 + -(int)pcVar7" (binary_expression "acStack_b4 + iVar3" identifier + identifier) + (unary_expression "-(int)pcVar7" - (cast_expression "(int)pcVar7" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }" if (parenthesized_expression "(param_1 < pcVar7)" ( (binary_expression "param_1 < pcVar7" identifier < identifier) )) (compound_statement "{\n    pcVar7 = (char *)0xffffffff;\n  }" { (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    (**(code **)(puVar16 + 0xda888))();\n  }" else (compound_statement "{\n    (**(code **)(puVar16 + 0xda888))();\n  }" { (expression_statement "(**(code **)(puVar16 + 0xda888))();" (call_expression "(**(code **)(puVar16 + 0xda888))()" (parenthesized_expression "(**(code **)(puVar16 + 0xda888))" ( (pointer_expression "**(code **)(puVar16 + 0xda888)" * (pointer_expression "*(code **)(puVar16 + 0xda888)" * (cast_expression "(code **)(puVar16 + 0xda888)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar16 + 0xda888)" ( (binary_expression "puVar16 + 0xda888" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) }))) (return_statement "return pcVar7;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) )))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (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) + IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)) + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT < IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT % LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT / LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) }))) (return_statement return IDENT ;) })))
(function_definition "char * __throw_insufficient_space(char *param_1,char *param_2)\n\n{\n  undefined1 uVar1;\n  bool bVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  char acStack_b4 [4];\n  int aiStack_b0 [4];\n  undefined1 auStack_a0 [4];\n  undefined4 uStack_9c;\n  undefined1 auStack_98 [16];\n  undefined4 local_80 [6];\n  undefined1 local_68 [72];\n  undefined4 auStack_20 [4];\n  \n  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);\n  puVar4 = local_80;\n  do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));\n  uVar13 = (int)param_2 - (int)param_1;\n  uVar10 = puVar15[5];\n  uVar1 = *(undefined1 *)(puVar15 + 6);\n  puVar6[4] = *puVar5;\n  puVar6[5] = uVar10;\n  *(undefined1 *)(puVar6 + 6) = uVar1;\n  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);\n  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);\n  puVar5 = local_80;\n  puVar4 = puVar15;\n  do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);\n  uVar10 = puVar6[5];\n  puVar8[4] = *puVar5;\n  iVar14 = (int)puVar15 + uVar13;\n  puVar8[5] = uVar10;\n  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);\n  pcVar17 = __concat_size_t;\n  *(undefined1 *)(iVar14 + 0x68) = 0;\n  puVar16 = PTR___throw_logic_error_00432268;\n  (*(code *)PTR___throw_logic_error_00432268)(puVar15);\n  iVar12 = *(int *)(puVar16 + 0xd63ec);\n  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;\n  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;\n  *(code **)((int)&uStack_9c + iVar3) = pcVar17;\n  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;\n  pcVar7 = acStack_b4 + iVar3;\n  do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);\n  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;\n  if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }\n  return pcVar7;\n}" (primitive_type "char") (pointer_declarator "* __throw_insufficient_space(char *param_1,char *param_2)" (* "*") (function_declarator "__throw_insufficient_space(char *param_1,char *param_2)" (identifier "__throw_insufficient_space") (parameter_list "(char *param_1,char *param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")")))) (compound_statement "{\n  undefined1 uVar1;\n  bool bVar2;\n  int iVar3;\n  undefined4 *puVar4;\n  undefined4 *puVar5;\n  undefined4 *puVar6;\n  char *pcVar7;\n  undefined4 *puVar8;\n  undefined4 uVar9;\n  undefined4 uVar10;\n  undefined4 uVar11;\n  int iVar12;\n  uint uVar13;\n  int iVar14;\n  undefined4 *puVar15;\n  undefined *puVar16;\n  code *pcVar17;\n  char acStack_b4 [4];\n  int aiStack_b0 [4];\n  undefined1 auStack_a0 [4];\n  undefined4 uStack_9c;\n  undefined1 auStack_98 [16];\n  undefined4 local_80 [6];\n  undefined1 local_68 [72];\n  undefined4 auStack_20 [4];\n  \n  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);\n  puVar4 = local_80;\n  do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));\n  uVar13 = (int)param_2 - (int)param_1;\n  uVar10 = puVar15[5];\n  uVar1 = *(undefined1 *)(puVar15 + 6);\n  puVar6[4] = *puVar5;\n  puVar6[5] = uVar10;\n  *(undefined1 *)(puVar6 + 6) = uVar1;\n  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);\n  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);\n  puVar5 = local_80;\n  puVar4 = puVar15;\n  do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);\n  uVar10 = puVar6[5];\n  puVar8[4] = *puVar5;\n  iVar14 = (int)puVar15 + uVar13;\n  puVar8[5] = uVar10;\n  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);\n  pcVar17 = __concat_size_t;\n  *(undefined1 *)(iVar14 + 0x68) = 0;\n  puVar16 = PTR___throw_logic_error_00432268;\n  (*(code *)PTR___throw_logic_error_00432268)(puVar15);\n  iVar12 = *(int *)(puVar16 + 0xd63ec);\n  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;\n  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;\n  *(code **)((int)&uStack_9c + iVar3) = pcVar17;\n  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;\n  pcVar7 = acStack_b4 + iVar3;\n  do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);\n  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;\n  if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }\n  return pcVar7;\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "undefined4 *puVar4;" (type_identifier "undefined4") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 *puVar5;" (type_identifier "undefined4") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined4 uVar9;" (type_identifier "undefined4") (identifier "uVar9") (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "uint uVar13;" (type_identifier "uint") (identifier "uVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined4 *puVar15;" (type_identifier "undefined4") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "code *pcVar17;" (type_identifier "code") (pointer_declarator "*pcVar17" (* "*") (identifier "pcVar17")) (; ";")) (declaration "char acStack_b4 [4];" (primitive_type "char") (array_declarator "acStack_b4 [4]" (identifier "acStack_b4") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int aiStack_b0 [4];" (primitive_type "int") (array_declarator "aiStack_b0 [4]" (identifier "aiStack_b0") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined1 auStack_a0 [4];" (type_identifier "undefined1") (array_declarator "auStack_a0 [4]" (identifier "auStack_a0") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "undefined4 uStack_9c;" (type_identifier "undefined4") (identifier "uStack_9c") (; ";")) (declaration "undefined1 auStack_98 [16];" (type_identifier "undefined1") (array_declarator "auStack_98 [16]" (identifier "auStack_98") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined4 local_80 [6];" (type_identifier "undefined4") (array_declarator "local_80 [6]" (identifier "local_80") ([ "[") (number_literal "6") (] "]")) (; ";")) (declaration "undefined1 local_68 [72];" (type_identifier "undefined1") (array_declarator "local_68 [72]" (identifier "local_68") ([ "[") (number_literal "72") (] "]")) (; ";")) (declaration "undefined4 auStack_20 [4];" (type_identifier "undefined4") (array_declarator "auStack_20 [4]" (identifier "auStack_20") ([ "[") (number_literal "4") (] "]")) (; ";")) (expression_statement "puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);" (assignment_expression "puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" (identifier "puVar5") (= "=") (cast_expression "(undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914)" (( "(") (binary_expression "PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914" (identifier "PTR_fde_table_entry_0039fffc_data_loc_004322ec") (+ "+") (number_literal "-0x5914")) () ")")))) (; ";")) (expression_statement "puVar4 = local_80;" (assignment_expression "puVar4 = local_80" (identifier "puVar4") (= "=") (identifier "local_80")) (; ";")) (do_statement "do {\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));" (do "do") (compound_statement "{\n    puVar6 = puVar4;\n    puVar15 = puVar5;\n    puVar5 = puVar15 + 4;\n    *puVar6 = *puVar15;\n    uVar11 = puVar15[2];\n    uVar10 = puVar15[3];\n    puVar6[1] = puVar15[1];\n    puVar6[2] = uVar11;\n    puVar6[3] = uVar10;\n    puVar4 = puVar6 + 4;\n  }" ({ "{") (expression_statement "puVar6 = puVar4;" (assignment_expression "puVar6 = puVar4" (identifier "puVar6") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar15 = puVar5;" (assignment_expression "puVar15 = puVar5" (identifier "puVar15") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar5 = puVar15 + 4;" (assignment_expression "puVar5 = puVar15 + 4" (identifier "puVar5") (= "=") (binary_expression "puVar15 + 4" (identifier "puVar15") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "*puVar6 = *puVar15;" (assignment_expression "*puVar6 = *puVar15" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (pointer_expression "*puVar15" (* "*") (identifier "puVar15"))) (; ";")) (expression_statement "uVar11 = puVar15[2];" (assignment_expression "uVar11 = puVar15[2]" (identifier "uVar11") (= "=") (subscript_expression "puVar15[2]" (identifier "puVar15") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar15[3];" (assignment_expression "uVar10 = puVar15[3]" (identifier "uVar10") (= "=") (subscript_expression "puVar15[3]" (identifier "puVar15") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "puVar6[1] = puVar15[1];" (assignment_expression "puVar6[1] = puVar15[1]" (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "puVar15[1]" (identifier "puVar15") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar6[2] = uVar11;" (assignment_expression "puVar6[2] = uVar11" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar6[3] = uVar10;" (assignment_expression "puVar6[3] = uVar10" (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar4 = puVar6 + 4;" (assignment_expression "puVar4 = puVar6 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4))" (( "(") (binary_expression "puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" (identifier "puVar5") (!= "!=") (cast_expression "(undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4)" (( "(") (binary_expression "PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4" (identifier "PTR_fde_table_entry_0039fffc_data_loc_004322ec") (+ "+") (number_literal "-0x58b4")) () ")")))) () ")")) (; ";")) (expression_statement "uVar13 = (int)param_2 - (int)param_1;" (assignment_expression "uVar13 = (int)param_2 - (int)param_1" (identifier "uVar13") (= "=") (binary_expression "(int)param_2 - (int)param_1" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")))) (; ";")) (expression_statement "uVar10 = puVar15[5];" (assignment_expression "uVar10 = puVar15[5]" (identifier "uVar10") (= "=") (subscript_expression "puVar15[5]" (identifier "puVar15") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "uVar1 = *(undefined1 *)(puVar15 + 6);" (assignment_expression "uVar1 = *(undefined1 *)(puVar15 + 6)" (identifier "uVar1") (= "=") (pointer_expression "*(undefined1 *)(puVar15 + 6)" (* "*") (cast_expression "(undefined1 *)(puVar15 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + 6)" (( "(") (binary_expression "puVar15 + 6" (identifier "puVar15") (+ "+") (number_literal "6")) () ")"))))) (; ";")) (expression_statement "puVar6[4] = *puVar5;" (assignment_expression "puVar6[4] = *puVar5" (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "puVar6[5] = uVar10;" (assignment_expression "puVar6[5] = uVar10" (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "*(undefined1 *)(puVar6 + 6) = uVar1;" (assignment_expression "*(undefined1 *)(puVar6 + 6) = uVar1" (pointer_expression "*(undefined1 *)(puVar6 + 6)" (* "*") (cast_expression "(undefined1 *)(puVar6 + 6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 6)" (( "(") (binary_expression "puVar6 + 6" (identifier "puVar6") (+ "+") (number_literal "6")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "iVar3 = -(uVar13 + 0x70 & 0xfffffff8);" (assignment_expression "iVar3 = -(uVar13 + 0x70 & 0xfffffff8)" (identifier "iVar3") (= "=") (unary_expression "-(uVar13 + 0x70 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar13 + 0x70 & 0xfffffff8)" (( "(") (binary_expression "uVar13 + 0x70 & 0xfffffff8" (binary_expression "uVar13 + 0x70" (identifier "uVar13") (+ "+") (number_literal "0x70")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);" (assignment_expression "puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20)" (identifier "puVar15") (= "=") (cast_expression "(undefined4 *)(local_68 + iVar3 + -0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_68 + iVar3 + -0x20)" (( "(") (binary_expression "local_68 + iVar3 + -0x20" (binary_expression "local_68 + iVar3" (identifier "local_68") (+ "+") (identifier "iVar3")) (+ "+") (number_literal "-0x20")) () ")")))) (; ";")) (expression_statement "puVar5 = local_80;" (assignment_expression "puVar5 = local_80" (identifier "puVar5") (= "=") (identifier "local_80")) (; ";")) (expression_statement "puVar4 = puVar15;" (assignment_expression "puVar4 = puVar15" (identifier "puVar4") (= "=") (identifier "puVar15")) (; ";")) (do_statement "do {\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  } while (puVar5 != auStack_20);" (do "do") (compound_statement "{\n    puVar8 = puVar4;\n    puVar6 = puVar5;\n    puVar5 = puVar6 + 4;\n    uVar9 = puVar6[1];\n    uVar11 = puVar6[2];\n    uVar10 = puVar6[3];\n    *puVar8 = *puVar6;\n    puVar8[1] = uVar9;\n    puVar8[2] = uVar11;\n    puVar8[3] = uVar10;\n    puVar4 = puVar8 + 4;\n  }" ({ "{") (expression_statement "puVar8 = puVar4;" (assignment_expression "puVar8 = puVar4" (identifier "puVar8") (= "=") (identifier "puVar4")) (; ";")) (expression_statement "puVar6 = puVar5;" (assignment_expression "puVar6 = puVar5" (identifier "puVar6") (= "=") (identifier "puVar5")) (; ";")) (expression_statement "puVar5 = puVar6 + 4;" (assignment_expression "puVar5 = puVar6 + 4" (identifier "puVar5") (= "=") (binary_expression "puVar6 + 4" (identifier "puVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar9 = puVar6[1];" (assignment_expression "uVar9 = puVar6[1]" (identifier "uVar9") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar11 = puVar6[2];" (assignment_expression "uVar11 = puVar6[2]" (identifier "uVar11") (= "=") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar10 = puVar6[3];" (assignment_expression "uVar10 = puVar6[3]" (identifier "uVar10") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "*puVar8 = *puVar6;" (assignment_expression "*puVar8 = *puVar6" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "puVar8[1] = uVar9;" (assignment_expression "puVar8[1] = uVar9" (subscript_expression "puVar8[1]" (identifier "puVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar9")) (; ";")) (expression_statement "puVar8[2] = uVar11;" (assignment_expression "puVar8[2] = uVar11" (subscript_expression "puVar8[2]" (identifier "puVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "puVar8[3] = uVar10;" (assignment_expression "puVar8[3] = uVar10" (subscript_expression "puVar8[3]" (identifier "puVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "puVar4 = puVar8 + 4;" (assignment_expression "puVar4 = puVar8 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar8 + 4" (identifier "puVar8") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar5 != auStack_20)" (( "(") (binary_expression "puVar5 != auStack_20" (identifier "puVar5") (!= "!=") (identifier "auStack_20")) () ")")) (; ";")) (expression_statement "uVar10 = puVar6[5];" (assignment_expression "uVar10 = puVar6[5]" (identifier "uVar10") (= "=") (subscript_expression "puVar6[5]" (identifier "puVar6") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "puVar8[4] = *puVar5;" (assignment_expression "puVar8[4] = *puVar5" (subscript_expression "puVar8[4]" (identifier "puVar8") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*puVar5" (* "*") (identifier "puVar5"))) (; ";")) (expression_statement "iVar14 = (int)puVar15 + uVar13;" (assignment_expression "iVar14 = (int)puVar15 + uVar13" (identifier "iVar14") (= "=") (binary_expression "(int)puVar15 + uVar13" (cast_expression "(int)puVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar15")) (+ "+") (identifier "uVar13"))) (; ";")) (expression_statement "puVar8[5] = uVar10;" (assignment_expression "puVar8[5] = uVar10" (subscript_expression "puVar8[5]" (identifier "puVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar10")) (; ";")) (expression_statement "(*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);" (call_expression "(*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3)" (parenthesized_expression "(*(code *)PTR_memcpy_00436788)" (( "(") (pointer_expression "*(code *)PTR_memcpy_00436788" (* "*") (cast_expression "(code *)PTR_memcpy_00436788" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_00436788"))) () ")")) (argument_list "((int)auStack_20 + iVar3)" (( "(") (binary_expression "(int)auStack_20 + iVar3" (cast_expression "(int)auStack_20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "auStack_20")) (+ "+") (identifier "iVar3")) () ")"))) (; ";")) (expression_statement "pcVar17 = __concat_size_t;" (assignment_expression "pcVar17 = __concat_size_t" (identifier "pcVar17") (= "=") (identifier "__concat_size_t")) (; ";")) (expression_statement "*(undefined1 *)(iVar14 + 0x68) = 0;" (assignment_expression "*(undefined1 *)(iVar14 + 0x68) = 0" (pointer_expression "*(undefined1 *)(iVar14 + 0x68)" (* "*") (cast_expression "(undefined1 *)(iVar14 + 0x68)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x68)" (( "(") (binary_expression "iVar14 + 0x68" (identifier "iVar14") (+ "+") (number_literal "0x68")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar16 = PTR___throw_logic_error_00432268;" (assignment_expression "puVar16 = PTR___throw_logic_error_00432268" (identifier "puVar16") (= "=") (identifier "PTR___throw_logic_error_00432268")) (; ";")) (expression_statement "(*(code *)PTR___throw_logic_error_00432268)(puVar15);" (call_expression "(*(code *)PTR___throw_logic_error_00432268)(puVar15)" (parenthesized_expression "(*(code *)PTR___throw_logic_error_00432268)" (( "(") (pointer_expression "*(code *)PTR___throw_logic_error_00432268" (* "*") (cast_expression "(code *)PTR___throw_logic_error_00432268" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___throw_logic_error_00432268"))) () ")")) (argument_list "(puVar15)" (( "(") (identifier "puVar15") () ")"))) (; ";")) (expression_statement "iVar12 = *(int *)(puVar16 + 0xd63ec);" (assignment_expression "iVar12 = *(int *)(puVar16 + 0xd63ec)" (identifier "iVar12") (= "=") (pointer_expression "*(int *)(puVar16 + 0xd63ec)" (* "*") (cast_expression "(int *)(puVar16 + 0xd63ec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar16 + 0xd63ec)" (( "(") (binary_expression "puVar16 + 0xd63ec" (identifier "puVar16") (+ "+") (number_literal "0xd63ec")) () ")"))))) (; ";")) (expression_statement "*(undefined1 **)(auStack_a0 + iVar3) = auStack_98;" (assignment_expression "*(undefined1 **)(auStack_a0 + iVar3) = auStack_98" (pointer_expression "*(undefined1 **)(auStack_a0 + iVar3)" (* "*") (cast_expression "(undefined1 **)(auStack_a0 + iVar3)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(auStack_a0 + iVar3)" (( "(") (binary_expression "auStack_a0 + iVar3" (identifier "auStack_a0") (+ "+") (identifier "iVar3")) () ")")))) (= "=") (identifier "auStack_98")) (; ";")) (expression_statement "*(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;" (assignment_expression "*(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14" (pointer_expression "*(int *)((int)aiStack_b0 + iVar3 + 0xc)" (* "*") (cast_expression "(int *)((int)aiStack_b0 + iVar3 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)aiStack_b0 + iVar3 + 0xc)" (( "(") (binary_expression "(int)aiStack_b0 + iVar3 + 0xc" (binary_expression "(int)aiStack_b0 + iVar3" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar3")) (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "*(code **)((int)&uStack_9c + iVar3) = pcVar17;" (assignment_expression "*(code **)((int)&uStack_9c + iVar3) = pcVar17" (pointer_expression "*(code **)((int)&uStack_9c + iVar3)" (* "*") (cast_expression "(code **)((int)&uStack_9c + iVar3)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)&uStack_9c + iVar3)" (( "(") (binary_expression "(int)&uStack_9c + iVar3" (cast_expression "(int)&uStack_9c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&uStack_9c" (& "&") (identifier "uStack_9c"))) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (identifier "pcVar17")) (; ";")) (expression_statement "*(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;" (assignment_expression "*(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0" (pointer_expression "*(undefined **)((int)aiStack_b0 + iVar3)" (* "*") (cast_expression "(undefined **)((int)aiStack_b0 + iVar3)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)aiStack_b0 + iVar3)" (( "(") (binary_expression "(int)aiStack_b0 + iVar3" (cast_expression "(int)aiStack_b0" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "aiStack_b0")) (+ "+") (identifier "iVar3")) () ")")))) (= "=") (binary_expression "puVar16 + 0xde2d0" (identifier "puVar16") (+ "+") (number_literal "0xde2d0"))) (; ";")) (expression_statement "pcVar7 = acStack_b4 + iVar3;" (assignment_expression "pcVar7 = acStack_b4 + iVar3" (identifier "pcVar7") (= "=") (binary_expression "acStack_b4 + iVar3" (identifier "acStack_b4") (+ "+") (identifier "iVar3"))) (; ";")) (do_statement "do {\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  } while (bVar2);" (do "do") (compound_statement "{\n    pcVar7 = pcVar7 + -1;\n    bVar2 = 9 < uVar13;\n    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);\n    uVar13 = uVar13 / 10;\n  }" ({ "{") (expression_statement "pcVar7 = pcVar7 + -1;" (assignment_expression "pcVar7 = pcVar7 + -1" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + -1" (identifier "pcVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar2 = 9 < uVar13;" (assignment_expression "bVar2 = 9 < uVar13" (identifier "bVar2") (= "=") (binary_expression "9 < uVar13" (number_literal "9") (< "<") (identifier "uVar13"))) (; ";")) (expression_statement "*pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);" (assignment_expression "*pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10)" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (= "=") (pointer_expression "*(char *)(iVar12 + -0x58a8 + uVar13 % 10)" (* "*") (cast_expression "(char *)(iVar12 + -0x58a8 + uVar13 % 10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + -0x58a8 + uVar13 % 10)" (( "(") (binary_expression "iVar12 + -0x58a8 + uVar13 % 10" (binary_expression "iVar12 + -0x58a8" (identifier "iVar12") (+ "+") (number_literal "-0x58a8")) (+ "+") (binary_expression "uVar13 % 10" (identifier "uVar13") (% "%") (number_literal "10"))) () ")"))))) (; ";")) (expression_statement "uVar13 = uVar13 / 10;" (assignment_expression "uVar13 = uVar13 / 10" (identifier "uVar13") (= "=") (binary_expression "uVar13 / 10" (identifier "uVar13") (/ "/") (number_literal "10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (; ";")) (expression_statement "pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;" (assignment_expression "pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7" (identifier "pcVar7") (= "=") (binary_expression "acStack_b4 + iVar3 + -(int)pcVar7" (binary_expression "acStack_b4 + iVar3" (identifier "acStack_b4") (+ "+") (identifier "iVar3")) (+ "+") (unary_expression "-(int)pcVar7" (- "-") (cast_expression "(int)pcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar7"))))) (; ";")) (if_statement "if (param_1 < pcVar7) {\n    pcVar7 = (char *)0xffffffff;\n  }\n  else {\n    (**(code **)(puVar16 + 0xda888))();\n  }" (if "if") (parenthesized_expression "(param_1 < pcVar7)" (( "(") (binary_expression "param_1 < pcVar7" (identifier "param_1") (< "<") (identifier "pcVar7")) () ")")) (compound_statement "{\n    pcVar7 = (char *)0xffffffff;\n  }" ({ "{") (expression_statement "pcVar7 = (char *)0xffffffff;" (assignment_expression "pcVar7 = (char *)0xffffffff" (identifier "pcVar7") (= "=") (cast_expression "(char *)0xffffffff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else {\n    (**(code **)(puVar16 + 0xda888))();\n  }" (else "else") (compound_statement "{\n    (**(code **)(puVar16 + 0xda888))();\n  }" ({ "{") (expression_statement "(**(code **)(puVar16 + 0xda888))();" (call_expression "(**(code **)(puVar16 + 0xda888))()" (parenthesized_expression "(**(code **)(puVar16 + 0xda888))" (( "(") (pointer_expression "**(code **)(puVar16 + 0xda888)" (* "*") (pointer_expression "*(code **)(puVar16 + 0xda888)" (* "*") (cast_expression "(code **)(puVar16 + 0xda888)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar16 + 0xda888)" (( "(") (binary_expression "puVar16 + 0xda888" (identifier "puVar16") (+ "+") (number_literal "0xda888")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return pcVar7;" (return "return") (identifier "pcVar7") (; ";")) (} "}")))

/* __throw_insufficient_space(char const*, char const*) */

char * function_1(char *var_16,char *param_2)

{
  type_1 uVar1;
  bool bVar2;
  int var_7;
  type_2 *puVar4;
  type_2 *var_4;
  type_2 *var_3;
  char *var_14;
  type_2 *var_8;
  type_2 uVar9;
  type_2 uVar10;
  type_2 uVar11;
  int var_15;
  type_3 var_5;
  int var_10;
  type_2 *var_2;
  type_4 *var_11;
  type_5 *pcVar17;
  char var_13 [4];
  int aiStack_b0 [4];
  type_1 var_12 [4];
  type_2 uStack_9c;
  type_1 auStack_98 [16];
  type_2 local_80 [6];
  type_1 var_6 [72];
  type_2 var_9 [4];
  
  var_4 = (type_2 *)(var_1 + -0x5914);
  puVar4 = local_80;
  do {
    var_3 = puVar4;
    var_2 = var_4;
    var_4 = var_2 + 4;
    *var_3 = *var_2;
    uVar11 = var_2[2];
    uVar10 = var_2[3];
    var_3[1] = var_2[1];
    var_3[2] = uVar11;
    var_3[3] = uVar10;
    puVar4 = var_3 + 4;
  } while (var_4 != (type_2 *)(var_1 + -0x58b4));
  var_5 = (int)param_2 - (int)var_16;
  uVar10 = var_2[5];
  uVar1 = *(type_1 *)(var_2 + 6);
  var_3[4] = *var_4;
  var_3[5] = uVar10;
  *(type_1 *)(var_3 + 6) = uVar1;
  var_7 = -(var_5 + 0x70 & 0xfffffff8);
  var_2 = (type_2 *)(var_6 + var_7 + -0x20);
  var_4 = local_80;
  puVar4 = var_2;
  do {
    var_8 = puVar4;
    var_3 = var_4;
    var_4 = var_3 + 4;
    uVar9 = var_3[1];
    uVar11 = var_3[2];
    uVar10 = var_3[3];
    *var_8 = *var_3;
    var_8[1] = uVar9;
    var_8[2] = uVar11;
    var_8[3] = uVar10;
    puVar4 = var_8 + 4;
  } while (var_4 != var_9);
  uVar10 = var_3[5];
  var_8[4] = *var_4;
  var_10 = (int)var_2 + var_5;
  var_8[5] = uVar10;
  (*(type_5 *)PTR_memcpy_00436788)((int)var_9 + var_7);
  pcVar17 = __concat_size_t;
  *(type_1 *)(var_10 + 0x68) = 0;
  var_11 = PTR___throw_logic_error_00432268;
  (*(type_5 *)PTR___throw_logic_error_00432268)(var_2);
  var_15 = *(int *)(var_11 + 0xd63ec);
  *(type_1 **)(var_12 + var_7) = auStack_98;
  *(int *)((int)aiStack_b0 + var_7 + 0xc) = var_10;
  *(type_5 **)((int)&uStack_9c + var_7) = pcVar17;
  *(type_4 **)((int)aiStack_b0 + var_7) = var_11 + 0xde2d0;
  var_14 = var_13 + var_7;
  do {
    var_14 = var_14 + -1;
    bVar2 = 9 < var_5;
    *var_14 = *(char *)(var_15 + -0x58a8 + var_5 % 10);
    var_5 = var_5 / 10;
  } while (bVar2);
  var_14 = var_13 + var_7 + -(int)var_14;
  if (var_16 < var_14) {
    var_14 = (char *)0xffffffff;
  }
  else {
    (**(type_5 **)(var_11 + 0xda888))();
  }
  return var_14;
}


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

/* MASKED(char const*, char const*) */

char * MASKED(char *param_1,char *param_2)

{
  undefined1 uVar1;
  bool bVar2;
  int iVar3;
  undefined4 *puVar4;
  undefined4 *puVar5;
  undefined4 *puVar6;
  char *pcVar7;
  undefined4 *puVar8;
  undefined4 uVar9;
  undefined4 uVar10;
  undefined4 uVar11;
  int iVar12;
  uint uVar13;
  int iVar14;
  undefined4 *puVar15;
  undefined *puVar16;
  code *pcVar17;
  char acStack_b4 [4];
  int aiStack_b0 [4];
  undefined1 auStack_a0 [4];
  undefined4 uStack_9c;
  undefined1 auStack_98 [16];
  undefined4 local_80 [6];
  undefined1 local_68 [72];
  undefined4 auStack_20 [4];
  
  puVar5 = (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x5914);
  puVar4 = local_80;
  do {
    puVar6 = puVar4;
    puVar15 = puVar5;
    puVar5 = puVar15 + 4;
    *puVar6 = *puVar15;
    uVar11 = puVar15[2];
    uVar10 = puVar15[3];
    puVar6[1] = puVar15[1];
    puVar6[2] = uVar11;
    puVar6[3] = uVar10;
    puVar4 = puVar6 + 4;
  } while (puVar5 != (undefined4 *)(PTR_fde_table_entry_0039fffc_data_loc_004322ec + -0x58b4));
  uVar13 = (int)param_2 - (int)param_1;
  uVar10 = puVar15[5];
  uVar1 = *(undefined1 *)(puVar15 + 6);
  puVar6[4] = *puVar5;
  puVar6[5] = uVar10;
  *(undefined1 *)(puVar6 + 6) = uVar1;
  iVar3 = -(uVar13 + 0x70 & 0xfffffff8);
  puVar15 = (undefined4 *)(local_68 + iVar3 + -0x20);
  puVar5 = local_80;
  puVar4 = puVar15;
  do {
    puVar8 = puVar4;
    puVar6 = puVar5;
    puVar5 = puVar6 + 4;
    uVar9 = puVar6[1];
    uVar11 = puVar6[2];
    uVar10 = puVar6[3];
    *puVar8 = *puVar6;
    puVar8[1] = uVar9;
    puVar8[2] = uVar11;
    puVar8[3] = uVar10;
    puVar4 = puVar8 + 4;
  } while (puVar5 != auStack_20);
  uVar10 = puVar6[5];
  puVar8[4] = *puVar5;
  iVar14 = (int)puVar15 + uVar13;
  puVar8[5] = uVar10;
  (*(code *)PTR_memcpy_00436788)((int)auStack_20 + iVar3);
  pcVar17 = __concat_size_t;
  *(undefined1 *)(iVar14 + 0x68) = 0;
  puVar16 = PTR___throw_logic_error_00432268;
  (*(code *)PTR___throw_logic_error_00432268)(puVar15);
  iVar12 = *(int *)(puVar16 + 0xd63ec);
  *(undefined1 **)(auStack_a0 + iVar3) = auStack_98;
  *(int *)((int)aiStack_b0 + iVar3 + 0xc) = iVar14;
  *(code **)((int)&uStack_9c + iVar3) = pcVar17;
  *(undefined **)((int)aiStack_b0 + iVar3) = puVar16 + 0xde2d0;
  pcVar7 = acStack_b4 + iVar3;
  do {
    pcVar7 = pcVar7 + -1;
    bVar2 = 9 < uVar13;
    *pcVar7 = *(char *)(iVar12 + -0x58a8 + uVar13 % 10);
    uVar13 = uVar13 / 10;
  } while (bVar2);
  pcVar7 = acStack_b4 + iVar3 + -(int)pcVar7;
  if (param_1 < pcVar7) {
    pcVar7 = (char *)0xffffffff;
  }
  else {
    (**(code **)(puVar16 + 0xda888))();
  }
  return pcVar7;
}

