
void hist_clip_symbol_address(bfd_vma *p_lowpc,bfd_vma *p_highpc)

{
  histogram *phVar1;
  bool bVar2;
  char *pcVar3;
  histogram *phVar4;
  char *__format;
  ulong uVar5;
  ulong uVar6;
  
  uVar6 = *p_lowpc;
  if (num_histograms == 0) {
    *p_highpc = uVar6;
    return;
  }
  bVar2 = false;
  phVar1 = histograms + (ulong)(num_histograms - 1) + 1;
  phVar4 = histograms;
  while( true ) {
    pcVar3 = whoami;
    if (uVar6 <= phVar4->lowpc) {
      uVar6 = phVar4->lowpc;
    }
    uVar5 = phVar4->highpc;
    if (*p_highpc <= phVar4->highpc) {
      uVar5 = *p_highpc;
    }
    if (uVar6 < uVar5) {
      if (bVar2) {
        __format = (char *)dcgettext("gprof",
                                     "%s: found a symbol that covers several histogram records",5);
        fprintf(stderr,__format,pcVar3);
                    /* WARNING: Subroutine does not return */
        done(1);
      }
      *p_lowpc = uVar6;
      bVar2 = true;
      *p_highpc = uVar5;
    }
    phVar4 = phVar4 + 1;
    if (phVar1 == phVar4) break;
    uVar6 = *p_lowpc;
  }
  if (bVar2) {
    return;
  }
  *p_highpc = *p_lowpc;
  return;
}



void FUN_0010b4d0(ulong *param_1,ulong *param_2)

{
  ulong *puVar1;
  bool bVar2;
  undefined8 uVar3;
  ulong *puVar4;
  char *__format;
  ulong uVar5;
  ulong uVar6;
  
  uVar6 = *param_1;
  if (DAT_00119b20 == 0) {
    *param_2 = uVar6;
    return;
  }
  bVar2 = false;
  puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;
  puVar4 = DAT_00119b18;
  while( true ) {
    uVar3 = DAT_00119b10;
    if (uVar6 <= *puVar4) {
      uVar6 = *puVar4;
    }
    uVar5 = puVar4[1];
    if (*param_2 <= puVar4[1]) {
      uVar5 = *param_2;
    }
    if (uVar6 < uVar5) {
      if (bVar2) {
        __format = (char *)dcgettext("gprof",
                                     "%s: found a symbol that covers several histogram records",5);
        fprintf(stderr,__format,uVar3);
                    /* WARNING: Subroutine does not return */
        FUN_0010a4c0(1);
      }
      *param_1 = uVar6;
      bVar2 = true;
      *param_2 = uVar5;
    }
    puVar4 = puVar4 + 4;
    if (puVar1 == puVar4) break;
    uVar6 = *param_1;
  }
  if (bVar2) {
    return;
  }
  *param_2 = *param_1;
  return;
}


MOV ECX,dword ptr [0x00119b20]
MOV RDX,qword ptr [RDI]
TEST ECX,ECX
JZ 0x0010b540
MOV RAX,qword ptr [0x00119b18]
SUB ECX,0x1
XOR R8D,R8D
SHL RCX,0x5
LEA R9,[RAX + RCX*0x1 + 0x20]
JMP 0x0010b4fb
MOV RDX,qword ptr [RDI]
CMP qword ptr [RAX],RDX
MOV RCX,qword ptr [RAX + 0x8]
CMOVNC RDX,qword ptr [RAX]
CMP qword ptr [RSI],RCX
CMOVBE RCX,qword ptr [RSI]
CMP RDX,RCX
JNC 0x0010b523
TEST R8D,R8D
JNZ 0x0010b544
MOV qword ptr [RDI],RDX
MOV R8D,0x1
MOV qword ptr [RSI],RCX
ADD RAX,0x20
CMP R9,RAX
JNZ 0x0010b4f8
TEST R8D,R8D
JZ 0x0010b538
RET
MOV RAX,qword ptr [RDI]
MOV qword ptr [RSI],RAX
RET
MOV qword ptr [RSI],RDX
RET
PUSH RBX
MOV EDX,0x5
MOV RBX,qword ptr [0x00119b10]
LEA RSI,[0x111bc0]
LEA RDI,[0x110008]
CALL 0x00102170
MOV RDI,qword ptr [0x00118940]
MOV RDX,RBX
MOV RSI,RAX
XOR EAX,EAX
CALL 0x001022f0
MOV EDI,0x1
CALL 0x0010a4c0
(translation_unit "void FUN_0010b4d0(ulong *param_1,ulong *param_2)\n\n{\n  ulong *puVar1;\n  bool bVar2;\n  undefined8 uVar3;\n  ulong *puVar4;\n  char *__format;\n  ulong uVar5;\n  ulong uVar6;\n  \n  uVar6 = *param_1;\n  if (DAT_00119b20 == 0) {\n    *param_2 = uVar6;\n    return;\n  }\n  bVar2 = false;\n  puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;\n  puVar4 = DAT_00119b18;\n  while( true ) {\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }\n  if (bVar2) {\n    return;\n  }\n  *param_2 = *param_1;\n  return;\n}\n\n" (function_definition "void FUN_0010b4d0(ulong *param_1,ulong *param_2)\n\n{\n  ulong *puVar1;\n  bool bVar2;\n  undefined8 uVar3;\n  ulong *puVar4;\n  char *__format;\n  ulong uVar5;\n  ulong uVar6;\n  \n  uVar6 = *param_1;\n  if (DAT_00119b20 == 0) {\n    *param_2 = uVar6;\n    return;\n  }\n  bVar2 = false;\n  puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;\n  puVar4 = DAT_00119b18;\n  while( true ) {\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }\n  if (bVar2) {\n    return;\n  }\n  *param_2 = *param_1;\n  return;\n}" primitive_type (function_declarator "FUN_0010b4d0(ulong *param_1,ulong *param_2)" identifier (parameter_list "(ulong *param_1,ulong *param_2)" ( (parameter_declaration "ulong *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  ulong *puVar1;\n  bool bVar2;\n  undefined8 uVar3;\n  ulong *puVar4;\n  char *__format;\n  ulong uVar5;\n  ulong uVar6;\n  \n  uVar6 = *param_1;\n  if (DAT_00119b20 == 0) {\n    *param_2 = uVar6;\n    return;\n  }\n  bVar2 = false;\n  puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;\n  puVar4 = DAT_00119b18;\n  while( true ) {\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }\n  if (bVar2) {\n    return;\n  }\n  *param_2 = *param_1;\n  return;\n}" { (declaration "ulong *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "ulong *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (DAT_00119b20 == 0) {\n    *param_2 = uVar6;\n    return;\n  }" if (parenthesized_expression "(DAT_00119b20 == 0)" ( (binary_expression "DAT_00119b20 == 0" identifier == number_literal) )) (compound_statement "{\n    *param_2 = uVar6;\n    return;\n  }" { (expression_statement "*param_2 = uVar6;" (assignment_expression "*param_2 = uVar6" (pointer_expression "*param_2" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;" (assignment_expression "puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4" identifier = (binary_expression "DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4" (binary_expression "DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4" identifier + (binary_expression "(ulong)(DAT_00119b20 - 1) * 4" (call_expression "(ulong)(DAT_00119b20 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(DAT_00119b20 - 1)" ( (binary_expression "DAT_00119b20 - 1" identifier - number_literal) ))) * number_literal)) + number_literal)) ;) (expression_statement "puVar4 = DAT_00119b18;" (assignment_expression "puVar4 = DAT_00119b18" identifier = identifier) ;) (while_statement "while( true ) {\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }" { (expression_statement "uVar3 = DAT_00119b10;" (assignment_expression "uVar3 = DAT_00119b10" identifier = identifier) ;) (if_statement "if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }" if (parenthesized_expression "(uVar6 <= *puVar4)" ( (binary_expression "uVar6 <= *puVar4" identifier <= (pointer_expression "*puVar4" * identifier)) )) (compound_statement "{\n      uVar6 = *puVar4;\n    }" { (expression_statement "uVar6 = *puVar4;" (assignment_expression "uVar6 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) })) (expression_statement "uVar5 = puVar4[1];" (assignment_expression "uVar5 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (if_statement "if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }" if (parenthesized_expression "(*param_2 <= puVar4[1])" ( (binary_expression "*param_2 <= puVar4[1]" (pointer_expression "*param_2" * identifier) <= (subscript_expression "puVar4[1]" identifier [ number_literal ])) )) (compound_statement "{\n      uVar5 = *param_2;\n    }" { (expression_statement "uVar5 = *param_2;" (assignment_expression "uVar5 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (if_statement "if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }" if (parenthesized_expression "(uVar6 < uVar5)" ( (binary_expression "uVar6 < uVar5" identifier < identifier) )) (compound_statement "{\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }" { (if_statement "if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    /* WARNING: Subroutine does not return */\n        FUN_0010a4c0(1);\n      }" { (expression_statement "__format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);" (assignment_expression "__format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" identifier = (cast_expression "(char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" identifier (argument_list "("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: found a symbol that covers several histogram records"" " string_content ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,__format,uVar3);" (call_expression "fprintf(stderr,__format,uVar3)" identifier (argument_list "(stderr,__format,uVar3)" ( identifier , identifier , identifier ))) ;) comment (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "*param_1 = uVar6;" (assignment_expression "*param_1 = uVar6" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "*param_2 = uVar5;" (assignment_expression "*param_2 = uVar5" (pointer_expression "*param_2" * identifier) = identifier) ;) })) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (if_statement "if (puVar1 == puVar4) break;" if (parenthesized_expression "(puVar1 == puVar4)" ( (binary_expression "puVar1 == puVar4" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) })) (if_statement "if (bVar2) {\n    return;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "*param_2 = *param_1;" (assignment_expression "*param_2 = *param_1" (pointer_expression "*param_2" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "void hist_clip_symbol_address(bfd_vma *p_lowpc,bfd_vma *p_highpc)\n\n{\n  histogram *phVar1;\n  bool bVar2;\n  char *pcVar3;\n  histogram *phVar4;\n  char *__format;\n  ulong uVar5;\n  ulong uVar6;\n  \n  uVar6 = *p_lowpc;\n  if (num_histograms == 0) {\n    *p_highpc = uVar6;\n    return;\n  }\n  bVar2 = false;\n  phVar1 = histograms + (ulong)(num_histograms - 1) + 1;\n  phVar4 = histograms;\n  while( true ) {\n    pcVar3 = whoami;\n    if (uVar6 <= phVar4->lowpc) {\n      uVar6 = phVar4->lowpc;\n    }\n    uVar5 = phVar4->highpc;\n    if (*p_highpc <= phVar4->highpc) {\n      uVar5 = *p_highpc;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,pcVar3);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      *p_lowpc = uVar6;\n      bVar2 = true;\n      *p_highpc = uVar5;\n    }\n    phVar4 = phVar4 + 1;\n    if (phVar1 == phVar4) break;\n    uVar6 = *p_lowpc;\n  }\n  if (bVar2) {\n    return;\n  }\n  *p_highpc = *p_lowpc;\n  return;\n}\n\n" (function_definition "void hist_clip_symbol_address(bfd_vma *p_lowpc,bfd_vma *p_highpc)\n\n{\n  histogram *phVar1;\n  bool bVar2;\n  char *pcVar3;\n  histogram *phVar4;\n  char *__format;\n  ulong uVar5;\n  ulong uVar6;\n  \n  uVar6 = *p_lowpc;\n  if (num_histograms == 0) {\n    *p_highpc = uVar6;\n    return;\n  }\n  bVar2 = false;\n  phVar1 = histograms + (ulong)(num_histograms - 1) + 1;\n  phVar4 = histograms;\n  while( true ) {\n    pcVar3 = whoami;\n    if (uVar6 <= phVar4->lowpc) {\n      uVar6 = phVar4->lowpc;\n    }\n    uVar5 = phVar4->highpc;\n    if (*p_highpc <= phVar4->highpc) {\n      uVar5 = *p_highpc;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,pcVar3);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      *p_lowpc = uVar6;\n      bVar2 = true;\n      *p_highpc = uVar5;\n    }\n    phVar4 = phVar4 + 1;\n    if (phVar1 == phVar4) break;\n    uVar6 = *p_lowpc;\n  }\n  if (bVar2) {\n    return;\n  }\n  *p_highpc = *p_lowpc;\n  return;\n}" primitive_type (function_declarator "hist_clip_symbol_address(bfd_vma *p_lowpc,bfd_vma *p_highpc)" identifier (parameter_list "(bfd_vma *p_lowpc,bfd_vma *p_highpc)" ( (parameter_declaration "bfd_vma *p_lowpc" type_identifier (pointer_declarator "*p_lowpc" * identifier)) , (parameter_declaration "bfd_vma *p_highpc" type_identifier (pointer_declarator "*p_highpc" * identifier)) ))) (compound_statement "{\n  histogram *phVar1;\n  bool bVar2;\n  char *pcVar3;\n  histogram *phVar4;\n  char *__format;\n  ulong uVar5;\n  ulong uVar6;\n  \n  uVar6 = *p_lowpc;\n  if (num_histograms == 0) {\n    *p_highpc = uVar6;\n    return;\n  }\n  bVar2 = false;\n  phVar1 = histograms + (ulong)(num_histograms - 1) + 1;\n  phVar4 = histograms;\n  while( true ) {\n    pcVar3 = whoami;\n    if (uVar6 <= phVar4->lowpc) {\n      uVar6 = phVar4->lowpc;\n    }\n    uVar5 = phVar4->highpc;\n    if (*p_highpc <= phVar4->highpc) {\n      uVar5 = *p_highpc;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,pcVar3);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      *p_lowpc = uVar6;\n      bVar2 = true;\n      *p_highpc = uVar5;\n    }\n    phVar4 = phVar4 + 1;\n    if (phVar1 == phVar4) break;\n    uVar6 = *p_lowpc;\n  }\n  if (bVar2) {\n    return;\n  }\n  *p_highpc = *p_lowpc;\n  return;\n}" { (declaration "histogram *phVar1;" type_identifier (pointer_declarator "*phVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "histogram *phVar4;" type_identifier (pointer_declarator "*phVar4" * identifier) ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (expression_statement "uVar6 = *p_lowpc;" (assignment_expression "uVar6 = *p_lowpc" identifier = (pointer_expression "*p_lowpc" * identifier)) ;) (if_statement "if (num_histograms == 0) {\n    *p_highpc = uVar6;\n    return;\n  }" if (parenthesized_expression "(num_histograms == 0)" ( (binary_expression "num_histograms == 0" identifier == number_literal) )) (compound_statement "{\n    *p_highpc = uVar6;\n    return;\n  }" { (expression_statement "*p_highpc = uVar6;" (assignment_expression "*p_highpc = uVar6" (pointer_expression "*p_highpc" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "phVar1 = histograms + (ulong)(num_histograms - 1) + 1;" (assignment_expression "phVar1 = histograms + (ulong)(num_histograms - 1) + 1" identifier = (binary_expression "histograms + (ulong)(num_histograms - 1) + 1" (binary_expression "histograms + (ulong)(num_histograms - 1)" identifier + (call_expression "(ulong)(num_histograms - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(num_histograms - 1)" ( (binary_expression "num_histograms - 1" identifier - number_literal) )))) + number_literal)) ;) (expression_statement "phVar4 = histograms;" (assignment_expression "phVar4 = histograms" identifier = identifier) ;) (while_statement "while( true ) {\n    pcVar3 = whoami;\n    if (uVar6 <= phVar4->lowpc) {\n      uVar6 = phVar4->lowpc;\n    }\n    uVar5 = phVar4->highpc;\n    if (*p_highpc <= phVar4->highpc) {\n      uVar5 = *p_highpc;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,pcVar3);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      *p_lowpc = uVar6;\n      bVar2 = true;\n      *p_highpc = uVar5;\n    }\n    phVar4 = phVar4 + 1;\n    if (phVar1 == phVar4) break;\n    uVar6 = *p_lowpc;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    pcVar3 = whoami;\n    if (uVar6 <= phVar4->lowpc) {\n      uVar6 = phVar4->lowpc;\n    }\n    uVar5 = phVar4->highpc;\n    if (*p_highpc <= phVar4->highpc) {\n      uVar5 = *p_highpc;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,pcVar3);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      *p_lowpc = uVar6;\n      bVar2 = true;\n      *p_highpc = uVar5;\n    }\n    phVar4 = phVar4 + 1;\n    if (phVar1 == phVar4) break;\n    uVar6 = *p_lowpc;\n  }" { (expression_statement "pcVar3 = whoami;" (assignment_expression "pcVar3 = whoami" identifier = identifier) ;) (if_statement "if (uVar6 <= phVar4->lowpc) {\n      uVar6 = phVar4->lowpc;\n    }" if (parenthesized_expression "(uVar6 <= phVar4->lowpc)" ( (binary_expression "uVar6 <= phVar4->lowpc" identifier <= (field_expression "phVar4->lowpc" identifier -> field_identifier)) )) (compound_statement "{\n      uVar6 = phVar4->lowpc;\n    }" { (expression_statement "uVar6 = phVar4->lowpc;" (assignment_expression "uVar6 = phVar4->lowpc" identifier = (field_expression "phVar4->lowpc" identifier -> field_identifier)) ;) })) (expression_statement "uVar5 = phVar4->highpc;" (assignment_expression "uVar5 = phVar4->highpc" identifier = (field_expression "phVar4->highpc" identifier -> field_identifier)) ;) (if_statement "if (*p_highpc <= phVar4->highpc) {\n      uVar5 = *p_highpc;\n    }" if (parenthesized_expression "(*p_highpc <= phVar4->highpc)" ( (binary_expression "*p_highpc <= phVar4->highpc" (pointer_expression "*p_highpc" * identifier) <= (field_expression "phVar4->highpc" identifier -> field_identifier)) )) (compound_statement "{\n      uVar5 = *p_highpc;\n    }" { (expression_statement "uVar5 = *p_highpc;" (assignment_expression "uVar5 = *p_highpc" identifier = (pointer_expression "*p_highpc" * identifier)) ;) })) (if_statement "if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,pcVar3);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      *p_lowpc = uVar6;\n      bVar2 = true;\n      *p_highpc = uVar5;\n    }" if (parenthesized_expression "(uVar6 < uVar5)" ( (binary_expression "uVar6 < uVar5" identifier < identifier) )) (compound_statement "{\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,pcVar3);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }\n      *p_lowpc = uVar6;\n      bVar2 = true;\n      *p_highpc = uVar5;\n    }" { (if_statement "if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,pcVar3);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,pcVar3);\n                    /* WARNING: Subroutine does not return */\n        done(1);\n      }" { (expression_statement "__format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);" (assignment_expression "__format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" identifier = (cast_expression "(char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" identifier (argument_list "("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: found a symbol that covers several histogram records"" " string_content ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,__format,pcVar3);" (call_expression "fprintf(stderr,__format,pcVar3)" identifier (argument_list "(stderr,__format,pcVar3)" ( identifier , identifier , identifier ))) ;) comment (expression_statement "done(1);" (call_expression "done(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "*p_lowpc = uVar6;" (assignment_expression "*p_lowpc = uVar6" (pointer_expression "*p_lowpc" * identifier) = identifier) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "*p_highpc = uVar5;" (assignment_expression "*p_highpc = uVar5" (pointer_expression "*p_highpc" * identifier) = identifier) ;) })) (expression_statement "phVar4 = phVar4 + 1;" (assignment_expression "phVar4 = phVar4 + 1" identifier = (binary_expression "phVar4 + 1" identifier + number_literal)) ;) (if_statement "if (phVar1 == phVar4) break;" if (parenthesized_expression "(phVar1 == phVar4)" ( (binary_expression "phVar1 == phVar4" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = *p_lowpc;" (assignment_expression "uVar6 = *p_lowpc" identifier = (pointer_expression "*p_lowpc" * identifier)) ;) })) (if_statement "if (bVar2) {\n    return;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "*p_highpc = *p_lowpc;" (assignment_expression "*p_highpc = *p_lowpc" (pointer_expression "*p_highpc" * identifier) = (pointer_expression "*p_lowpc" * identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0010b4d0(ulong *param_1,ulong *param_2)\n\n{\n  ulong *puVar1;\n  bool bVar2;\n  undefined8 uVar3;\n  ulong *puVar4;\n  char *__format;\n  ulong uVar5;\n  ulong uVar6;\n  \n  uVar6 = *param_1;\n  if (DAT_00119b20 == 0) {\n    *param_2 = uVar6;\n    return;\n  }\n  bVar2 = false;\n  puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;\n  puVar4 = DAT_00119b18;\n  while( true ) {\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }\n  if (bVar2) {\n    return;\n  }\n  *param_2 = *param_1;\n  return;\n}\n\n" (function_definition "void FUN_0010b4d0(ulong *param_1,ulong *param_2)\n\n{\n  ulong *puVar1;\n  bool bVar2;\n  undefined8 uVar3;\n  ulong *puVar4;\n  char *__format;\n  ulong uVar5;\n  ulong uVar6;\n  \n  uVar6 = *param_1;\n  if (DAT_00119b20 == 0) {\n    *param_2 = uVar6;\n    return;\n  }\n  bVar2 = false;\n  puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;\n  puVar4 = DAT_00119b18;\n  while( true ) {\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }\n  if (bVar2) {\n    return;\n  }\n  *param_2 = *param_1;\n  return;\n}" primitive_type (function_declarator "FUN_0010b4d0(ulong *param_1,ulong *param_2)" identifier (parameter_list "(ulong *param_1,ulong *param_2)" ( (parameter_declaration "ulong *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  ulong *puVar1;\n  bool bVar2;\n  undefined8 uVar3;\n  ulong *puVar4;\n  char *__format;\n  ulong uVar5;\n  ulong uVar6;\n  \n  uVar6 = *param_1;\n  if (DAT_00119b20 == 0) {\n    *param_2 = uVar6;\n    return;\n  }\n  bVar2 = false;\n  puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;\n  puVar4 = DAT_00119b18;\n  while( true ) {\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }\n  if (bVar2) {\n    return;\n  }\n  *param_2 = *param_1;\n  return;\n}" { (declaration "ulong *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "ulong *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *__format;" primitive_type (pointer_declarator "*__format" * identifier) ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (DAT_00119b20 == 0) {\n    *param_2 = uVar6;\n    return;\n  }" if (parenthesized_expression "(DAT_00119b20 == 0)" ( (binary_expression "DAT_00119b20 == 0" identifier == number_literal) )) (compound_statement "{\n    *param_2 = uVar6;\n    return;\n  }" { (expression_statement "*param_2 = uVar6;" (assignment_expression "*param_2 = uVar6" (pointer_expression "*param_2" * identifier) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;" (assignment_expression "puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4" identifier = (binary_expression "DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4" (binary_expression "DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4" identifier + (binary_expression "(ulong)(DAT_00119b20 - 1) * 4" (call_expression "(ulong)(DAT_00119b20 - 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(DAT_00119b20 - 1)" ( (binary_expression "DAT_00119b20 - 1" identifier - number_literal) ))) * number_literal)) + number_literal)) ;) (expression_statement "puVar4 = DAT_00119b18;" (assignment_expression "puVar4 = DAT_00119b18" identifier = identifier) ;) (while_statement "while( true ) {\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }" { (expression_statement "uVar3 = DAT_00119b10;" (assignment_expression "uVar3 = DAT_00119b10" identifier = identifier) ;) (if_statement "if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }" if (parenthesized_expression "(uVar6 <= *puVar4)" ( (binary_expression "uVar6 <= *puVar4" identifier <= (pointer_expression "*puVar4" * identifier)) )) (compound_statement "{\n      uVar6 = *puVar4;\n    }" { (expression_statement "uVar6 = *puVar4;" (assignment_expression "uVar6 = *puVar4" identifier = (pointer_expression "*puVar4" * identifier)) ;) })) (expression_statement "uVar5 = puVar4[1];" (assignment_expression "uVar5 = puVar4[1]" identifier = (subscript_expression "puVar4[1]" identifier [ number_literal ])) ;) (if_statement "if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }" if (parenthesized_expression "(*param_2 <= puVar4[1])" ( (binary_expression "*param_2 <= puVar4[1]" (pointer_expression "*param_2" * identifier) <= (subscript_expression "puVar4[1]" identifier [ number_literal ])) )) (compound_statement "{\n      uVar5 = *param_2;\n    }" { (expression_statement "uVar5 = *param_2;" (assignment_expression "uVar5 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) })) (if_statement "if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }" if (parenthesized_expression "(uVar6 < uVar5)" ( (binary_expression "uVar6 < uVar5" identifier < identifier) )) (compound_statement "{\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }" { (if_statement "if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }" { (expression_statement "__format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);" (assignment_expression "__format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" identifier = (cast_expression "(char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" identifier (argument_list "("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" ( (string_literal ""gprof"" " string_content ") , (string_literal ""%s: found a symbol that covers several histogram records"" " string_content ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,__format,uVar3);" (call_expression "fprintf(stderr,__format,uVar3)" identifier (argument_list "(stderr,__format,uVar3)" ( identifier , identifier , identifier ))) ;) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "*param_1 = uVar6;" (assignment_expression "*param_1 = uVar6" (pointer_expression "*param_1" * identifier) = identifier) ;) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "*param_2 = uVar5;" (assignment_expression "*param_2 = uVar5" (pointer_expression "*param_2" * identifier) = identifier) ;) })) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" identifier = (binary_expression "puVar4 + 4" identifier + number_literal)) ;) (if_statement "if (puVar1 == puVar4) break;" if (parenthesized_expression "(puVar1 == puVar4)" ( (binary_expression "puVar1 == puVar4" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) })) (if_statement "if (bVar2) {\n    return;\n  }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "*param_2 = *param_1;" (assignment_expression "*param_2 = *param_1" (pointer_expression "*param_2" * identifier) = (pointer_expression "*param_1" * identifier)) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) <= (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (return_statement return ;) })))
(function_definition "void FUN_0010b4d0(ulong *param_1,ulong *param_2)\n\n{\n  ulong *puVar1;\n  bool bVar2;\n  undefined8 uVar3;\n  ulong *puVar4;\n  char *__format;\n  ulong uVar5;\n  ulong uVar6;\n  \n  uVar6 = *param_1;\n  if (DAT_00119b20 == 0) {\n    *param_2 = uVar6;\n    return;\n  }\n  bVar2 = false;\n  puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;\n  puVar4 = DAT_00119b18;\n  while( true ) {\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }\n  if (bVar2) {\n    return;\n  }\n  *param_2 = *param_1;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0010b4d0(ulong *param_1,ulong *param_2)" (identifier "FUN_0010b4d0") (parameter_list "(ulong *param_1,ulong *param_2)" (( "(") (parameter_declaration "ulong *param_1" (type_identifier "ulong") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ulong *param_2" (type_identifier "ulong") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  ulong *puVar1;\n  bool bVar2;\n  undefined8 uVar3;\n  ulong *puVar4;\n  char *__format;\n  ulong uVar5;\n  ulong uVar6;\n  \n  uVar6 = *param_1;\n  if (DAT_00119b20 == 0) {\n    *param_2 = uVar6;\n    return;\n  }\n  bVar2 = false;\n  puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;\n  puVar4 = DAT_00119b18;\n  while( true ) {\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }\n  if (bVar2) {\n    return;\n  }\n  *param_2 = *param_1;\n  return;\n}" ({ "{") (declaration "ulong *puVar1;" (type_identifier "ulong") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "ulong *puVar4;" (type_identifier "ulong") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "char *__format;" (primitive_type "char") (pointer_declarator "*__format" (* "*") (identifier "__format")) (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" (identifier "uVar6") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (DAT_00119b20 == 0) {\n    *param_2 = uVar6;\n    return;\n  }" (if "if") (parenthesized_expression "(DAT_00119b20 == 0)" (( "(") (binary_expression "DAT_00119b20 == 0" (identifier "DAT_00119b20") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    *param_2 = uVar6;\n    return;\n  }" ({ "{") (expression_statement "*param_2 = uVar6;" (assignment_expression "*param_2 = uVar6" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar6")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;" (assignment_expression "puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4" (identifier "puVar1") (= "=") (binary_expression "DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4" (binary_expression "DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4" (identifier "DAT_00119b18") (+ "+") (binary_expression "(ulong)(DAT_00119b20 - 1) * 4" (call_expression "(ulong)(DAT_00119b20 - 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(DAT_00119b20 - 1)" (( "(") (binary_expression "DAT_00119b20 - 1" (identifier "DAT_00119b20") (- "-") (number_literal "1")) () ")"))) (* "*") (number_literal "4"))) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar4 = DAT_00119b18;" (assignment_expression "puVar4 = DAT_00119b18" (identifier "puVar4") (= "=") (identifier "DAT_00119b18")) (; ";")) (while_statement "while( true ) {\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n    uVar3 = DAT_00119b10;\n    if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }\n    uVar5 = puVar4[1];\n    if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }\n    if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }\n    puVar4 = puVar4 + 4;\n    if (puVar1 == puVar4) break;\n    uVar6 = *param_1;\n  }" ({ "{") (expression_statement "uVar3 = DAT_00119b10;" (assignment_expression "uVar3 = DAT_00119b10" (identifier "uVar3") (= "=") (identifier "DAT_00119b10")) (; ";")) (if_statement "if (uVar6 <= *puVar4) {\n      uVar6 = *puVar4;\n    }" (if "if") (parenthesized_expression "(uVar6 <= *puVar4)" (( "(") (binary_expression "uVar6 <= *puVar4" (identifier "uVar6") (<= "<=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) () ")")) (compound_statement "{\n      uVar6 = *puVar4;\n    }" ({ "{") (expression_statement "uVar6 = *puVar4;" (assignment_expression "uVar6 = *puVar4" (identifier "uVar6") (= "=") (pointer_expression "*puVar4" (* "*") (identifier "puVar4"))) (; ";")) (} "}"))) (expression_statement "uVar5 = puVar4[1];" (assignment_expression "uVar5 = puVar4[1]" (identifier "uVar5") (= "=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (*param_2 <= puVar4[1]) {\n      uVar5 = *param_2;\n    }" (if "if") (parenthesized_expression "(*param_2 <= puVar4[1])" (( "(") (binary_expression "*param_2 <= puVar4[1]" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (<= "<=") (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]"))) () ")")) (compound_statement "{\n      uVar5 = *param_2;\n    }" ({ "{") (expression_statement "uVar5 = *param_2;" (assignment_expression "uVar5 = *param_2" (identifier "uVar5") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (} "}"))) (if_statement "if (uVar6 < uVar5) {\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }" (if "if") (parenthesized_expression "(uVar6 < uVar5)" (( "(") (binary_expression "uVar6 < uVar5" (identifier "uVar6") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n      if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }\n      *param_1 = uVar6;\n      bVar2 = true;\n      *param_2 = uVar5;\n    }" ({ "{") (if_statement "if (bVar2) {\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n        __format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);\n        fprintf(stderr,__format,uVar3);\n                    \n        FUN_0010a4c0(1);\n      }" ({ "{") (expression_statement "__format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5);" (assignment_expression "__format = (char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" (identifier "__format") (= "=") (cast_expression "(char *)dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" (identifier "dcgettext") (argument_list "("gprof",\n                                     "%s: found a symbol that covers several histogram records",5)" (( "(") (string_literal ""gprof"" (" """) (string_content "gprof") (" """)) (, ",") (string_literal ""%s: found a symbol that covers several histogram records"" (" """) (string_content "%s: found a symbol that covers several histogram records") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(stderr,__format,uVar3);" (call_expression "fprintf(stderr,__format,uVar3)" (identifier "fprintf") (argument_list "(stderr,__format,uVar3)" (( "(") (identifier "stderr") (, ",") (identifier "__format") (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "FUN_0010a4c0(1);" (call_expression "FUN_0010a4c0(1)" (identifier "FUN_0010a4c0") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "*param_1 = uVar6;" (assignment_expression "*param_1 = uVar6" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (identifier "uVar6")) (; ";")) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "*param_2 = uVar5;" (assignment_expression "*param_2 = uVar5" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "uVar5")) (; ";")) (} "}"))) (expression_statement "puVar4 = puVar4 + 4;" (assignment_expression "puVar4 = puVar4 + 4" (identifier "puVar4") (= "=") (binary_expression "puVar4 + 4" (identifier "puVar4") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (puVar1 == puVar4) break;" (if "if") (parenthesized_expression "(puVar1 == puVar4)" (( "(") (binary_expression "puVar1 == puVar4" (identifier "puVar1") (== "==") (identifier "puVar4")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar6 = *param_1;" (assignment_expression "uVar6 = *param_1" (identifier "uVar6") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (} "}"))) (if_statement "if (bVar2) {\n    return;\n  }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*param_2 = *param_1;" (assignment_expression "*param_2 = *param_1" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *p_lowpc,type_1 *p_highpc)

{
  type_2 *var_9;
  bool bVar2;
  char *pcVar3;
  type_2 *var_8;
  char *__format;
  type_3 var_4;
  type_3 var_3;
  
  var_3 = *p_lowpc;
  if (var_1 == 0) {
    *p_highpc = var_3;
    return;
  }
  bVar2 = false;
  var_9 = var_2 + (type_3)(var_1 - 1) + 1;
  var_8 = var_2;
  while( true ) {
    pcVar3 = whoami;
    if (var_3 <= var_8->lowpc) {
      var_3 = var_8->lowpc;
    }
    var_4 = var_8->highpc;
    if (*p_highpc <= var_8->highpc) {
      var_4 = *p_highpc;
    }
    if (var_3 < var_4) {
      if (bVar2) {
        __format = (char *)var_5("gprof",
                                     "%s: found a symbol that covers several histogram records",5);
        var_6(stderr,__format,pcVar3);
                    /* WARNING: Subroutine does not return */
        var_7(1);
      }
      *p_lowpc = var_3;
      bVar2 = true;
      *p_highpc = var_4;
    }
    var_8 = var_8 + 1;
    if (var_9 == var_8) break;
    var_3 = *p_lowpc;
  }
  if (bVar2) {
    return;
  }
  *p_highpc = *p_lowpc;
  return;
}


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

void MASKED(ulong *param_1,ulong *param_2)

{
  ulong *puVar1;
  bool bVar2;
  undefined8 uVar3;
  ulong *puVar4;
  char *__format;
  ulong uVar5;
  ulong uVar6;
  
  uVar6 = *param_1;
  if (DAT_00119b20 == 0) {
    *param_2 = uVar6;
    return;
  }
  bVar2 = false;
  puVar1 = DAT_00119b18 + (ulong)(DAT_00119b20 - 1) * 4 + 4;
  puVar4 = DAT_00119b18;
  while( true ) {
    uVar3 = DAT_00119b10;
    if (uVar6 <= *puVar4) {
      uVar6 = *puVar4;
    }
    uVar5 = puVar4[1];
    if (*param_2 <= puVar4[1]) {
      uVar5 = *param_2;
    }
    if (uVar6 < uVar5) {
      if (bVar2) {
        __format = (char *)dcgettext("gprof",
                                     "%s: found a symbol that covers several histogram records",5);
        fprintf(stderr,__format,uVar3);
                    /* WARNING: Subroutine does not return */
        FUN_0010a4c0(1);
      }
      *param_1 = uVar6;
      bVar2 = true;
      *param_2 = uVar5;
    }
    puVar4 = puVar4 + 4;
    if (puVar1 == puVar4) break;
    uVar6 = *param_1;
  }
  if (bVar2) {
    return;
  }
  *param_2 = *param_1;
  return;
}

