
void display_debug_ranges_list
               (uchar *start,uchar *finish,uint pointer_size,ulong offset,ulong base_address)

{
  uchar *field;
  ulong uVar1;
  FILE *__stream;
  uint uVar2;
  elf_vma value;
  char *pcVar3;
  elf_vma value_00;
  ulong uVar4;
  ulong uVar5;
  ulong local_60;
  
  if (start < finish) {
    uVar1 = (ulong)pointer_size;
    uVar5 = ~(-2L << ((char)pointer_size * '\b' - 1U & 0x3f));
    local_60 = base_address;
    do {
      field = start + uVar1;
      if (pointer_size < 9) {
        if (finish <= field) {
LAB_0013e3be:
          value = 0;
          uVar2 = (int)finish - (int)start;
          if (uVar2 - 1 < 8) goto LAB_0013e436;
          goto LAB_0013e3d1;
        }
        value = 0;
        uVar2 = pointer_size;
        if (pointer_size - 1 < 8) goto LAB_0013e436;
      }
      else {
        pcVar3 = (char *)dcngettext(0,
                                    "internal error: attempt to read %d byte of data in to %d sized variable"
                                    ,
                                    "internal error: attempt to read %d bytes of data in to %d sized variable"
                                    ,uVar1,5);
        error(pcVar3,(ulong)pointer_size,8);
        if (finish <= start + 8) goto LAB_0013e3be;
        uVar2 = 8;
LAB_0013e436:
        value = (*byte_get)(start,uVar2);
LAB_0013e3d1:
        if (finish <= field) {
          return;
        }
      }
      start = start + uVar1 * 2;
      uVar2 = (int)finish - (int)field;
      if (start < finish) {
        uVar2 = pointer_size;
      }
      value_00 = 0;
      uVar4 = value;
      if (uVar2 != 0) {
        value_00 = byte_get_signed(field,uVar2);
        uVar4 = value_00 | value;
      }
      printf("    %8.8lx ",offset);
      if (uVar4 == 0) {
        pcVar3 = (char *)dcgettext(0,"<End of list>\n",5);
        printf(pcVar3);
        return;
      }
      if ((uVar5 == (uVar5 & value)) && (uVar5 != (value_00 & uVar5))) {
        print_dwarf_vma(value,pointer_size);
        print_dwarf_vma(value_00,pointer_size);
        puts("(base address)");
        local_60 = value_00;
      }
      else {
        print_dwarf_vma(local_60 + value,pointer_size);
        print_dwarf_vma(value_00 + local_60,pointer_size);
        __stream = stdout;
        pcVar3 = " (start == end)";
        if (value_00 == value) {
LAB_0013e45c:
          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);
          fputs(pcVar3,__stream);
        }
        else if (value_00 < value) {
          pcVar3 = " (start > end)";
          goto LAB_0013e45c;
        }
        putc(10,stdout);
      }
    } while (start < finish);
  }
  return;
}



void FUN_0013e280(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)

{
  ulong uVar1;
  FILE *__stream;
  uint uVar2;
  ulong uVar3;
  undefined8 uVar4;
  ulong uVar5;
  char *pcVar6;
  ulong uVar7;
  ulong uVar8;
  ulong uVar9;
  ulong local_60;
  
  if (param_1 < param_2) {
    uVar3 = (ulong)param_3;
    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));
    local_60 = param_5;
    do {
      uVar1 = uVar3 + param_1;
      if (param_3 < 9) {
        if (param_2 <= uVar1) {
LAB_0013e3be:
          uVar5 = 0;
          uVar2 = (int)param_2 - (int)param_1;
          if (uVar2 - 1 < 8) goto LAB_0013e436;
          goto LAB_0013e3d1;
        }
        uVar5 = 0;
        uVar2 = param_3;
        if (param_3 - 1 < 8) goto LAB_0013e436;
      }
      else {
        uVar4 = dcngettext(0,
                           "internal error: attempt to read %d byte of data in to %d sized variable"
                           ,
                           "internal error: attempt to read %d bytes of data in to %d sized variable"
                           ,uVar3,5);
        error(uVar4,param_3,8);
        if (param_2 <= param_1 + 8) goto LAB_0013e3be;
        uVar2 = 8;
LAB_0013e436:
        uVar5 = (*DAT_00196f88)(param_1,uVar2);
LAB_0013e3d1:
        if (param_2 <= uVar1) {
          return;
        }
      }
      param_1 = param_1 + uVar3 * 2;
      uVar2 = (int)param_2 - (int)uVar1;
      if (param_1 < param_2) {
        uVar2 = param_3;
      }
      uVar7 = 0;
      uVar8 = uVar5;
      if (uVar2 != 0) {
        uVar7 = FUN_001553a0(uVar1);
        uVar8 = uVar7 | uVar5;
      }
      printf("    %8.8lx ",param_4);
      if (uVar8 == 0) {
        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);
        printf(pcVar6);
        return;
      }
      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {
        FUN_0013d4c0(uVar5,param_3);
        FUN_0013d4c0(uVar7,param_3);
        puts("(base address)");
        local_60 = uVar7;
      }
      else {
        FUN_0013d4c0(local_60 + uVar5,param_3);
        FUN_0013d4c0(uVar7 + local_60,param_3);
        __stream = stdout;
        pcVar6 = " (start == end)";
        if (uVar7 == uVar5) {
LAB_0013e45c:
          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);
          fputs(pcVar6,__stream);
        }
        else if (uVar7 < uVar5) {
          pcVar6 = " (start > end)";
          goto LAB_0013e45c;
        }
        putc(10,stdout);
      }
    } while (param_1 < param_2);
  }
  return;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x38
MOV qword ptr [RSP + 0x18],RCX
MOV qword ptr [RSP + 0x8],R8
CMP RDI,RSI
JNC 0x0013e3da
MOV EAX,EDX
LEA ECX,[-0x1 + RDX*0x8]
MOV RBX,RDI
MOV RBP,RSI
MOV R14,-0x2
MOV qword ptr [RSP + 0x10],RAX
ADD RAX,RAX
MOV R12D,EDX
SHL R14,CL
MOV qword ptr [RSP + 0x20],RAX
LEA EAX,[RDX + -0x1]
NOT R14
MOV dword ptr [RSP + 0x2c],EAX
JMP 0x0013e3a6
XOR R15D,R15D
CMP dword ptr [RSP + 0x2c],0x7
MOV ESI,R12D
JBE 0x0013e436
ADD RBX,qword ptr [RSP + 0x20]
MOV RSI,RBP
MOV RCX,R15
SUB RSI,R9
CMP RBP,RBX
CMOVA ESI,R12D
XOR R13D,R13D
TEST ESI,ESI
JNZ 0x0013e480
MOV RSI,qword ptr [RSP + 0x18]
LEA RDI,[0x180832]
XOR EAX,EAX
MOV qword ptr [RSP],RCX
CALL 0x00107190
MOV RCX,qword ptr [RSP]
TEST RCX,RCX
JZ 0x0013e4d0
MOV RAX,R14
AND RAX,R15
CMP R14,RAX
JNZ 0x0013e34f
MOV RAX,R13
AND RAX,R14
CMP R14,RAX
JNZ 0x0013e4a0
MOV RAX,qword ptr [RSP + 0x8]
MOV ESI,R12D
LEA RDI,[RAX + R15*0x1]
CALL 0x0013d4c0
MOV RAX,qword ptr [RSP + 0x8]
MOV ESI,R12D
LEA RDI,[R13 + RAX*0x1]
CALL 0x0013d4c0
CMP R13,R15
MOV EDX,0x5
MOV R13,qword ptr [0x001923a0]
LEA RSI,[0x1822b9]
JZ 0x0013e45c
JC 0x0013e450
MOV RSI,R13
MOV EDI,0xa
CALL 0x00107270
CMP RBP,RBX
JBE 0x0013e3da
MOV RAX,qword ptr [RSP + 0x10]
LEA R9,[RAX + RBX*0x1]
CMP R12D,0x8
JA 0x0013e3f0
CMP R9,RBP
JC 0x0013e2e0
MOV RAX,RBP
XOR R15D,R15D
SUB RAX,RBX
MOV ESI,EAX
SUB EAX,0x1
CMP EAX,0x7
JBE 0x0013e436
CMP R9,RBP
JC 0x0013e2f1
ADD RSP,0x38
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
XOR EDI,EDI
MOV R8D,0x5
MOV RCX,RAX
MOV qword ptr [RSP],R9
LEA RDX,[0x17d230]
LEA RSI,[0x17d280]
CALL 0x00107360
MOV EDX,0x8
MOV ESI,R12D
MOV RDI,RAX
XOR EAX,EAX
CALL 0x00154b80
LEA RAX,[RBX + 0x8]
MOV R9,qword ptr [RSP]
CMP RBP,RAX
JBE 0x0013e3be
MOV ESI,0x8
MOV qword ptr [RSP],R9
MOV RDI,RBX
CALL qword ptr [0x00196f88]
MOV R9,qword ptr [RSP]
MOV R15,RAX
JMP 0x0013e3d1
MOV EDX,0x5
LEA RSI,[0x1822c9]
XOR EDI,EDI
CALL 0x00107130
MOV RSI,R13
MOV RDI,RAX
CALL 0x001071e0
MOV R13,qword ptr [0x001923a0]
JMP 0x0013e394
MOV RDI,R9
CALL 0x001553a0
MOV RCX,RAX
MOV R13,RAX
OR RCX,R15
JMP 0x0013e311
MOV ESI,R12D
MOV RDI,R15
CALL 0x0013d4c0
MOV ESI,R12D
MOV RDI,R13
CALL 0x0013d4c0
LEA RDI,[0x18084d]
CALL 0x001070b0
MOV qword ptr [RSP + 0x8],R13
JMP 0x0013e3a1
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x18083e]
CALL 0x00107130
ADD RSP,0x38
POP RBX
MOV RDI,RAX
POP RBP
XOR EAX,EAX
POP R12
POP R13
POP R14
POP R15
JMP 0x00107190
(translation_unit "void FUN_0013e280(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)\n\n{\n  ulong uVar1;\n  FILE *__stream;\n  uint uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong local_60;\n  \n  if (param_1 < param_2) {\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0013e280(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)\n\n{\n  ulong uVar1;\n  FILE *__stream;\n  uint uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong local_60;\n  \n  if (param_1 < param_2) {\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0013e280(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)" identifier (parameter_list "(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)" ( (parameter_declaration "ulong param_1" type_identifier identifier) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "ulong param_5" type_identifier identifier) ))) (compound_statement "{\n  ulong uVar1;\n  FILE *__stream;\n  uint uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong local_60;\n  \n  if (param_1 < param_2) {\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }\n  return;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong local_60;" type_identifier identifier ;) (if_statement "if (param_1 < param_2) {\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }" if (parenthesized_expression "(param_1 < param_2)" ( (binary_expression "param_1 < param_2" identifier < identifier) )) (compound_statement "{\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }" { (expression_statement "uVar3 = (ulong)param_3;" (assignment_expression "uVar3 = (ulong)param_3" identifier = (cast_expression "(ulong)param_3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));" (assignment_expression "uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f))" identifier = (unary_expression "~(-2L << ((char)param_3 * '\b' - 1U & 0x3f))" ~ (parenthesized_expression "(-2L << ((char)param_3 * '\b' - 1U & 0x3f))" ( (binary_expression "-2L << ((char)param_3 * '\b' - 1U & 0x3f)" number_literal << (parenthesized_expression "((char)param_3 * '\b' - 1U & 0x3f)" ( (binary_expression "(char)param_3 * '\b' - 1U & 0x3f" (binary_expression "(char)param_3 * '\b' - 1U" (binary_expression "(char)param_3 * '\b'" (cast_expression "(char)param_3" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) - number_literal) & number_literal) ))) )))) ;) (expression_statement "local_60 = param_5;" (assignment_expression "local_60 = param_5" identifier = identifier) ;) (do_statement "do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);" do (compound_statement "{\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    }" { (expression_statement "uVar1 = uVar3 + param_1;" (assignment_expression "uVar1 = uVar3 + param_1" identifier = (binary_expression "uVar3 + param_1" identifier + identifier)) ;) (if_statement "if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }" if (parenthesized_expression "(param_3 < 9)" ( (binary_expression "param_3 < 9" identifier < number_literal) )) (compound_statement "{\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }" { (if_statement "if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }" if (parenthesized_expression "(param_2 <= uVar1)" ( (binary_expression "param_2 <= uVar1" identifier <= identifier) )) (compound_statement "{\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }" { (labeled_statement "LAB_0013e3be:\n          uVar5 = 0;" statement_identifier : (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;)) (expression_statement "uVar2 = (int)param_2 - (int)param_1;" (assignment_expression "uVar2 = (int)param_2 - (int)param_1" identifier = (binary_expression "(int)param_2 - (int)param_1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar2 - 1 < 8) goto LAB_0013e436;" if (parenthesized_expression "(uVar2 - 1 < 8)" ( (binary_expression "uVar2 - 1 < 8" (binary_expression "uVar2 - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_0013e436;" goto statement_identifier ;)) (goto_statement "goto LAB_0013e3d1;" goto statement_identifier ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = param_3;" (assignment_expression "uVar2 = param_3" identifier = identifier) ;) (if_statement "if (param_3 - 1 < 8) goto LAB_0013e436;" if (parenthesized_expression "(param_3 - 1 < 8)" ( (binary_expression "param_3 - 1 < 8" (binary_expression "param_3 - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_0013e436;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }" else (compound_statement "{\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }" { (expression_statement "uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);" (assignment_expression "uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5)" identifier = (call_expression "dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5)" identifier (argument_list "(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5)" ( number_literal , (string_literal ""internal error: attempt to read %d byte of data in to %d sized variable"" " string_content ") , (string_literal ""internal error: attempt to read %d bytes of data in to %d sized variable"" " string_content ") , identifier , number_literal )))) ;) (expression_statement "error(uVar4,param_3,8);" (call_expression "error(uVar4,param_3,8)" identifier (argument_list "(uVar4,param_3,8)" ( identifier , identifier , number_literal ))) ;) (if_statement "if (param_2 <= param_1 + 8) goto LAB_0013e3be;" if (parenthesized_expression "(param_2 <= param_1 + 8)" ( (binary_expression "param_2 <= param_1 + 8" identifier <= (binary_expression "param_1 + 8" identifier + number_literal)) )) (goto_statement "goto LAB_0013e3be;" goto statement_identifier ;)) (expression_statement "uVar2 = 8;" (assignment_expression "uVar2 = 8" identifier = number_literal) ;) (labeled_statement "LAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);" statement_identifier : (expression_statement "uVar5 = (*DAT_00196f88)(param_1,uVar2);" (assignment_expression "uVar5 = (*DAT_00196f88)(param_1,uVar2)" identifier = (call_expression "(*DAT_00196f88)(param_1,uVar2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(param_1,uVar2)" ( identifier , identifier )))) ;)) (labeled_statement "LAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }" statement_identifier : (if_statement "if (param_2 <= uVar1) {\n          return;\n        }" if (parenthesized_expression "(param_2 <= uVar1)" ( (binary_expression "param_2 <= uVar1" identifier <= identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) }))) (expression_statement "param_1 = param_1 + uVar3 * 2;" (assignment_expression "param_1 = param_1 + uVar3 * 2" identifier = (binary_expression "param_1 + uVar3 * 2" identifier + (binary_expression "uVar3 * 2" identifier * number_literal))) ;) (expression_statement "uVar2 = (int)param_2 - (int)uVar1;" (assignment_expression "uVar2 = (int)param_2 - (int)uVar1" identifier = (binary_expression "(int)param_2 - (int)uVar1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (param_1 < param_2) {\n        uVar2 = param_3;\n      }" if (parenthesized_expression "(param_1 < param_2)" ( (binary_expression "param_1 < param_2" identifier < identifier) )) (compound_statement "{\n        uVar2 = param_3;\n      }" { (expression_statement "uVar2 = param_3;" (assignment_expression "uVar2 = param_3" identifier = identifier) ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = uVar5;" (assignment_expression "uVar8 = uVar5" identifier = identifier) ;) (if_statement "if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }" { (expression_statement "uVar7 = FUN_001553a0(uVar1);" (assignment_expression "uVar7 = FUN_001553a0(uVar1)" identifier = (call_expression "FUN_001553a0(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) ;) (expression_statement "uVar8 = uVar7 | uVar5;" (assignment_expression "uVar8 = uVar7 | uVar5" identifier = (binary_expression "uVar7 | uVar5" identifier | identifier)) ;) })) (expression_statement "printf("    %8.8lx ",param_4);" (call_expression "printf("    %8.8lx ",param_4)" identifier (argument_list "("    %8.8lx ",param_4)" ( (string_literal ""    %8.8lx "" " string_content ") , identifier ))) ;) (if_statement "if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }" { (expression_statement "pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"<End of list>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<End of list>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<End of list>\n",5)" identifier (argument_list "(0,"<End of list>\n",5)" ( number_literal , (string_literal ""<End of list>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" if (parenthesized_expression "((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9)))" ( (binary_expression "(uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))" (parenthesized_expression "(uVar9 == (uVar9 & uVar5))" ( (binary_expression "uVar9 == (uVar9 & uVar5)" identifier == (parenthesized_expression "(uVar9 & uVar5)" ( (binary_expression "uVar9 & uVar5" identifier & identifier) ))) )) && (parenthesized_expression "(uVar9 != (uVar7 & uVar9))" ( (binary_expression "uVar9 != (uVar7 & uVar9)" identifier != (parenthesized_expression "(uVar7 & uVar9)" ( (binary_expression "uVar7 & uVar9" identifier & identifier) ))) ))) )) (compound_statement "{\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }" { (expression_statement "FUN_0013d4c0(uVar5,param_3);" (call_expression "FUN_0013d4c0(uVar5,param_3)" identifier (argument_list "(uVar5,param_3)" ( identifier , identifier ))) ;) (expression_statement "FUN_0013d4c0(uVar7,param_3);" (call_expression "FUN_0013d4c0(uVar7,param_3)" identifier (argument_list "(uVar7,param_3)" ( identifier , identifier ))) ;) (expression_statement "puts("(base address)");" (call_expression "puts("(base address)")" identifier (argument_list "("(base address)")" ( (string_literal ""(base address)"" " string_content ") ))) ;) (expression_statement "local_60 = uVar7;" (assignment_expression "local_60 = uVar7" identifier = identifier) ;) }) (else_clause "else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" else (compound_statement "{\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" { (expression_statement "FUN_0013d4c0(local_60 + uVar5,param_3);" (call_expression "FUN_0013d4c0(local_60 + uVar5,param_3)" identifier (argument_list "(local_60 + uVar5,param_3)" ( (binary_expression "local_60 + uVar5" identifier + identifier) , identifier ))) ;) (expression_statement "FUN_0013d4c0(uVar7 + local_60,param_3);" (call_expression "FUN_0013d4c0(uVar7 + local_60,param_3)" identifier (argument_list "(uVar7 + local_60,param_3)" ( (binary_expression "uVar7 + local_60" identifier + identifier) , identifier ))) ;) (expression_statement "__stream = stdout;" (assignment_expression "__stream = stdout" identifier = identifier) ;) (expression_statement "pcVar6 = " (start == end)";" (assignment_expression "pcVar6 = " (start == end)"" identifier = (string_literal "" (start == end)"" " string_content ")) ;) (if_statement "if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" if (parenthesized_expression "(uVar7 == uVar5)" ( (binary_expression "uVar7 == uVar5" identifier == identifier) )) (compound_statement "{\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }" { (labeled_statement "LAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);" statement_identifier : (expression_statement "pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar6 + 1,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar6 + 1,5)" identifier (argument_list "(0,pcVar6 + 1,5)" ( number_literal , (binary_expression "pcVar6 + 1" identifier + number_literal) , number_literal ))))) ;)) (expression_statement "fputs(pcVar6,__stream);" (call_expression "fputs(pcVar6,__stream)" identifier (argument_list "(pcVar6,__stream)" ( identifier , identifier ))) ;) }) (else_clause "else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" else (if_statement "if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" if (parenthesized_expression "(uVar7 < uVar5)" ( (binary_expression "uVar7 < uVar5" identifier < identifier) )) (compound_statement "{\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" { (expression_statement "pcVar6 = " (start > end)";" (assignment_expression "pcVar6 = " (start > end)"" identifier = (string_literal "" (start > end)"" " string_content ")) ;) (goto_statement "goto LAB_0013e45c;" goto statement_identifier ;) })))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) }))) }) while (parenthesized_expression "(param_1 < param_2)" ( (binary_expression "param_1 < param_2" identifier < identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void display_debug_ranges_list\n               (uchar *start,uchar *finish,uint pointer_size,ulong offset,ulong base_address)\n\n{\n  uchar *field;\n  ulong uVar1;\n  FILE *__stream;\n  uint uVar2;\n  elf_vma value;\n  char *pcVar3;\n  elf_vma value_00;\n  ulong uVar4;\n  ulong uVar5;\n  ulong local_60;\n  \n  if (start < finish) {\n    uVar1 = (ulong)pointer_size;\n    uVar5 = ~(-2L << ((char)pointer_size * '\b' - 1U & 0x3f));\n    local_60 = base_address;\n    do {\n      field = start + uVar1;\n      if (pointer_size < 9) {\n        if (finish <= field) {\nLAB_0013e3be:\n          value = 0;\n          uVar2 = (int)finish - (int)start;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        value = 0;\n        uVar2 = pointer_size;\n        if (pointer_size - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5);\n        error(pcVar3,(ulong)pointer_size,8);\n        if (finish <= start + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        value = (*byte_get)(start,uVar2);\nLAB_0013e3d1:\n        if (finish <= field) {\n          return;\n        }\n      }\n      start = start + uVar1 * 2;\n      uVar2 = (int)finish - (int)field;\n      if (start < finish) {\n        uVar2 = pointer_size;\n      }\n      value_00 = 0;\n      uVar4 = value;\n      if (uVar2 != 0) {\n        value_00 = byte_get_signed(field,uVar2);\n        uVar4 = value_00 | value;\n      }\n      printf("    %8.8lx ",offset);\n      if (uVar4 == 0) {\n        pcVar3 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar3);\n        return;\n      }\n      if ((uVar5 == (uVar5 & value)) && (uVar5 != (value_00 & uVar5))) {\n        print_dwarf_vma(value,pointer_size);\n        print_dwarf_vma(value_00,pointer_size);\n        puts("(base address)");\n        local_60 = value_00;\n      }\n      else {\n        print_dwarf_vma(local_60 + value,pointer_size);\n        print_dwarf_vma(value_00 + local_60,pointer_size);\n        __stream = stdout;\n        pcVar3 = " (start == end)";\n        if (value_00 == value) {\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }\n        else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (start < finish);\n  }\n  return;\n}\n\n" (function_definition "void display_debug_ranges_list\n               (uchar *start,uchar *finish,uint pointer_size,ulong offset,ulong base_address)\n\n{\n  uchar *field;\n  ulong uVar1;\n  FILE *__stream;\n  uint uVar2;\n  elf_vma value;\n  char *pcVar3;\n  elf_vma value_00;\n  ulong uVar4;\n  ulong uVar5;\n  ulong local_60;\n  \n  if (start < finish) {\n    uVar1 = (ulong)pointer_size;\n    uVar5 = ~(-2L << ((char)pointer_size * '\b' - 1U & 0x3f));\n    local_60 = base_address;\n    do {\n      field = start + uVar1;\n      if (pointer_size < 9) {\n        if (finish <= field) {\nLAB_0013e3be:\n          value = 0;\n          uVar2 = (int)finish - (int)start;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        value = 0;\n        uVar2 = pointer_size;\n        if (pointer_size - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5);\n        error(pcVar3,(ulong)pointer_size,8);\n        if (finish <= start + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        value = (*byte_get)(start,uVar2);\nLAB_0013e3d1:\n        if (finish <= field) {\n          return;\n        }\n      }\n      start = start + uVar1 * 2;\n      uVar2 = (int)finish - (int)field;\n      if (start < finish) {\n        uVar2 = pointer_size;\n      }\n      value_00 = 0;\n      uVar4 = value;\n      if (uVar2 != 0) {\n        value_00 = byte_get_signed(field,uVar2);\n        uVar4 = value_00 | value;\n      }\n      printf("    %8.8lx ",offset);\n      if (uVar4 == 0) {\n        pcVar3 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar3);\n        return;\n      }\n      if ((uVar5 == (uVar5 & value)) && (uVar5 != (value_00 & uVar5))) {\n        print_dwarf_vma(value,pointer_size);\n        print_dwarf_vma(value_00,pointer_size);\n        puts("(base address)");\n        local_60 = value_00;\n      }\n      else {\n        print_dwarf_vma(local_60 + value,pointer_size);\n        print_dwarf_vma(value_00 + local_60,pointer_size);\n        __stream = stdout;\n        pcVar3 = " (start == end)";\n        if (value_00 == value) {\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }\n        else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (start < finish);\n  }\n  return;\n}" primitive_type (function_declarator "display_debug_ranges_list\n               (uchar *start,uchar *finish,uint pointer_size,ulong offset,ulong base_address)" identifier (parameter_list "(uchar *start,uchar *finish,uint pointer_size,ulong offset,ulong base_address)" ( (parameter_declaration "uchar *start" type_identifier (pointer_declarator "*start" * identifier)) , (parameter_declaration "uchar *finish" type_identifier (pointer_declarator "*finish" * identifier)) , (parameter_declaration "uint pointer_size" type_identifier identifier) , (parameter_declaration "ulong offset" type_identifier identifier) , (parameter_declaration "ulong base_address" type_identifier identifier) ))) (compound_statement "{\n  uchar *field;\n  ulong uVar1;\n  FILE *__stream;\n  uint uVar2;\n  elf_vma value;\n  char *pcVar3;\n  elf_vma value_00;\n  ulong uVar4;\n  ulong uVar5;\n  ulong local_60;\n  \n  if (start < finish) {\n    uVar1 = (ulong)pointer_size;\n    uVar5 = ~(-2L << ((char)pointer_size * '\b' - 1U & 0x3f));\n    local_60 = base_address;\n    do {\n      field = start + uVar1;\n      if (pointer_size < 9) {\n        if (finish <= field) {\nLAB_0013e3be:\n          value = 0;\n          uVar2 = (int)finish - (int)start;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        value = 0;\n        uVar2 = pointer_size;\n        if (pointer_size - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5);\n        error(pcVar3,(ulong)pointer_size,8);\n        if (finish <= start + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        value = (*byte_get)(start,uVar2);\nLAB_0013e3d1:\n        if (finish <= field) {\n          return;\n        }\n      }\n      start = start + uVar1 * 2;\n      uVar2 = (int)finish - (int)field;\n      if (start < finish) {\n        uVar2 = pointer_size;\n      }\n      value_00 = 0;\n      uVar4 = value;\n      if (uVar2 != 0) {\n        value_00 = byte_get_signed(field,uVar2);\n        uVar4 = value_00 | value;\n      }\n      printf("    %8.8lx ",offset);\n      if (uVar4 == 0) {\n        pcVar3 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar3);\n        return;\n      }\n      if ((uVar5 == (uVar5 & value)) && (uVar5 != (value_00 & uVar5))) {\n        print_dwarf_vma(value,pointer_size);\n        print_dwarf_vma(value_00,pointer_size);\n        puts("(base address)");\n        local_60 = value_00;\n      }\n      else {\n        print_dwarf_vma(local_60 + value,pointer_size);\n        print_dwarf_vma(value_00 + local_60,pointer_size);\n        __stream = stdout;\n        pcVar3 = " (start == end)";\n        if (value_00 == value) {\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }\n        else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (start < finish);\n  }\n  return;\n}" { (declaration "uchar *field;" type_identifier (pointer_declarator "*field" * identifier) ;) (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "elf_vma value;" type_identifier identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "elf_vma value_00;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong local_60;" type_identifier identifier ;) (if_statement "if (start < finish) {\n    uVar1 = (ulong)pointer_size;\n    uVar5 = ~(-2L << ((char)pointer_size * '\b' - 1U & 0x3f));\n    local_60 = base_address;\n    do {\n      field = start + uVar1;\n      if (pointer_size < 9) {\n        if (finish <= field) {\nLAB_0013e3be:\n          value = 0;\n          uVar2 = (int)finish - (int)start;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        value = 0;\n        uVar2 = pointer_size;\n        if (pointer_size - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5);\n        error(pcVar3,(ulong)pointer_size,8);\n        if (finish <= start + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        value = (*byte_get)(start,uVar2);\nLAB_0013e3d1:\n        if (finish <= field) {\n          return;\n        }\n      }\n      start = start + uVar1 * 2;\n      uVar2 = (int)finish - (int)field;\n      if (start < finish) {\n        uVar2 = pointer_size;\n      }\n      value_00 = 0;\n      uVar4 = value;\n      if (uVar2 != 0) {\n        value_00 = byte_get_signed(field,uVar2);\n        uVar4 = value_00 | value;\n      }\n      printf("    %8.8lx ",offset);\n      if (uVar4 == 0) {\n        pcVar3 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar3);\n        return;\n      }\n      if ((uVar5 == (uVar5 & value)) && (uVar5 != (value_00 & uVar5))) {\n        print_dwarf_vma(value,pointer_size);\n        print_dwarf_vma(value_00,pointer_size);\n        puts("(base address)");\n        local_60 = value_00;\n      }\n      else {\n        print_dwarf_vma(local_60 + value,pointer_size);\n        print_dwarf_vma(value_00 + local_60,pointer_size);\n        __stream = stdout;\n        pcVar3 = " (start == end)";\n        if (value_00 == value) {\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }\n        else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (start < finish);\n  }" if (parenthesized_expression "(start < finish)" ( (binary_expression "start < finish" identifier < identifier) )) (compound_statement "{\n    uVar1 = (ulong)pointer_size;\n    uVar5 = ~(-2L << ((char)pointer_size * '\b' - 1U & 0x3f));\n    local_60 = base_address;\n    do {\n      field = start + uVar1;\n      if (pointer_size < 9) {\n        if (finish <= field) {\nLAB_0013e3be:\n          value = 0;\n          uVar2 = (int)finish - (int)start;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        value = 0;\n        uVar2 = pointer_size;\n        if (pointer_size - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5);\n        error(pcVar3,(ulong)pointer_size,8);\n        if (finish <= start + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        value = (*byte_get)(start,uVar2);\nLAB_0013e3d1:\n        if (finish <= field) {\n          return;\n        }\n      }\n      start = start + uVar1 * 2;\n      uVar2 = (int)finish - (int)field;\n      if (start < finish) {\n        uVar2 = pointer_size;\n      }\n      value_00 = 0;\n      uVar4 = value;\n      if (uVar2 != 0) {\n        value_00 = byte_get_signed(field,uVar2);\n        uVar4 = value_00 | value;\n      }\n      printf("    %8.8lx ",offset);\n      if (uVar4 == 0) {\n        pcVar3 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar3);\n        return;\n      }\n      if ((uVar5 == (uVar5 & value)) && (uVar5 != (value_00 & uVar5))) {\n        print_dwarf_vma(value,pointer_size);\n        print_dwarf_vma(value_00,pointer_size);\n        puts("(base address)");\n        local_60 = value_00;\n      }\n      else {\n        print_dwarf_vma(local_60 + value,pointer_size);\n        print_dwarf_vma(value_00 + local_60,pointer_size);\n        __stream = stdout;\n        pcVar3 = " (start == end)";\n        if (value_00 == value) {\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }\n        else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (start < finish);\n  }" { (expression_statement "uVar1 = (ulong)pointer_size;" (assignment_expression "uVar1 = (ulong)pointer_size" identifier = (cast_expression "(ulong)pointer_size" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar5 = ~(-2L << ((char)pointer_size * '\b' - 1U & 0x3f));" (assignment_expression "uVar5 = ~(-2L << ((char)pointer_size * '\b' - 1U & 0x3f))" identifier = (unary_expression "~(-2L << ((char)pointer_size * '\b' - 1U & 0x3f))" ~ (parenthesized_expression "(-2L << ((char)pointer_size * '\b' - 1U & 0x3f))" ( (binary_expression "-2L << ((char)pointer_size * '\b' - 1U & 0x3f)" number_literal << (parenthesized_expression "((char)pointer_size * '\b' - 1U & 0x3f)" ( (binary_expression "(char)pointer_size * '\b' - 1U & 0x3f" (binary_expression "(char)pointer_size * '\b' - 1U" (binary_expression "(char)pointer_size * '\b'" (cast_expression "(char)pointer_size" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) - number_literal) & number_literal) ))) )))) ;) (expression_statement "local_60 = base_address;" (assignment_expression "local_60 = base_address" identifier = identifier) ;) (do_statement "do {\n      field = start + uVar1;\n      if (pointer_size < 9) {\n        if (finish <= field) {\nLAB_0013e3be:\n          value = 0;\n          uVar2 = (int)finish - (int)start;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        value = 0;\n        uVar2 = pointer_size;\n        if (pointer_size - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5);\n        error(pcVar3,(ulong)pointer_size,8);\n        if (finish <= start + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        value = (*byte_get)(start,uVar2);\nLAB_0013e3d1:\n        if (finish <= field) {\n          return;\n        }\n      }\n      start = start + uVar1 * 2;\n      uVar2 = (int)finish - (int)field;\n      if (start < finish) {\n        uVar2 = pointer_size;\n      }\n      value_00 = 0;\n      uVar4 = value;\n      if (uVar2 != 0) {\n        value_00 = byte_get_signed(field,uVar2);\n        uVar4 = value_00 | value;\n      }\n      printf("    %8.8lx ",offset);\n      if (uVar4 == 0) {\n        pcVar3 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar3);\n        return;\n      }\n      if ((uVar5 == (uVar5 & value)) && (uVar5 != (value_00 & uVar5))) {\n        print_dwarf_vma(value,pointer_size);\n        print_dwarf_vma(value_00,pointer_size);\n        puts("(base address)");\n        local_60 = value_00;\n      }\n      else {\n        print_dwarf_vma(local_60 + value,pointer_size);\n        print_dwarf_vma(value_00 + local_60,pointer_size);\n        __stream = stdout;\n        pcVar3 = " (start == end)";\n        if (value_00 == value) {\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }\n        else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (start < finish);" do (compound_statement "{\n      field = start + uVar1;\n      if (pointer_size < 9) {\n        if (finish <= field) {\nLAB_0013e3be:\n          value = 0;\n          uVar2 = (int)finish - (int)start;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        value = 0;\n        uVar2 = pointer_size;\n        if (pointer_size - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5);\n        error(pcVar3,(ulong)pointer_size,8);\n        if (finish <= start + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        value = (*byte_get)(start,uVar2);\nLAB_0013e3d1:\n        if (finish <= field) {\n          return;\n        }\n      }\n      start = start + uVar1 * 2;\n      uVar2 = (int)finish - (int)field;\n      if (start < finish) {\n        uVar2 = pointer_size;\n      }\n      value_00 = 0;\n      uVar4 = value;\n      if (uVar2 != 0) {\n        value_00 = byte_get_signed(field,uVar2);\n        uVar4 = value_00 | value;\n      }\n      printf("    %8.8lx ",offset);\n      if (uVar4 == 0) {\n        pcVar3 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar3);\n        return;\n      }\n      if ((uVar5 == (uVar5 & value)) && (uVar5 != (value_00 & uVar5))) {\n        print_dwarf_vma(value,pointer_size);\n        print_dwarf_vma(value_00,pointer_size);\n        puts("(base address)");\n        local_60 = value_00;\n      }\n      else {\n        print_dwarf_vma(local_60 + value,pointer_size);\n        print_dwarf_vma(value_00 + local_60,pointer_size);\n        __stream = stdout;\n        pcVar3 = " (start == end)";\n        if (value_00 == value) {\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }\n        else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    }" { (expression_statement "field = start + uVar1;" (assignment_expression "field = start + uVar1" identifier = (binary_expression "start + uVar1" identifier + identifier)) ;) (if_statement "if (pointer_size < 9) {\n        if (finish <= field) {\nLAB_0013e3be:\n          value = 0;\n          uVar2 = (int)finish - (int)start;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        value = 0;\n        uVar2 = pointer_size;\n        if (pointer_size - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5);\n        error(pcVar3,(ulong)pointer_size,8);\n        if (finish <= start + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        value = (*byte_get)(start,uVar2);\nLAB_0013e3d1:\n        if (finish <= field) {\n          return;\n        }\n      }" if (parenthesized_expression "(pointer_size < 9)" ( (binary_expression "pointer_size < 9" identifier < number_literal) )) (compound_statement "{\n        if (finish <= field) {\nLAB_0013e3be:\n          value = 0;\n          uVar2 = (int)finish - (int)start;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        value = 0;\n        uVar2 = pointer_size;\n        if (pointer_size - 1 < 8) goto LAB_0013e436;\n      }" { (if_statement "if (finish <= field) {\nLAB_0013e3be:\n          value = 0;\n          uVar2 = (int)finish - (int)start;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }" if (parenthesized_expression "(finish <= field)" ( (binary_expression "finish <= field" identifier <= identifier) )) (compound_statement "{\nLAB_0013e3be:\n          value = 0;\n          uVar2 = (int)finish - (int)start;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }" { (labeled_statement "LAB_0013e3be:\n          value = 0;" statement_identifier : (expression_statement "value = 0;" (assignment_expression "value = 0" identifier = number_literal) ;)) (expression_statement "uVar2 = (int)finish - (int)start;" (assignment_expression "uVar2 = (int)finish - (int)start" identifier = (binary_expression "(int)finish - (int)start" (cast_expression "(int)finish" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)start" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar2 - 1 < 8) goto LAB_0013e436;" if (parenthesized_expression "(uVar2 - 1 < 8)" ( (binary_expression "uVar2 - 1 < 8" (binary_expression "uVar2 - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_0013e436;" goto statement_identifier ;)) (goto_statement "goto LAB_0013e3d1;" goto statement_identifier ;) })) (expression_statement "value = 0;" (assignment_expression "value = 0" identifier = number_literal) ;) (expression_statement "uVar2 = pointer_size;" (assignment_expression "uVar2 = pointer_size" identifier = identifier) ;) (if_statement "if (pointer_size - 1 < 8) goto LAB_0013e436;" if (parenthesized_expression "(pointer_size - 1 < 8)" ( (binary_expression "pointer_size - 1 < 8" (binary_expression "pointer_size - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_0013e436;" goto statement_identifier ;)) }) (else_clause "else {\n        pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5);\n        error(pcVar3,(ulong)pointer_size,8);\n        if (finish <= start + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        value = (*byte_get)(start,uVar2);\nLAB_0013e3d1:\n        if (finish <= field) {\n          return;\n        }\n      }" else (compound_statement "{\n        pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5);\n        error(pcVar3,(ulong)pointer_size,8);\n        if (finish <= start + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        value = (*byte_get)(start,uVar2);\nLAB_0013e3d1:\n        if (finish <= field) {\n          return;\n        }\n      }" { (expression_statement "pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5);" (assignment_expression "pcVar3 = (char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5)" identifier = (cast_expression "(char *)dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcngettext(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5)" identifier (argument_list "(0,\n                                    "internal error: attempt to read %d byte of data in to %d sized variable"\n                                    ,\n                                    "internal error: attempt to read %d bytes of data in to %d sized variable"\n                                    ,uVar1,5)" ( number_literal , (string_literal ""internal error: attempt to read %d byte of data in to %d sized variable"" " string_content ") , (string_literal ""internal error: attempt to read %d bytes of data in to %d sized variable"" " string_content ") , identifier , number_literal ))))) ;) (expression_statement "error(pcVar3,(ulong)pointer_size,8);" (call_expression "error(pcVar3,(ulong)pointer_size,8)" identifier (argument_list "(pcVar3,(ulong)pointer_size,8)" ( identifier , (cast_expression "(ulong)pointer_size" ( (type_descriptor "ulong" type_identifier) ) identifier) , number_literal ))) ;) (if_statement "if (finish <= start + 8) goto LAB_0013e3be;" if (parenthesized_expression "(finish <= start + 8)" ( (binary_expression "finish <= start + 8" identifier <= (binary_expression "start + 8" identifier + number_literal)) )) (goto_statement "goto LAB_0013e3be;" goto statement_identifier ;)) (expression_statement "uVar2 = 8;" (assignment_expression "uVar2 = 8" identifier = number_literal) ;) (labeled_statement "LAB_0013e436:\n        value = (*byte_get)(start,uVar2);" statement_identifier : (expression_statement "value = (*byte_get)(start,uVar2);" (assignment_expression "value = (*byte_get)(start,uVar2)" identifier = (call_expression "(*byte_get)(start,uVar2)" (parenthesized_expression "(*byte_get)" ( (pointer_expression "*byte_get" * identifier) )) (argument_list "(start,uVar2)" ( identifier , identifier )))) ;)) (labeled_statement "LAB_0013e3d1:\n        if (finish <= field) {\n          return;\n        }" statement_identifier : (if_statement "if (finish <= field) {\n          return;\n        }" if (parenthesized_expression "(finish <= field)" ( (binary_expression "finish <= field" identifier <= identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) }))) (expression_statement "start = start + uVar1 * 2;" (assignment_expression "start = start + uVar1 * 2" identifier = (binary_expression "start + uVar1 * 2" identifier + (binary_expression "uVar1 * 2" identifier * number_literal))) ;) (expression_statement "uVar2 = (int)finish - (int)field;" (assignment_expression "uVar2 = (int)finish - (int)field" identifier = (binary_expression "(int)finish - (int)field" (cast_expression "(int)finish" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)field" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (start < finish) {\n        uVar2 = pointer_size;\n      }" if (parenthesized_expression "(start < finish)" ( (binary_expression "start < finish" identifier < identifier) )) (compound_statement "{\n        uVar2 = pointer_size;\n      }" { (expression_statement "uVar2 = pointer_size;" (assignment_expression "uVar2 = pointer_size" identifier = identifier) ;) })) (expression_statement "value_00 = 0;" (assignment_expression "value_00 = 0" identifier = number_literal) ;) (expression_statement "uVar4 = value;" (assignment_expression "uVar4 = value" identifier = identifier) ;) (if_statement "if (uVar2 != 0) {\n        value_00 = byte_get_signed(field,uVar2);\n        uVar4 = value_00 | value;\n      }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        value_00 = byte_get_signed(field,uVar2);\n        uVar4 = value_00 | value;\n      }" { (expression_statement "value_00 = byte_get_signed(field,uVar2);" (assignment_expression "value_00 = byte_get_signed(field,uVar2)" identifier = (call_expression "byte_get_signed(field,uVar2)" identifier (argument_list "(field,uVar2)" ( identifier , identifier )))) ;) (expression_statement "uVar4 = value_00 | value;" (assignment_expression "uVar4 = value_00 | value" identifier = (binary_expression "value_00 | value" identifier | identifier)) ;) })) (expression_statement "printf("    %8.8lx ",offset);" (call_expression "printf("    %8.8lx ",offset)" identifier (argument_list "("    %8.8lx ",offset)" ( (string_literal ""    %8.8lx "" " string_content ") , identifier ))) ;) (if_statement "if (uVar4 == 0) {\n        pcVar3 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar3);\n        return;\n      }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar3 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar3);\n        return;\n      }" { (expression_statement "pcVar3 = (char *)dcgettext(0,"<End of list>\n",5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,"<End of list>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<End of list>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<End of list>\n",5)" identifier (argument_list "(0,"<End of list>\n",5)" ( number_literal , (string_literal ""<End of list>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar3);" (call_expression "printf(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((uVar5 == (uVar5 & value)) && (uVar5 != (value_00 & uVar5))) {\n        print_dwarf_vma(value,pointer_size);\n        print_dwarf_vma(value_00,pointer_size);\n        puts("(base address)");\n        local_60 = value_00;\n      }\n      else {\n        print_dwarf_vma(local_60 + value,pointer_size);\n        print_dwarf_vma(value_00 + local_60,pointer_size);\n        __stream = stdout;\n        pcVar3 = " (start == end)";\n        if (value_00 == value) {\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }\n        else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" if (parenthesized_expression "((uVar5 == (uVar5 & value)) && (uVar5 != (value_00 & uVar5)))" ( (binary_expression "(uVar5 == (uVar5 & value)) && (uVar5 != (value_00 & uVar5))" (parenthesized_expression "(uVar5 == (uVar5 & value))" ( (binary_expression "uVar5 == (uVar5 & value)" identifier == (parenthesized_expression "(uVar5 & value)" ( (binary_expression "uVar5 & value" identifier & identifier) ))) )) && (parenthesized_expression "(uVar5 != (value_00 & uVar5))" ( (binary_expression "uVar5 != (value_00 & uVar5)" identifier != (parenthesized_expression "(value_00 & uVar5)" ( (binary_expression "value_00 & uVar5" identifier & identifier) ))) ))) )) (compound_statement "{\n        print_dwarf_vma(value,pointer_size);\n        print_dwarf_vma(value_00,pointer_size);\n        puts("(base address)");\n        local_60 = value_00;\n      }" { (expression_statement "print_dwarf_vma(value,pointer_size);" (call_expression "print_dwarf_vma(value,pointer_size)" identifier (argument_list "(value,pointer_size)" ( identifier , identifier ))) ;) (expression_statement "print_dwarf_vma(value_00,pointer_size);" (call_expression "print_dwarf_vma(value_00,pointer_size)" identifier (argument_list "(value_00,pointer_size)" ( identifier , identifier ))) ;) (expression_statement "puts("(base address)");" (call_expression "puts("(base address)")" identifier (argument_list "("(base address)")" ( (string_literal ""(base address)"" " string_content ") ))) ;) (expression_statement "local_60 = value_00;" (assignment_expression "local_60 = value_00" identifier = identifier) ;) }) (else_clause "else {\n        print_dwarf_vma(local_60 + value,pointer_size);\n        print_dwarf_vma(value_00 + local_60,pointer_size);\n        __stream = stdout;\n        pcVar3 = " (start == end)";\n        if (value_00 == value) {\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }\n        else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" else (compound_statement "{\n        print_dwarf_vma(local_60 + value,pointer_size);\n        print_dwarf_vma(value_00 + local_60,pointer_size);\n        __stream = stdout;\n        pcVar3 = " (start == end)";\n        if (value_00 == value) {\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }\n        else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" { (expression_statement "print_dwarf_vma(local_60 + value,pointer_size);" (call_expression "print_dwarf_vma(local_60 + value,pointer_size)" identifier (argument_list "(local_60 + value,pointer_size)" ( (binary_expression "local_60 + value" identifier + identifier) , identifier ))) ;) (expression_statement "print_dwarf_vma(value_00 + local_60,pointer_size);" (call_expression "print_dwarf_vma(value_00 + local_60,pointer_size)" identifier (argument_list "(value_00 + local_60,pointer_size)" ( (binary_expression "value_00 + local_60" identifier + identifier) , identifier ))) ;) (expression_statement "__stream = stdout;" (assignment_expression "__stream = stdout" identifier = identifier) ;) (expression_statement "pcVar3 = " (start == end)";" (assignment_expression "pcVar3 = " (start == end)"" identifier = (string_literal "" (start == end)"" " string_content ")) ;) (if_statement "if (value_00 == value) {\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }\n        else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }" if (parenthesized_expression "(value_00 == value)" ( (binary_expression "value_00 == value" identifier == identifier) )) (compound_statement "{\nLAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);\n          fputs(pcVar3,__stream);\n        }" { (labeled_statement "LAB_0013e45c:\n          pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);" statement_identifier : (expression_statement "pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,pcVar3 + 1,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar3 + 1,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar3 + 1,5)" identifier (argument_list "(0,pcVar3 + 1,5)" ( number_literal , (binary_expression "pcVar3 + 1" identifier + number_literal) , number_literal ))))) ;)) (expression_statement "fputs(pcVar3,__stream);" (call_expression "fputs(pcVar3,__stream)" identifier (argument_list "(pcVar3,__stream)" ( identifier , identifier ))) ;) }) (else_clause "else if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }" else (if_statement "if (value_00 < value) {\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }" if (parenthesized_expression "(value_00 < value)" ( (binary_expression "value_00 < value" identifier < identifier) )) (compound_statement "{\n          pcVar3 = " (start > end)";\n          goto LAB_0013e45c;\n        }" { (expression_statement "pcVar3 = " (start > end)";" (assignment_expression "pcVar3 = " (start > end)"" identifier = (string_literal "" (start > end)"" " string_content ")) ;) (goto_statement "goto LAB_0013e45c;" goto statement_identifier ;) })))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) }))) }) while (parenthesized_expression "(start < finish)" ( (binary_expression "start < finish" identifier < identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0013e280(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)\n\n{\n  ulong uVar1;\n  FILE *__stream;\n  uint uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong local_60;\n  \n  if (param_1 < param_2) {\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0013e280(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)\n\n{\n  ulong uVar1;\n  FILE *__stream;\n  uint uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong local_60;\n  \n  if (param_1 < param_2) {\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0013e280(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)" identifier (parameter_list "(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)" ( (parameter_declaration "ulong param_1" type_identifier identifier) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined8 param_4" type_identifier identifier) , (parameter_declaration "ulong param_5" type_identifier identifier) ))) (compound_statement "{\n  ulong uVar1;\n  FILE *__stream;\n  uint uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong local_60;\n  \n  if (param_1 < param_2) {\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }\n  return;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "FILE *__stream;" type_identifier (pointer_declarator "*__stream" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong local_60;" type_identifier identifier ;) (if_statement "if (param_1 < param_2) {\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }" if (parenthesized_expression "(param_1 < param_2)" ( (binary_expression "param_1 < param_2" identifier < identifier) )) (compound_statement "{\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }" { (expression_statement "uVar3 = (ulong)param_3;" (assignment_expression "uVar3 = (ulong)param_3" identifier = (cast_expression "(ulong)param_3" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));" (assignment_expression "uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f))" identifier = (unary_expression "~(-2L << ((char)param_3 * '\b' - 1U & 0x3f))" ~ (parenthesized_expression "(-2L << ((char)param_3 * '\b' - 1U & 0x3f))" ( (binary_expression "-2L << ((char)param_3 * '\b' - 1U & 0x3f)" number_literal << (parenthesized_expression "((char)param_3 * '\b' - 1U & 0x3f)" ( (binary_expression "(char)param_3 * '\b' - 1U & 0x3f" (binary_expression "(char)param_3 * '\b' - 1U" (binary_expression "(char)param_3 * '\b'" (cast_expression "(char)param_3" ( (type_descriptor "char" primitive_type) ) identifier) * (char_literal "'\b'" ' escape_sequence ')) - number_literal) & number_literal) ))) )))) ;) (expression_statement "local_60 = param_5;" (assignment_expression "local_60 = param_5" identifier = identifier) ;) (do_statement "do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);" do (compound_statement "{\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    }" { (expression_statement "uVar1 = uVar3 + param_1;" (assignment_expression "uVar1 = uVar3 + param_1" identifier = (binary_expression "uVar3 + param_1" identifier + identifier)) ;) (if_statement "if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }" if (parenthesized_expression "(param_3 < 9)" ( (binary_expression "param_3 < 9" identifier < number_literal) )) (compound_statement "{\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }" { (if_statement "if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }" if (parenthesized_expression "(param_2 <= uVar1)" ( (binary_expression "param_2 <= uVar1" identifier <= identifier) )) (compound_statement "{\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }" { (labeled_statement "LAB_0013e3be:\n          uVar5 = 0;" statement_identifier : (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;)) (expression_statement "uVar2 = (int)param_2 - (int)param_1;" (assignment_expression "uVar2 = (int)param_2 - (int)param_1" identifier = (binary_expression "(int)param_2 - (int)param_1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (uVar2 - 1 < 8) goto LAB_0013e436;" if (parenthesized_expression "(uVar2 - 1 < 8)" ( (binary_expression "uVar2 - 1 < 8" (binary_expression "uVar2 - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_0013e436;" goto statement_identifier ;)) (goto_statement "goto LAB_0013e3d1;" goto statement_identifier ;) })) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = param_3;" (assignment_expression "uVar2 = param_3" identifier = identifier) ;) (if_statement "if (param_3 - 1 < 8) goto LAB_0013e436;" if (parenthesized_expression "(param_3 - 1 < 8)" ( (binary_expression "param_3 - 1 < 8" (binary_expression "param_3 - 1" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_0013e436;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }" else (compound_statement "{\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }" { (expression_statement "uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);" (assignment_expression "uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5)" identifier = (call_expression "dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5)" identifier (argument_list "(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5)" ( number_literal , (string_literal ""internal error: attempt to read %d byte of data in to %d sized variable"" " string_content ") , (string_literal ""internal error: attempt to read %d bytes of data in to %d sized variable"" " string_content ") , identifier , number_literal )))) ;) (expression_statement "error(uVar4,param_3,8);" (call_expression "error(uVar4,param_3,8)" identifier (argument_list "(uVar4,param_3,8)" ( identifier , identifier , number_literal ))) ;) (if_statement "if (param_2 <= param_1 + 8) goto LAB_0013e3be;" if (parenthesized_expression "(param_2 <= param_1 + 8)" ( (binary_expression "param_2 <= param_1 + 8" identifier <= (binary_expression "param_1 + 8" identifier + number_literal)) )) (goto_statement "goto LAB_0013e3be;" goto statement_identifier ;)) (expression_statement "uVar2 = 8;" (assignment_expression "uVar2 = 8" identifier = number_literal) ;) (labeled_statement "LAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);" statement_identifier : (expression_statement "uVar5 = (*DAT_00196f88)(param_1,uVar2);" (assignment_expression "uVar5 = (*DAT_00196f88)(param_1,uVar2)" identifier = (call_expression "(*DAT_00196f88)(param_1,uVar2)" (parenthesized_expression "(*DAT_00196f88)" ( (pointer_expression "*DAT_00196f88" * identifier) )) (argument_list "(param_1,uVar2)" ( identifier , identifier )))) ;)) (labeled_statement "LAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }" statement_identifier : (if_statement "if (param_2 <= uVar1) {\n          return;\n        }" if (parenthesized_expression "(param_2 <= uVar1)" ( (binary_expression "param_2 <= uVar1" identifier <= identifier) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) }))) }))) (expression_statement "param_1 = param_1 + uVar3 * 2;" (assignment_expression "param_1 = param_1 + uVar3 * 2" identifier = (binary_expression "param_1 + uVar3 * 2" identifier + (binary_expression "uVar3 * 2" identifier * number_literal))) ;) (expression_statement "uVar2 = (int)param_2 - (int)uVar1;" (assignment_expression "uVar2 = (int)param_2 - (int)uVar1" identifier = (binary_expression "(int)param_2 - (int)uVar1" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (param_1 < param_2) {\n        uVar2 = param_3;\n      }" if (parenthesized_expression "(param_1 < param_2)" ( (binary_expression "param_1 < param_2" identifier < identifier) )) (compound_statement "{\n        uVar2 = param_3;\n      }" { (expression_statement "uVar2 = param_3;" (assignment_expression "uVar2 = param_3" identifier = identifier) ;) })) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = uVar5;" (assignment_expression "uVar8 = uVar5" identifier = identifier) ;) (if_statement "if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }" { (expression_statement "uVar7 = FUN_001553a0(uVar1);" (assignment_expression "uVar7 = FUN_001553a0(uVar1)" identifier = (call_expression "FUN_001553a0(uVar1)" identifier (argument_list "(uVar1)" ( identifier )))) ;) (expression_statement "uVar8 = uVar7 | uVar5;" (assignment_expression "uVar8 = uVar7 | uVar5" identifier = (binary_expression "uVar7 | uVar5" identifier | identifier)) ;) })) (expression_statement "printf("    %8.8lx ",param_4);" (call_expression "printf("    %8.8lx ",param_4)" identifier (argument_list "("    %8.8lx ",param_4)" ( (string_literal ""    %8.8lx "" " string_content ") , identifier ))) ;) (if_statement "if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }" { (expression_statement "pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"<End of list>\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"<End of list>\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"<End of list>\n",5)" identifier (argument_list "(0,"<End of list>\n",5)" ( number_literal , (string_literal ""<End of list>\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" if (parenthesized_expression "((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9)))" ( (binary_expression "(uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))" (parenthesized_expression "(uVar9 == (uVar9 & uVar5))" ( (binary_expression "uVar9 == (uVar9 & uVar5)" identifier == (parenthesized_expression "(uVar9 & uVar5)" ( (binary_expression "uVar9 & uVar5" identifier & identifier) ))) )) && (parenthesized_expression "(uVar9 != (uVar7 & uVar9))" ( (binary_expression "uVar9 != (uVar7 & uVar9)" identifier != (parenthesized_expression "(uVar7 & uVar9)" ( (binary_expression "uVar7 & uVar9" identifier & identifier) ))) ))) )) (compound_statement "{\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }" { (expression_statement "FUN_0013d4c0(uVar5,param_3);" (call_expression "FUN_0013d4c0(uVar5,param_3)" identifier (argument_list "(uVar5,param_3)" ( identifier , identifier ))) ;) (expression_statement "FUN_0013d4c0(uVar7,param_3);" (call_expression "FUN_0013d4c0(uVar7,param_3)" identifier (argument_list "(uVar7,param_3)" ( identifier , identifier ))) ;) (expression_statement "puts("(base address)");" (call_expression "puts("(base address)")" identifier (argument_list "("(base address)")" ( (string_literal ""(base address)"" " string_content ") ))) ;) (expression_statement "local_60 = uVar7;" (assignment_expression "local_60 = uVar7" identifier = identifier) ;) }) (else_clause "else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" else (compound_statement "{\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" { (expression_statement "FUN_0013d4c0(local_60 + uVar5,param_3);" (call_expression "FUN_0013d4c0(local_60 + uVar5,param_3)" identifier (argument_list "(local_60 + uVar5,param_3)" ( (binary_expression "local_60 + uVar5" identifier + identifier) , identifier ))) ;) (expression_statement "FUN_0013d4c0(uVar7 + local_60,param_3);" (call_expression "FUN_0013d4c0(uVar7 + local_60,param_3)" identifier (argument_list "(uVar7 + local_60,param_3)" ( (binary_expression "uVar7 + local_60" identifier + identifier) , identifier ))) ;) (expression_statement "__stream = stdout;" (assignment_expression "__stream = stdout" identifier = identifier) ;) (expression_statement "pcVar6 = " (start == end)";" (assignment_expression "pcVar6 = " (start == end)"" identifier = (string_literal "" (start == end)"" " string_content ")) ;) (if_statement "if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" if (parenthesized_expression "(uVar7 == uVar5)" ( (binary_expression "uVar7 == uVar5" identifier == identifier) )) (compound_statement "{\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }" { (labeled_statement "LAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);" statement_identifier : (expression_statement "pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar6 + 1,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar6 + 1,5)" identifier (argument_list "(0,pcVar6 + 1,5)" ( number_literal , (binary_expression "pcVar6 + 1" identifier + number_literal) , number_literal ))))) ;)) (expression_statement "fputs(pcVar6,__stream);" (call_expression "fputs(pcVar6,__stream)" identifier (argument_list "(pcVar6,__stream)" ( identifier , identifier ))) ;) }) (else_clause "else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" else (if_statement "if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" if (parenthesized_expression "(uVar7 < uVar5)" ( (binary_expression "uVar7 < uVar5" identifier < identifier) )) (compound_statement "{\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" { (expression_statement "pcVar6 = " (start > end)";" (assignment_expression "pcVar6 = " (start > end)"" identifier = (string_literal "" (start > end)"" " string_content ")) ;) (goto_statement "goto LAB_0013e45c;" goto statement_identifier ;) })))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" identifier (argument_list "(10,stdout)" ( number_literal , identifier ))) ;) }))) }) while (parenthesized_expression "(param_1 < param_2)" ( (binary_expression "param_1 < param_2" identifier < identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (unary_expression ~ (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * (char_literal ' escape_sequence ')) - LIT) & LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , (string_literal " string_content ") , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT )))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return ;) }))) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (parenthesized_expression ( (binary_expression IDENT & IDENT) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (parenthesized_expression ( (binary_expression IDENT & IDENT) ))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT ))))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })))) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) }))) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0013e280(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)\n\n{\n  ulong uVar1;\n  FILE *__stream;\n  uint uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong local_60;\n  \n  if (param_1 < param_2) {\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0013e280(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)" (identifier "FUN_0013e280") (parameter_list "(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)" (( "(") (parameter_declaration "ulong param_1" (type_identifier "ulong") (identifier "param_1")) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined8 param_4" (type_identifier "undefined8") (identifier "param_4")) (, ",") (parameter_declaration "ulong param_5" (type_identifier "ulong") (identifier "param_5")) () ")"))) (compound_statement "{\n  ulong uVar1;\n  FILE *__stream;\n  uint uVar2;\n  ulong uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  char *pcVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong local_60;\n  \n  if (param_1 < param_2) {\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }\n  return;\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "FILE *__stream;" (type_identifier "FILE") (pointer_declarator "*__stream" (* "*") (identifier "__stream")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "ulong local_60;" (type_identifier "ulong") (identifier "local_60") (; ";")) (if_statement "if (param_1 < param_2) {\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }" (if "if") (parenthesized_expression "(param_1 < param_2)" (( "(") (binary_expression "param_1 < param_2" (identifier "param_1") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n    uVar3 = (ulong)param_3;\n    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));\n    local_60 = param_5;\n    do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);\n  }" ({ "{") (expression_statement "uVar3 = (ulong)param_3;" (assignment_expression "uVar3 = (ulong)param_3" (identifier "uVar3") (= "=") (cast_expression "(ulong)param_3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));" (assignment_expression "uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f))" (identifier "uVar9") (= "=") (unary_expression "~(-2L << ((char)param_3 * '\b' - 1U & 0x3f))" (~ "~") (parenthesized_expression "(-2L << ((char)param_3 * '\b' - 1U & 0x3f))" (( "(") (binary_expression "-2L << ((char)param_3 * '\b' - 1U & 0x3f)" (number_literal "-2L") (<< "<<") (parenthesized_expression "((char)param_3 * '\b' - 1U & 0x3f)" (( "(") (binary_expression "(char)param_3 * '\b' - 1U & 0x3f" (binary_expression "(char)param_3 * '\b' - 1U" (binary_expression "(char)param_3 * '\b'" (cast_expression "(char)param_3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_3")) (* "*") (char_literal "'\b'" (' "'") (escape_sequence "\b") (' "'"))) (- "-") (number_literal "1U")) (& "&") (number_literal "0x3f")) () ")"))) () ")")))) (; ";")) (expression_statement "local_60 = param_5;" (assignment_expression "local_60 = param_5" (identifier "local_60") (= "=") (identifier "param_5")) (; ";")) (do_statement "do {\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    } while (param_1 < param_2);" (do "do") (compound_statement "{\n      uVar1 = uVar3 + param_1;\n      if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }\n      param_1 = param_1 + uVar3 * 2;\n      uVar2 = (int)param_2 - (int)uVar1;\n      if (param_1 < param_2) {\n        uVar2 = param_3;\n      }\n      uVar7 = 0;\n      uVar8 = uVar5;\n      if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }\n      printf("    %8.8lx ",param_4);\n      if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }\n      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }\n    }" ({ "{") (expression_statement "uVar1 = uVar3 + param_1;" (assignment_expression "uVar1 = uVar3 + param_1" (identifier "uVar1") (= "=") (binary_expression "uVar3 + param_1" (identifier "uVar3") (+ "+") (identifier "param_1"))) (; ";")) (if_statement "if (param_3 < 9) {\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }\n      else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }" (if "if") (parenthesized_expression "(param_3 < 9)" (( "(") (binary_expression "param_3 < 9" (identifier "param_3") (< "<") (number_literal "9")) () ")")) (compound_statement "{\n        if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }\n        uVar5 = 0;\n        uVar2 = param_3;\n        if (param_3 - 1 < 8) goto LAB_0013e436;\n      }" ({ "{") (if_statement "if (param_2 <= uVar1) {\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }" (if "if") (parenthesized_expression "(param_2 <= uVar1)" (( "(") (binary_expression "param_2 <= uVar1" (identifier "param_2") (<= "<=") (identifier "uVar1")) () ")")) (compound_statement "{\nLAB_0013e3be:\n          uVar5 = 0;\n          uVar2 = (int)param_2 - (int)param_1;\n          if (uVar2 - 1 < 8) goto LAB_0013e436;\n          goto LAB_0013e3d1;\n        }" ({ "{") (labeled_statement "LAB_0013e3be:\n          uVar5 = 0;" (statement_identifier "LAB_0013e3be") (: ":") (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar2 = (int)param_2 - (int)param_1;" (assignment_expression "uVar2 = (int)param_2 - (int)param_1" (identifier "uVar2") (= "=") (binary_expression "(int)param_2 - (int)param_1" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (- "-") (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")))) (; ";")) (if_statement "if (uVar2 - 1 < 8) goto LAB_0013e436;" (if "if") (parenthesized_expression "(uVar2 - 1 < 8)" (( "(") (binary_expression "uVar2 - 1 < 8" (binary_expression "uVar2 - 1" (identifier "uVar2") (- "-") (number_literal "1")) (< "<") (number_literal "8")) () ")")) (goto_statement "goto LAB_0013e436;" (goto "goto") (statement_identifier "LAB_0013e436") (; ";"))) (goto_statement "goto LAB_0013e3d1;" (goto "goto") (statement_identifier "LAB_0013e3d1") (; ";")) (} "}"))) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = param_3;" (assignment_expression "uVar2 = param_3" (identifier "uVar2") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (param_3 - 1 < 8) goto LAB_0013e436;" (if "if") (parenthesized_expression "(param_3 - 1 < 8)" (( "(") (binary_expression "param_3 - 1 < 8" (binary_expression "param_3 - 1" (identifier "param_3") (- "-") (number_literal "1")) (< "<") (number_literal "8")) () ")")) (goto_statement "goto LAB_0013e436;" (goto "goto") (statement_identifier "LAB_0013e436") (; ";"))) (} "}")) (else_clause "else {\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }" (else "else") (compound_statement "{\n        uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);\n        error(uVar4,param_3,8);\n        if (param_2 <= param_1 + 8) goto LAB_0013e3be;\n        uVar2 = 8;\nLAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);\nLAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }\n      }" ({ "{") (expression_statement "uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5);" (assignment_expression "uVar4 = dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5)" (identifier "uVar4") (= "=") (call_expression "dcngettext(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5)" (identifier "dcngettext") (argument_list "(0,\n                           "internal error: attempt to read %d byte of data in to %d sized variable"\n                           ,\n                           "internal error: attempt to read %d bytes of data in to %d sized variable"\n                           ,uVar3,5)" (( "(") (number_literal "0") (, ",") (string_literal ""internal error: attempt to read %d byte of data in to %d sized variable"" (" """) (string_content "internal error: attempt to read %d byte of data in to %d sized variable") (" """)) (, ",") (string_literal ""internal error: attempt to read %d bytes of data in to %d sized variable"" (" """) (string_content "internal error: attempt to read %d bytes of data in to %d sized variable") (" """)) (, ",") (identifier "uVar3") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "error(uVar4,param_3,8);" (call_expression "error(uVar4,param_3,8)" (identifier "error") (argument_list "(uVar4,param_3,8)" (( "(") (identifier "uVar4") (, ",") (identifier "param_3") (, ",") (number_literal "8") () ")"))) (; ";")) (if_statement "if (param_2 <= param_1 + 8) goto LAB_0013e3be;" (if "if") (parenthesized_expression "(param_2 <= param_1 + 8)" (( "(") (binary_expression "param_2 <= param_1 + 8" (identifier "param_2") (<= "<=") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8"))) () ")")) (goto_statement "goto LAB_0013e3be;" (goto "goto") (statement_identifier "LAB_0013e3be") (; ";"))) (expression_statement "uVar2 = 8;" (assignment_expression "uVar2 = 8" (identifier "uVar2") (= "=") (number_literal "8")) (; ";")) (labeled_statement "LAB_0013e436:\n        uVar5 = (*DAT_00196f88)(param_1,uVar2);" (statement_identifier "LAB_0013e436") (: ":") (expression_statement "uVar5 = (*DAT_00196f88)(param_1,uVar2);" (assignment_expression "uVar5 = (*DAT_00196f88)(param_1,uVar2)" (identifier "uVar5") (= "=") (call_expression "(*DAT_00196f88)(param_1,uVar2)" (parenthesized_expression "(*DAT_00196f88)" (( "(") (pointer_expression "*DAT_00196f88" (* "*") (identifier "DAT_00196f88")) () ")")) (argument_list "(param_1,uVar2)" (( "(") (identifier "param_1") (, ",") (identifier "uVar2") () ")")))) (; ";"))) (labeled_statement "LAB_0013e3d1:\n        if (param_2 <= uVar1) {\n          return;\n        }" (statement_identifier "LAB_0013e3d1") (: ":") (if_statement "if (param_2 <= uVar1) {\n          return;\n        }" (if "if") (parenthesized_expression "(param_2 <= uVar1)" (( "(") (binary_expression "param_2 <= uVar1" (identifier "param_2") (<= "<=") (identifier "uVar1")) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (} "}")))) (expression_statement "param_1 = param_1 + uVar3 * 2;" (assignment_expression "param_1 = param_1 + uVar3 * 2" (identifier "param_1") (= "=") (binary_expression "param_1 + uVar3 * 2" (identifier "param_1") (+ "+") (binary_expression "uVar3 * 2" (identifier "uVar3") (* "*") (number_literal "2")))) (; ";")) (expression_statement "uVar2 = (int)param_2 - (int)uVar1;" (assignment_expression "uVar2 = (int)param_2 - (int)uVar1" (identifier "uVar2") (= "=") (binary_expression "(int)param_2 - (int)uVar1" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (- "-") (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")))) (; ";")) (if_statement "if (param_1 < param_2) {\n        uVar2 = param_3;\n      }" (if "if") (parenthesized_expression "(param_1 < param_2)" (( "(") (binary_expression "param_1 < param_2" (identifier "param_1") (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n        uVar2 = param_3;\n      }" ({ "{") (expression_statement "uVar2 = param_3;" (assignment_expression "uVar2 = param_3" (identifier "uVar2") (= "=") (identifier "param_3")) (; ";")) (} "}"))) (expression_statement "uVar7 = 0;" (assignment_expression "uVar7 = 0" (identifier "uVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = uVar5;" (assignment_expression "uVar8 = uVar5" (identifier "uVar8") (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (uVar2 != 0) {\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = FUN_001553a0(uVar1);\n        uVar8 = uVar7 | uVar5;\n      }" ({ "{") (expression_statement "uVar7 = FUN_001553a0(uVar1);" (assignment_expression "uVar7 = FUN_001553a0(uVar1)" (identifier "uVar7") (= "=") (call_expression "FUN_001553a0(uVar1)" (identifier "FUN_001553a0") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")")))) (; ";")) (expression_statement "uVar8 = uVar7 | uVar5;" (assignment_expression "uVar8 = uVar7 | uVar5" (identifier "uVar8") (= "=") (binary_expression "uVar7 | uVar5" (identifier "uVar7") (| "|") (identifier "uVar5"))) (; ";")) (} "}"))) (expression_statement "printf("    %8.8lx ",param_4);" (call_expression "printf("    %8.8lx ",param_4)" (identifier "printf") (argument_list "("    %8.8lx ",param_4)" (( "(") (string_literal ""    %8.8lx "" (" """) (string_content "    %8.8lx ") (" """)) (, ",") (identifier "param_4") () ")"))) (; ";")) (if_statement "if (uVar8 == 0) {\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);\n        printf(pcVar6);\n        return;\n      }" ({ "{") (expression_statement "pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,"<End of list>\n",5)" (identifier "pcVar6") (= "=") (cast_expression "(char *)dcgettext(0,"<End of list>\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"<End of list>\n",5)" (identifier "dcgettext") (argument_list "(0,"<End of list>\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""<End of list>\n"" (" """) (string_content "<End of list>") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "printf(pcVar6);" (call_expression "printf(pcVar6)" (identifier "printf") (argument_list "(pcVar6)" (( "(") (identifier "pcVar6") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }\n      else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" (if "if") (parenthesized_expression "((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9)))" (( "(") (binary_expression "(uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))" (parenthesized_expression "(uVar9 == (uVar9 & uVar5))" (( "(") (binary_expression "uVar9 == (uVar9 & uVar5)" (identifier "uVar9") (== "==") (parenthesized_expression "(uVar9 & uVar5)" (( "(") (binary_expression "uVar9 & uVar5" (identifier "uVar9") (& "&") (identifier "uVar5")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(uVar9 != (uVar7 & uVar9))" (( "(") (binary_expression "uVar9 != (uVar7 & uVar9)" (identifier "uVar9") (!= "!=") (parenthesized_expression "(uVar7 & uVar9)" (( "(") (binary_expression "uVar7 & uVar9" (identifier "uVar7") (& "&") (identifier "uVar9")) () ")"))) () ")"))) () ")")) (compound_statement "{\n        FUN_0013d4c0(uVar5,param_3);\n        FUN_0013d4c0(uVar7,param_3);\n        puts("(base address)");\n        local_60 = uVar7;\n      }" ({ "{") (expression_statement "FUN_0013d4c0(uVar5,param_3);" (call_expression "FUN_0013d4c0(uVar5,param_3)" (identifier "FUN_0013d4c0") (argument_list "(uVar5,param_3)" (( "(") (identifier "uVar5") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "FUN_0013d4c0(uVar7,param_3);" (call_expression "FUN_0013d4c0(uVar7,param_3)" (identifier "FUN_0013d4c0") (argument_list "(uVar7,param_3)" (( "(") (identifier "uVar7") (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "puts("(base address)");" (call_expression "puts("(base address)")" (identifier "puts") (argument_list "("(base address)")" (( "(") (string_literal ""(base address)"" (" """) (string_content "(base address)") (" """)) () ")"))) (; ";")) (expression_statement "local_60 = uVar7;" (assignment_expression "local_60 = uVar7" (identifier "local_60") (= "=") (identifier "uVar7")) (; ";")) (} "}")) (else_clause "else {\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" (else "else") (compound_statement "{\n        FUN_0013d4c0(local_60 + uVar5,param_3);\n        FUN_0013d4c0(uVar7 + local_60,param_3);\n        __stream = stdout;\n        pcVar6 = " (start == end)";\n        if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }\n        putc(10,stdout);\n      }" ({ "{") (expression_statement "FUN_0013d4c0(local_60 + uVar5,param_3);" (call_expression "FUN_0013d4c0(local_60 + uVar5,param_3)" (identifier "FUN_0013d4c0") (argument_list "(local_60 + uVar5,param_3)" (( "(") (binary_expression "local_60 + uVar5" (identifier "local_60") (+ "+") (identifier "uVar5")) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "FUN_0013d4c0(uVar7 + local_60,param_3);" (call_expression "FUN_0013d4c0(uVar7 + local_60,param_3)" (identifier "FUN_0013d4c0") (argument_list "(uVar7 + local_60,param_3)" (( "(") (binary_expression "uVar7 + local_60" (identifier "uVar7") (+ "+") (identifier "local_60")) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "__stream = stdout;" (assignment_expression "__stream = stdout" (identifier "__stream") (= "=") (identifier "stdout")) (; ";")) (expression_statement "pcVar6 = " (start == end)";" (assignment_expression "pcVar6 = " (start == end)"" (identifier "pcVar6") (= "=") (string_literal "" (start == end)"" (" """) (string_content " (start == end)") (" """))) (; ";")) (if_statement "if (uVar7 == uVar5) {\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }\n        else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" (if "if") (parenthesized_expression "(uVar7 == uVar5)" (( "(") (binary_expression "uVar7 == uVar5" (identifier "uVar7") (== "==") (identifier "uVar5")) () ")")) (compound_statement "{\nLAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);\n          fputs(pcVar6,__stream);\n        }" ({ "{") (labeled_statement "LAB_0013e45c:\n          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);" (statement_identifier "LAB_0013e45c") (: ":") (expression_statement "pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);" (assignment_expression "pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5)" (identifier "pcVar6") (= "=") (cast_expression "(char *)dcgettext(0,pcVar6 + 1,5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,pcVar6 + 1,5)" (identifier "dcgettext") (argument_list "(0,pcVar6 + 1,5)" (( "(") (number_literal "0") (, ",") (binary_expression "pcVar6 + 1" (identifier "pcVar6") (+ "+") (number_literal "1")) (, ",") (number_literal "5") () ")"))))) (; ";"))) (expression_statement "fputs(pcVar6,__stream);" (call_expression "fputs(pcVar6,__stream)" (identifier "fputs") (argument_list "(pcVar6,__stream)" (( "(") (identifier "pcVar6") (, ",") (identifier "__stream") () ")"))) (; ";")) (} "}")) (else_clause "else if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" (else "else") (if_statement "if (uVar7 < uVar5) {\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" (if "if") (parenthesized_expression "(uVar7 < uVar5)" (( "(") (binary_expression "uVar7 < uVar5" (identifier "uVar7") (< "<") (identifier "uVar5")) () ")")) (compound_statement "{\n          pcVar6 = " (start > end)";\n          goto LAB_0013e45c;\n        }" ({ "{") (expression_statement "pcVar6 = " (start > end)";" (assignment_expression "pcVar6 = " (start > end)"" (identifier "pcVar6") (= "=") (string_literal "" (start > end)"" (" """) (string_content " (start > end)") (" """))) (; ";")) (goto_statement "goto LAB_0013e45c;" (goto "goto") (statement_identifier "LAB_0013e45c") (; ";")) (} "}"))))) (expression_statement "putc(10,stdout);" (call_expression "putc(10,stdout)" (identifier "putc") (argument_list "(10,stdout)" (( "(") (number_literal "10") (, ",") (identifier "stdout") () ")"))) (; ";")) (} "}")))) (} "}")) (while "while") (parenthesized_expression "(param_1 < param_2)" (( "(") (binary_expression "param_1 < param_2" (identifier "param_1") (< "<") (identifier "param_2")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1
               (type_1 *var_1,type_1 *var_2,type_2 var_4,type_3 offset,type_3 base_address)

{
  type_1 *var_5;
  type_3 var_3;
  type_4 *__stream;
  type_2 var_6;
  type_5 var_11;
  char *var_19;
  type_5 var_10;
  type_3 var_13;
  type_3 var_15;
  type_3 var_18;
  
  if (var_1 < var_2) {
    var_3 = (type_3)var_4;
    var_15 = ~(-2L << ((char)var_4 * '\b' - 1U & 0x3f));
    var_18 = base_address;
    do {
      var_5 = var_1 + var_3;
      if (var_4 < 9) {
        if (var_2 <= var_5) {
LAB_0013e3be:
          var_11 = 0;
          var_6 = (int)var_2 - (int)var_1;
          if (var_6 - 1 < 8) goto LAB_0013e436;
          goto LAB_0013e3d1;
        }
        var_11 = 0;
        var_6 = var_4;
        if (var_4 - 1 < 8) goto LAB_0013e436;
      }
      else {
        var_19 = (char *)var_7(0,
                                    "internal error: attempt to read %d byte of data in to %d sized variable"
                                    ,
                                    "internal error: attempt to read %d bytes of data in to %d sized variable"
                                    ,var_3,5);
        var_8(var_19,(type_3)var_4,8);
        if (var_2 <= var_1 + 8) goto LAB_0013e3be;
        var_6 = 8;
LAB_0013e436:
        var_11 = (*byte_get)(var_1,var_6);
LAB_0013e3d1:
        if (var_2 <= var_5) {
          return;
        }
      }
      var_1 = var_1 + var_3 * 2;
      var_6 = (int)var_2 - (int)var_5;
      if (var_1 < var_2) {
        var_6 = var_4;
      }
      var_10 = 0;
      var_13 = var_11;
      if (var_6 != 0) {
        var_10 = var_9(var_5,var_6);
        var_13 = var_10 | var_11;
      }
      var_12("    %8.8lx ",offset);
      if (var_13 == 0) {
        var_19 = (char *)var_14(0,"<End of list>\n",5);
        var_12(var_19);
        return;
      }
      if ((var_15 == (var_15 & var_11)) && (var_15 != (var_10 & var_15))) {
        var_16(var_11,var_4);
        var_16(var_10,var_4);
        var_17("(base address)");
        var_18 = var_10;
      }
      else {
        var_16(var_18 + var_11,var_4);
        var_16(var_10 + var_18,var_4);
        __stream = stdout;
        var_19 = " (start == end)";
        if (var_10 == var_11) {
LAB_0013e45c:
          var_19 = (char *)var_14(0,var_19 + 1,5);
          var_20(var_19,__stream);
        }
        else if (var_10 < var_11) {
          var_19 = " (start > end)";
          goto LAB_0013e45c;
        }
        var_21(10,stdout);
      }
    } while (var_1 < var_2);
  }
  return;
}


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

void MASKED(ulong param_1,ulong param_2,uint param_3,undefined8 param_4,ulong param_5)

{
  ulong uVar1;
  FILE *__stream;
  uint uVar2;
  ulong uVar3;
  undefined8 uVar4;
  ulong uVar5;
  char *pcVar6;
  ulong uVar7;
  ulong uVar8;
  ulong uVar9;
  ulong local_60;
  
  if (param_1 < param_2) {
    uVar3 = (ulong)param_3;
    uVar9 = ~(-2L << ((char)param_3 * '\b' - 1U & 0x3f));
    local_60 = param_5;
    do {
      uVar1 = uVar3 + param_1;
      if (param_3 < 9) {
        if (param_2 <= uVar1) {
LAB_0013e3be:
          uVar5 = 0;
          uVar2 = (int)param_2 - (int)param_1;
          if (uVar2 - 1 < 8) goto LAB_0013e436;
          goto LAB_0013e3d1;
        }
        uVar5 = 0;
        uVar2 = param_3;
        if (param_3 - 1 < 8) goto LAB_0013e436;
      }
      else {
        uVar4 = dcngettext(0,
                           "internal error: attempt to read %d byte of data in to %d sized variable"
                           ,
                           "internal error: attempt to read %d bytes of data in to %d sized variable"
                           ,uVar3,5);
        error(uVar4,param_3,8);
        if (param_2 <= param_1 + 8) goto LAB_0013e3be;
        uVar2 = 8;
LAB_0013e436:
        uVar5 = (*DAT_00196f88)(param_1,uVar2);
LAB_0013e3d1:
        if (param_2 <= uVar1) {
          return;
        }
      }
      param_1 = param_1 + uVar3 * 2;
      uVar2 = (int)param_2 - (int)uVar1;
      if (param_1 < param_2) {
        uVar2 = param_3;
      }
      uVar7 = 0;
      uVar8 = uVar5;
      if (uVar2 != 0) {
        uVar7 = FUN_001553a0(uVar1);
        uVar8 = uVar7 | uVar5;
      }
      printf("    %8.8lx ",param_4);
      if (uVar8 == 0) {
        pcVar6 = (char *)dcgettext(0,"<End of list>\n",5);
        printf(pcVar6);
        return;
      }
      if ((uVar9 == (uVar9 & uVar5)) && (uVar9 != (uVar7 & uVar9))) {
        FUN_0013d4c0(uVar5,param_3);
        FUN_0013d4c0(uVar7,param_3);
        puts("(base address)");
        local_60 = uVar7;
      }
      else {
        FUN_0013d4c0(local_60 + uVar5,param_3);
        FUN_0013d4c0(uVar7 + local_60,param_3);
        __stream = stdout;
        pcVar6 = " (start == end)";
        if (uVar7 == uVar5) {
LAB_0013e45c:
          pcVar6 = (char *)dcgettext(0,pcVar6 + 1,5);
          fputs(pcVar6,__stream);
        }
        else if (uVar7 < uVar5) {
          pcVar6 = " (start > end)";
          goto LAB_0013e45c;
        }
        putc(10,stdout);
      }
    } while (param_1 < param_2);
  }
  return;
}

