
/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void lang_print_memory_usage(void)

{
  memory_region_struct *pmVar1;
  memory_region_struct *pmVar2;
  bfd_vma sz;
  
  printf("Memory region         Used Size  Region Size  %%age Used\n");
  pmVar2 = lang_memory_region_list->next;
  pmVar1 = lang_memory_region_list;
  while (pmVar2 != (memory_region_struct *)0x0) {
    sz = pmVar1->current - pmVar1->origin;
    printf("%16s: ",(pmVar1->name_list).name);
    lang_print_memory_size(sz);
    lang_print_memory_size(pmVar1->length);
    printf("    %6.2f%%\n",((double)sz * _DAT_00144328) / (double)pmVar1->length);
    pmVar1 = pmVar1->next;
    pmVar2 = pmVar1->next;
  }
  return;
}



/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void FUN_0011e0a0(void)

{
  undefined8 *puVar1;
  long lVar2;
  long lVar3;
  
  printf("Memory region         Used Size  Region Size  %%age Used\n");
  lVar3 = DAT_001aa558[2];
  puVar1 = DAT_001aa558;
  while (lVar3 != 0) {
    lVar3 = puVar1[7];
    lVar2 = puVar1[4];
    printf("%16s: ",*puVar1);
    FUN_00115460(lVar3 - lVar2);
    FUN_00115460(puVar1[5]);
    printf("    %6.2f%%\n",
           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);
    puVar1 = (undefined8 *)puVar1[2];
    lVar3 = puVar1[2];
  }
  return;
}


PUSH R12
XOR EAX,EAX
LEA RDI,[0x1442e8]
PUSH RBP
PUSH RBX
CALL 0x00109390
MOV RBP,qword ptr [0x001aa558]
CMP qword ptr [RBP + 0x10],0x0
JZ 0x0011e180
LEA R12,[0x1433e8]
JMP 0x0011e113
PXOR XMM0,XMM0
CVTSI2SD XMM0,RBX
MOV RAX,qword ptr [RBP + 0x28]
MULSD XMM0,qword ptr [0x00144328]
TEST RAX,RAX
JS 0x0011e160
PXOR XMM1,XMM1
CVTSI2SD XMM1,RAX
DIVSD XMM0,XMM1
LEA RDI,[0x1433ef]
MOV EAX,0x1
CALL 0x00109390
MOV RBP,qword ptr [RBP + 0x10]
CMP qword ptr [RBP + 0x10],0x0
JZ 0x0011e180
MOV RSI,qword ptr [RBP]
MOV RBX,qword ptr [RBP + 0x38]
MOV RDI,R12
XOR EAX,EAX
SUB RBX,qword ptr [RBP + 0x20]
CALL 0x00109390
MOV RDI,RBX
CALL 0x00115460
MOV RDI,qword ptr [RBP + 0x28]
CALL 0x00115460
TEST RBX,RBX
JNS 0x0011e0d0
MOV RAX,RBX
AND EBX,0x1
PXOR XMM0,XMM0
SHR RAX,0x1
OR RAX,RBX
CVTSI2SD XMM0,RAX
ADDSD XMM0,XMM0
JMP 0x0011e0d9
MOV RDX,RAX
AND EAX,0x1
PXOR XMM1,XMM1
SHR RDX,0x1
OR RDX,RAX
CVTSI2SD XMM1,RDX
ADDSD XMM1,XMM1
JMP 0x0011e0f3
POP RBX
POP RBP
POP R12
RET
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_0011e0a0(void)\n\n{\n  undefined8 *puVar1;\n  long lVar2;\n  long lVar3;\n  \n  printf("Memory region         Used Size  Region Size  %%age Used\n");\n  lVar3 = DAT_001aa558[2];\n  puVar1 = DAT_001aa558;\n  while (lVar3 != 0) {\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0011e0a0(void)\n\n{\n  undefined8 *puVar1;\n  long lVar2;\n  long lVar3;\n  \n  printf("Memory region         Used Size  Region Size  %%age Used\n");\n  lVar3 = DAT_001aa558[2];\n  puVar1 = DAT_001aa558;\n  while (lVar3 != 0) {\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0011e0a0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *puVar1;\n  long lVar2;\n  long lVar3;\n  \n  printf("Memory region         Used Size  Region Size  %%age Used\n");\n  lVar3 = DAT_001aa558[2];\n  puVar1 = DAT_001aa558;\n  while (lVar3 != 0) {\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (expression_statement "printf("Memory region         Used Size  Region Size  %%age Used\n");" (call_expression "printf("Memory region         Used Size  Region Size  %%age Used\n")" identifier (argument_list "("Memory region         Used Size  Region Size  %%age Used\n")" ( (string_literal ""Memory region         Used Size  Region Size  %%age Used\n"" " string_content escape_sequence ") ))) ;) (expression_statement "lVar3 = DAT_001aa558[2];" (assignment_expression "lVar3 = DAT_001aa558[2]" identifier = (subscript_expression "DAT_001aa558[2]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = DAT_001aa558;" (assignment_expression "puVar1 = DAT_001aa558" identifier = identifier) ;) (while_statement "while (lVar3 != 0) {\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }" while (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }" { (expression_statement "lVar3 = puVar1[7];" (assignment_expression "lVar3 = puVar1[7]" identifier = (subscript_expression "puVar1[7]" identifier [ number_literal ])) ;) (expression_statement "lVar2 = puVar1[4];" (assignment_expression "lVar2 = puVar1[4]" identifier = (subscript_expression "puVar1[4]" identifier [ number_literal ])) ;) (expression_statement "printf("%16s: ",*puVar1);" (call_expression "printf("%16s: ",*puVar1)" identifier (argument_list "("%16s: ",*puVar1)" ( (string_literal ""%16s: "" " string_content ") , (pointer_expression "*puVar1" * identifier) ))) ;) (expression_statement "FUN_00115460(lVar3 - lVar2);" (call_expression "FUN_00115460(lVar3 - lVar2)" identifier (argument_list "(lVar3 - lVar2)" ( (binary_expression "lVar3 - lVar2" identifier - identifier) ))) ;) (expression_statement "FUN_00115460(puVar1[5]);" (call_expression "FUN_00115460(puVar1[5])" identifier (argument_list "(puVar1[5])" ( (subscript_expression "puVar1[5]" identifier [ number_literal ]) ))) ;) (expression_statement "printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);" (call_expression "printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5])" identifier (argument_list "("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5])" ( (string_literal ""    %6.2f%%\n"" " string_content escape_sequence ") , (binary_expression "((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]" (parenthesized_expression "((double)(ulong)(lVar3 - lVar2) * _DAT_00144328)" ( (binary_expression "(double)(ulong)(lVar3 - lVar2) * _DAT_00144328" (cast_expression "(double)(ulong)(lVar3 - lVar2)" ( (type_descriptor "double" primitive_type) ) (call_expression "(ulong)(lVar3 - lVar2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(lVar3 - lVar2)" ( (binary_expression "lVar3 - lVar2" identifier - identifier) )))) * identifier) )) / (cast_expression "(double)(ulong)puVar1[5]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(ulong)puVar1[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar1[5]" identifier [ number_literal ])))) ))) ;) (expression_statement "puVar1 = (undefined8 *)puVar1[2];" (assignment_expression "puVar1 = (undefined8 *)puVar1[2]" identifier = (cast_expression "(undefined8 *)puVar1[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[2]" identifier [ number_literal ]))) ;) (expression_statement "lVar3 = puVar1[2];" (assignment_expression "lVar3 = puVar1[2]" identifier = (subscript_expression "puVar1[2]" identifier [ number_literal ])) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n/* WARNING: Unknown calling convention -- yet parameter storage is locked */\n\nvoid lang_print_memory_usage(void)\n\n{\n  memory_region_struct *pmVar1;\n  memory_region_struct *pmVar2;\n  bfd_vma sz;\n  \n  printf("Memory region         Used Size  Region Size  %%age Used\n");\n  pmVar2 = lang_memory_region_list->next;\n  pmVar1 = lang_memory_region_list;\n  while (pmVar2 != (memory_region_struct *)0x0) {\n    sz = pmVar1->current - pmVar1->origin;\n    printf("%16s: ",(pmVar1->name_list).name);\n    lang_print_memory_size(sz);\n    lang_print_memory_size(pmVar1->length);\n    printf("    %6.2f%%\n",((double)sz * _DAT_00144328) / (double)pmVar1->length);\n    pmVar1 = pmVar1->next;\n    pmVar2 = pmVar1->next;\n  }\n  return;\n}\n\n" comment comment (function_definition "void lang_print_memory_usage(void)\n\n{\n  memory_region_struct *pmVar1;\n  memory_region_struct *pmVar2;\n  bfd_vma sz;\n  \n  printf("Memory region         Used Size  Region Size  %%age Used\n");\n  pmVar2 = lang_memory_region_list->next;\n  pmVar1 = lang_memory_region_list;\n  while (pmVar2 != (memory_region_struct *)0x0) {\n    sz = pmVar1->current - pmVar1->origin;\n    printf("%16s: ",(pmVar1->name_list).name);\n    lang_print_memory_size(sz);\n    lang_print_memory_size(pmVar1->length);\n    printf("    %6.2f%%\n",((double)sz * _DAT_00144328) / (double)pmVar1->length);\n    pmVar1 = pmVar1->next;\n    pmVar2 = pmVar1->next;\n  }\n  return;\n}" primitive_type (function_declarator "lang_print_memory_usage(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  memory_region_struct *pmVar1;\n  memory_region_struct *pmVar2;\n  bfd_vma sz;\n  \n  printf("Memory region         Used Size  Region Size  %%age Used\n");\n  pmVar2 = lang_memory_region_list->next;\n  pmVar1 = lang_memory_region_list;\n  while (pmVar2 != (memory_region_struct *)0x0) {\n    sz = pmVar1->current - pmVar1->origin;\n    printf("%16s: ",(pmVar1->name_list).name);\n    lang_print_memory_size(sz);\n    lang_print_memory_size(pmVar1->length);\n    printf("    %6.2f%%\n",((double)sz * _DAT_00144328) / (double)pmVar1->length);\n    pmVar1 = pmVar1->next;\n    pmVar2 = pmVar1->next;\n  }\n  return;\n}" { (declaration "memory_region_struct *pmVar1;" type_identifier (pointer_declarator "*pmVar1" * identifier) ;) (declaration "memory_region_struct *pmVar2;" type_identifier (pointer_declarator "*pmVar2" * identifier) ;) (declaration "bfd_vma sz;" type_identifier identifier ;) (expression_statement "printf("Memory region         Used Size  Region Size  %%age Used\n");" (call_expression "printf("Memory region         Used Size  Region Size  %%age Used\n")" identifier (argument_list "("Memory region         Used Size  Region Size  %%age Used\n")" ( (string_literal ""Memory region         Used Size  Region Size  %%age Used\n"" " string_content escape_sequence ") ))) ;) (expression_statement "pmVar2 = lang_memory_region_list->next;" (assignment_expression "pmVar2 = lang_memory_region_list->next" identifier = (field_expression "lang_memory_region_list->next" identifier -> field_identifier)) ;) (expression_statement "pmVar1 = lang_memory_region_list;" (assignment_expression "pmVar1 = lang_memory_region_list" identifier = identifier) ;) (while_statement "while (pmVar2 != (memory_region_struct *)0x0) {\n    sz = pmVar1->current - pmVar1->origin;\n    printf("%16s: ",(pmVar1->name_list).name);\n    lang_print_memory_size(sz);\n    lang_print_memory_size(pmVar1->length);\n    printf("    %6.2f%%\n",((double)sz * _DAT_00144328) / (double)pmVar1->length);\n    pmVar1 = pmVar1->next;\n    pmVar2 = pmVar1->next;\n  }" while (parenthesized_expression "(pmVar2 != (memory_region_struct *)0x0)" ( (binary_expression "pmVar2 != (memory_region_struct *)0x0" identifier != (cast_expression "(memory_region_struct *)0x0" ( (type_descriptor "memory_region_struct *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sz = pmVar1->current - pmVar1->origin;\n    printf("%16s: ",(pmVar1->name_list).name);\n    lang_print_memory_size(sz);\n    lang_print_memory_size(pmVar1->length);\n    printf("    %6.2f%%\n",((double)sz * _DAT_00144328) / (double)pmVar1->length);\n    pmVar1 = pmVar1->next;\n    pmVar2 = pmVar1->next;\n  }" { (expression_statement "sz = pmVar1->current - pmVar1->origin;" (assignment_expression "sz = pmVar1->current - pmVar1->origin" identifier = (binary_expression "pmVar1->current - pmVar1->origin" (field_expression "pmVar1->current" identifier -> field_identifier) - (field_expression "pmVar1->origin" identifier -> field_identifier))) ;) (expression_statement "printf("%16s: ",(pmVar1->name_list).name);" (call_expression "printf("%16s: ",(pmVar1->name_list).name)" identifier (argument_list "("%16s: ",(pmVar1->name_list).name)" ( (string_literal ""%16s: "" " string_content ") , (field_expression "(pmVar1->name_list).name" (parenthesized_expression "(pmVar1->name_list)" ( (field_expression "pmVar1->name_list" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "lang_print_memory_size(sz);" (call_expression "lang_print_memory_size(sz)" identifier (argument_list "(sz)" ( identifier ))) ;) (expression_statement "lang_print_memory_size(pmVar1->length);" (call_expression "lang_print_memory_size(pmVar1->length)" identifier (argument_list "(pmVar1->length)" ( (field_expression "pmVar1->length" identifier -> field_identifier) ))) ;) (expression_statement "printf("    %6.2f%%\n",((double)sz * _DAT_00144328) / (double)pmVar1->length);" (call_expression "printf("    %6.2f%%\n",((double)sz * _DAT_00144328) / (double)pmVar1->length)" identifier (argument_list "("    %6.2f%%\n",((double)sz * _DAT_00144328) / (double)pmVar1->length)" ( (string_literal ""    %6.2f%%\n"" " string_content escape_sequence ") , (binary_expression "((double)sz * _DAT_00144328) / (double)pmVar1->length" (parenthesized_expression "((double)sz * _DAT_00144328)" ( (binary_expression "(double)sz * _DAT_00144328" (cast_expression "(double)sz" ( (type_descriptor "double" primitive_type) ) identifier) * identifier) )) / (cast_expression "(double)pmVar1->length" ( (type_descriptor "double" primitive_type) ) (field_expression "pmVar1->length" identifier -> field_identifier))) ))) ;) (expression_statement "pmVar1 = pmVar1->next;" (assignment_expression "pmVar1 = pmVar1->next" identifier = (field_expression "pmVar1->next" identifier -> field_identifier)) ;) (expression_statement "pmVar2 = pmVar1->next;" (assignment_expression "pmVar2 = pmVar1->next" identifier = (field_expression "pmVar1->next" identifier -> field_identifier)) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0011e0a0(void)\n\n{\n  undefined8 *puVar1;\n  long lVar2;\n  long lVar3;\n  \n  printf("Memory region         Used Size  Region Size  %%age Used\n");\n  lVar3 = DAT_001aa558[2];\n  puVar1 = DAT_001aa558;\n  while (lVar3 != 0) {\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }\n  return;\n}\n\n" (function_definition "void FUN_0011e0a0(void)\n\n{\n  undefined8 *puVar1;\n  long lVar2;\n  long lVar3;\n  \n  printf("Memory region         Used Size  Region Size  %%age Used\n");\n  lVar3 = DAT_001aa558[2];\n  puVar1 = DAT_001aa558;\n  while (lVar3 != 0) {\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0011e0a0(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  undefined8 *puVar1;\n  long lVar2;\n  long lVar3;\n  \n  printf("Memory region         Used Size  Region Size  %%age Used\n");\n  lVar3 = DAT_001aa558[2];\n  puVar1 = DAT_001aa558;\n  while (lVar3 != 0) {\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (expression_statement "printf("Memory region         Used Size  Region Size  %%age Used\n");" (call_expression "printf("Memory region         Used Size  Region Size  %%age Used\n")" identifier (argument_list "("Memory region         Used Size  Region Size  %%age Used\n")" ( (string_literal ""Memory region         Used Size  Region Size  %%age Used\n"" " string_content escape_sequence ") ))) ;) (expression_statement "lVar3 = DAT_001aa558[2];" (assignment_expression "lVar3 = DAT_001aa558[2]" identifier = (subscript_expression "DAT_001aa558[2]" identifier [ number_literal ])) ;) (expression_statement "puVar1 = DAT_001aa558;" (assignment_expression "puVar1 = DAT_001aa558" identifier = identifier) ;) (while_statement "while (lVar3 != 0) {\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }" while (parenthesized_expression "(lVar3 != 0)" ( (binary_expression "lVar3 != 0" identifier != number_literal) )) (compound_statement "{\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }" { (expression_statement "lVar3 = puVar1[7];" (assignment_expression "lVar3 = puVar1[7]" identifier = (subscript_expression "puVar1[7]" identifier [ number_literal ])) ;) (expression_statement "lVar2 = puVar1[4];" (assignment_expression "lVar2 = puVar1[4]" identifier = (subscript_expression "puVar1[4]" identifier [ number_literal ])) ;) (expression_statement "printf("%16s: ",*puVar1);" (call_expression "printf("%16s: ",*puVar1)" identifier (argument_list "("%16s: ",*puVar1)" ( (string_literal ""%16s: "" " string_content ") , (pointer_expression "*puVar1" * identifier) ))) ;) (expression_statement "FUN_00115460(lVar3 - lVar2);" (call_expression "FUN_00115460(lVar3 - lVar2)" identifier (argument_list "(lVar3 - lVar2)" ( (binary_expression "lVar3 - lVar2" identifier - identifier) ))) ;) (expression_statement "FUN_00115460(puVar1[5]);" (call_expression "FUN_00115460(puVar1[5])" identifier (argument_list "(puVar1[5])" ( (subscript_expression "puVar1[5]" identifier [ number_literal ]) ))) ;) (expression_statement "printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);" (call_expression "printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5])" identifier (argument_list "("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5])" ( (string_literal ""    %6.2f%%\n"" " string_content escape_sequence ") , (binary_expression "((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]" (parenthesized_expression "((double)(ulong)(lVar3 - lVar2) * _DAT_00144328)" ( (binary_expression "(double)(ulong)(lVar3 - lVar2) * _DAT_00144328" (cast_expression "(double)(ulong)(lVar3 - lVar2)" ( (type_descriptor "double" primitive_type) ) (call_expression "(ulong)(lVar3 - lVar2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(lVar3 - lVar2)" ( (binary_expression "lVar3 - lVar2" identifier - identifier) )))) * identifier) )) / (cast_expression "(double)(ulong)puVar1[5]" ( (type_descriptor "double" primitive_type) ) (cast_expression "(ulong)puVar1[5]" ( (type_descriptor "ulong" type_identifier) ) (subscript_expression "puVar1[5]" identifier [ number_literal ])))) ))) ;) (expression_statement "puVar1 = (undefined8 *)puVar1[2];" (assignment_expression "puVar1 = (undefined8 *)puVar1[2]" identifier = (cast_expression "(undefined8 *)puVar1[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar1[2]" identifier [ number_literal ]))) ;) (expression_statement "lVar3 = puVar1[2];" (assignment_expression "lVar3 = puVar1[2]" identifier = (subscript_expression "puVar1[2]" identifier [ number_literal ])) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (pointer_expression * IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT - IDENT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - IDENT) )))) * IDENT) )) / (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])))) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0011e0a0(void)\n\n{\n  undefined8 *puVar1;\n  long lVar2;\n  long lVar3;\n  \n  printf("Memory region         Used Size  Region Size  %%age Used\n");\n  lVar3 = DAT_001aa558[2];\n  puVar1 = DAT_001aa558;\n  while (lVar3 != 0) {\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0011e0a0(void)" (identifier "FUN_0011e0a0") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  long lVar2;\n  long lVar3;\n  \n  printf("Memory region         Used Size  Region Size  %%age Used\n");\n  lVar3 = DAT_001aa558[2];\n  puVar1 = DAT_001aa558;\n  while (lVar3 != 0) {\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }\n  return;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (expression_statement "printf("Memory region         Used Size  Region Size  %%age Used\n");" (call_expression "printf("Memory region         Used Size  Region Size  %%age Used\n")" (identifier "printf") (argument_list "("Memory region         Used Size  Region Size  %%age Used\n")" (( "(") (string_literal ""Memory region         Used Size  Region Size  %%age Used\n"" (" """) (string_content "Memory region         Used Size  Region Size  %%age Used") (escape_sequence "\n") (" """)) () ")"))) (; ";")) (expression_statement "lVar3 = DAT_001aa558[2];" (assignment_expression "lVar3 = DAT_001aa558[2]" (identifier "lVar3") (= "=") (subscript_expression "DAT_001aa558[2]" (identifier "DAT_001aa558") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "puVar1 = DAT_001aa558;" (assignment_expression "puVar1 = DAT_001aa558" (identifier "puVar1") (= "=") (identifier "DAT_001aa558")) (; ";")) (while_statement "while (lVar3 != 0) {\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }" (while "while") (parenthesized_expression "(lVar3 != 0)" (( "(") (binary_expression "lVar3 != 0" (identifier "lVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    lVar3 = puVar1[7];\n    lVar2 = puVar1[4];\n    printf("%16s: ",*puVar1);\n    FUN_00115460(lVar3 - lVar2);\n    FUN_00115460(puVar1[5]);\n    printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);\n    puVar1 = (undefined8 *)puVar1[2];\n    lVar3 = puVar1[2];\n  }" ({ "{") (expression_statement "lVar3 = puVar1[7];" (assignment_expression "lVar3 = puVar1[7]" (identifier "lVar3") (= "=") (subscript_expression "puVar1[7]" (identifier "puVar1") ([ "[") (number_literal "7") (] "]"))) (; ";")) (expression_statement "lVar2 = puVar1[4];" (assignment_expression "lVar2 = puVar1[4]" (identifier "lVar2") (= "=") (subscript_expression "puVar1[4]" (identifier "puVar1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "printf("%16s: ",*puVar1);" (call_expression "printf("%16s: ",*puVar1)" (identifier "printf") (argument_list "("%16s: ",*puVar1)" (( "(") (string_literal ""%16s: "" (" """) (string_content "%16s: ") (" """)) (, ",") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) () ")"))) (; ";")) (expression_statement "FUN_00115460(lVar3 - lVar2);" (call_expression "FUN_00115460(lVar3 - lVar2)" (identifier "FUN_00115460") (argument_list "(lVar3 - lVar2)" (( "(") (binary_expression "lVar3 - lVar2" (identifier "lVar3") (- "-") (identifier "lVar2")) () ")"))) (; ";")) (expression_statement "FUN_00115460(puVar1[5]);" (call_expression "FUN_00115460(puVar1[5])" (identifier "FUN_00115460") (argument_list "(puVar1[5])" (( "(") (subscript_expression "puVar1[5]" (identifier "puVar1") ([ "[") (number_literal "5") (] "]")) () ")"))) (; ";")) (expression_statement "printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);" (call_expression "printf("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5])" (identifier "printf") (argument_list "("    %6.2f%%\n",\n           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5])" (( "(") (string_literal ""    %6.2f%%\n"" (" """) (string_content "    %6.2f%%") (escape_sequence "\n") (" """)) (, ",") (binary_expression "((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]" (parenthesized_expression "((double)(ulong)(lVar3 - lVar2) * _DAT_00144328)" (( "(") (binary_expression "(double)(ulong)(lVar3 - lVar2) * _DAT_00144328" (cast_expression "(double)(ulong)(lVar3 - lVar2)" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (call_expression "(ulong)(lVar3 - lVar2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(lVar3 - lVar2)" (( "(") (binary_expression "lVar3 - lVar2" (identifier "lVar3") (- "-") (identifier "lVar2")) () ")")))) (* "*") (identifier "_DAT_00144328")) () ")")) (/ "/") (cast_expression "(double)(ulong)puVar1[5]" (( "(") (type_descriptor "double" (primitive_type "double")) () ")") (cast_expression "(ulong)puVar1[5]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (subscript_expression "puVar1[5]" (identifier "puVar1") ([ "[") (number_literal "5") (] "]"))))) () ")"))) (; ";")) (expression_statement "puVar1 = (undefined8 *)puVar1[2];" (assignment_expression "puVar1 = (undefined8 *)puVar1[2]" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)puVar1[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "lVar3 = puVar1[2];" (assignment_expression "lVar3 = puVar1[2]" (identifier "lVar3") (= "=") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
/* WARNING: Unknown calling convention -- yet parameter storage is locked */

void function_1(void)

{
  type_1 *pmVar1;
  type_1 *var_2;
  type_2 sz;
  
  var_1("Memory region         Used Size  Region Size  %%age Used\n");
  var_2 = lang_memory_region_list->next;
  pmVar1 = lang_memory_region_list;
  while (var_2 != (type_1 *)0x0) {
    sz = pmVar1->current - pmVar1->origin;
    var_1("%16s: ",(pmVar1->name_list).name);
    var_3(sz);
    var_3(pmVar1->length);
    var_1("    %6.2f%%\n",((double)sz * var_4) / (double)pmVar1->length);
    pmVar1 = pmVar1->next;
    var_2 = pmVar1->next;
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (pointer_expression argument: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (identifier))))) right: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (return_statement))))

/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

void MASKED(void)

{
  undefined8 *puVar1;
  long lVar2;
  long lVar3;
  
  printf("Memory region         Used Size  Region Size  %%age Used\n");
  lVar3 = DAT_001aa558[2];
  puVar1 = DAT_001aa558;
  while (lVar3 != 0) {
    lVar3 = puVar1[7];
    lVar2 = puVar1[4];
    printf("%16s: ",*puVar1);
    FUN_00115460(lVar3 - lVar2);
    FUN_00115460(puVar1[5]);
    printf("    %6.2f%%\n",
           ((double)(ulong)(lVar3 - lVar2) * _DAT_00144328) / (double)(ulong)puVar1[5]);
    puVar1 = (undefined8 *)puVar1[2];
    lVar3 = puVar1[2];
  }
  return;
}

