
void vax_find_call(Sym *parent,bfd_vma p_lowpc,bfd_vma p_highpc)

{
  operandenum oVar1;
  operandenum mode;
  int iVar2;
  ulong uVar3;
  Sym *child;
  long lVar4;
  bfd_signed_vma bVar5;
  char *pcVar6;
  byte *modep;
  long lVar7;
  bfd_vma address;
  
  if (vax_find_call::inited == 0) {
    vax_find_call::inited = 1;
    sym_init(&indirectchild);
    indirectchild.cg.prop.fract = DAT_001104c0;
    indirectchild.cg.cyc.head = &indirectchild;
  }
  if ((debug_level._1_1_ & 1) != 0) {
    printf("[findcall] %s: 0x%lx to 0x%lx\n",parent->name,p_lowpc,p_highpc);
  }
  if (p_lowpc < p_highpc) {
    do {
      pcVar6 = (char *)((p_lowpc - core_text_sect->vma) + (long)core_text_space);
      if (*pcVar6 == -5) {
        if ((debug_level._1_1_ & 1) != 0) {
          printf("[findcall]\t0x%lx:calls",p_lowpc);
          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);
          if ((oVar1 == literal) || (oVar1 == immediate)) {
            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));
            lVar7 = lVar7 + 1;
            modep = (byte *)(pcVar6 + lVar7);
            mode = vax_operandmode((uchar *)(ulong)*modep);
            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;
            pcVar6 = vax_operandname(oVar1);
            printf("\tfirst operand is %s",pcVar6);
            pcVar6 = vax_operandname(mode);
            printf("\tsecond operand is %s\n",pcVar6);
            if (mode < (longreldef|indexed)) {
              uVar3 = 1L << ((byte)mode & 0x3f);
              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;
              goto LAB_0010db04;
            }
          }
          goto LAB_0010da28;
        }
        oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);
        if ((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)) {
          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));
          lVar7 = lVar7 + 1;
          modep = (byte *)(pcVar6 + lVar7);
          mode = vax_operandmode((uchar *)(ulong)*modep);
LAB_0010d924:
          if (longreldef < mode) goto LAB_0010d8b8;
          uVar3 = 1L << ((byte)mode & 0x3f);
          if ((uVar3 & 0x151508) != 0) {
LAB_0010db04:
            child = &indirectchild;
            goto LAB_0010db0d;
          }
LAB_0010d93e:
          if ((uVar3 & 0xa8000) != 0) {
            oVar1 = vax_operandmode((uchar *)(ulong)*modep);
            if (oVar1 == wordrel) {
              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);
              address = bVar5 + 2 + p_lowpc;
            }
            else if (oVar1 == longrel) {
              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);
              address = bVar5 + 4 + p_lowpc;
            }
            else if (oVar1 == byterel) {
              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;
            }
            else {
              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);
              address = p_lowpc;
            }
            iVar2 = hist_check_address((uint)address);
            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {
              if ((debug_level._1_1_ & 1) == 0) {
                if (child->addr != address) goto LAB_0010d8b8;
              }
              else {
                printf("[findcall]\tdestpc 0x%lx",address);
                printf(" child->name %s",child->name);
                printf(" child->addr 0x%lx\n",child->addr);
                if (child->addr != address) goto LAB_0010da28;
              }
LAB_0010db0d:
              arc_add(parent,child,0);
              lVar4 = vax_operandlength(modep);
              lVar7 = lVar7 + lVar4;
              goto LAB_0010d8be;
            }
          }
LAB_0010da28:
          if ((debug_level._1_1_ & 1) != 0) {
            puts("[findcall]\tbut it\'s a botch");
          }
          goto LAB_0010d8b8;
        }
      }
      else {
LAB_0010d8b8:
        lVar7 = 1;
      }
LAB_0010d8be:
      p_lowpc = p_lowpc + lVar7;
    } while (p_lowpc < p_highpc);
  }
  return;
}



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

void FUN_0010d870(long param_1,ulong param_2,ulong param_3)

{
  int iVar1;
  uint uVar2;
  ulong uVar3;
  ulong *puVar4;
  undefined8 uVar5;
  long lVar6;
  char *pcVar7;
  long lVar8;
  
  if (DAT_001197c0 == 0) {
    DAT_001197c0 = 1;
    FUN_0010bfe0(&DAT_001197e0);
    _DAT_001198f8 = DAT_001104c0;
    _DAT_00119918 = &DAT_001197e0;
  }
  if ((DAT_001195e4._1_1_ & 1) != 0) {
    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);
  }
  if (param_2 < param_3) {
    do {
      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);
      if (*pcVar7 == -5) {
        if ((DAT_001195e4._1_1_ & 1) != 0) {
          printf("[findcall]\t0x%lx:calls",param_2);
          iVar1 = FUN_0010d6f0(pcVar7[1]);
          if ((iVar1 == 0) || (iVar1 == 0xd)) {
            lVar8 = FUN_0010d7f0(pcVar7 + 1);
            lVar8 = lVar8 + 1;
            pcVar7 = pcVar7 + lVar8;
            uVar2 = FUN_0010d6f0(*pcVar7);
            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;
            uVar5 = FUN_0010d580(iVar1);
            printf("\tfirst operand is %s",uVar5);
            uVar5 = FUN_0010d580(uVar2);
            printf("\tsecond operand is %s\n",uVar5);
            if (uVar2 < 0x15) {
              uVar3 = 1L << ((byte)uVar2 & 0x3f);
              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;
              goto LAB_0010db04;
            }
          }
          goto LAB_0010da28;
        }
        iVar1 = FUN_0010d6f0(pcVar7[1]);
        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {
          lVar8 = FUN_0010d7f0(pcVar7 + 1);
          lVar8 = lVar8 + 1;
          pcVar7 = pcVar7 + lVar8;
          uVar2 = FUN_0010d6f0(*pcVar7);
LAB_0010d924:
          if (0x14 < uVar2) goto LAB_0010d8b8;
          uVar3 = 1L << ((byte)uVar2 & 0x3f);
          if ((uVar3 & 0x151508) != 0) {
LAB_0010db04:
            puVar4 = (ulong *)&DAT_001197e0;
            goto LAB_0010db0d;
          }
LAB_0010d93e:
          if ((uVar3 & 0xa8000) != 0) {
            iVar1 = FUN_0010d6f0(*pcVar7);
            if (iVar1 == 0x11) {
              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);
              uVar3 = lVar6 + 2 + param_2;
            }
            else if (iVar1 == 0x13) {
              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();
              uVar3 = lVar6 + 4 + param_2;
            }
            else if (iVar1 == 0xf) {
              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;
            }
            else {
              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);
              uVar3 = param_2;
            }
            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);
            if ((iVar1 != 0) &&
               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {
              if ((DAT_001195e4._1_1_ & 1) == 0) {
                if (*puVar4 != uVar3) goto LAB_0010d8b8;
              }
              else {
                printf("[findcall]\tdestpc 0x%lx",uVar3);
                printf(" child->name %s",puVar4[2]);
                printf(" child->addr 0x%lx\n",*puVar4);
                if (*puVar4 != uVar3) goto LAB_0010da28;
              }
LAB_0010db0d:
              FUN_00104520(param_1,puVar4,0);
              lVar6 = FUN_0010d7f0(pcVar7);
              lVar8 = lVar8 + lVar6;
              goto LAB_0010d8be;
            }
          }
LAB_0010da28:
          if ((DAT_001195e4._1_1_ & 1) != 0) {
            puts("[findcall]\tbut it\'s a botch");
          }
          goto LAB_0010d8b8;
        }
      }
      else {
LAB_0010d8b8:
        lVar8 = 1;
      }
LAB_0010d8be:
      param_2 = param_2 + lVar8;
    } while (param_2 < param_3);
  }
  return;
}


PUSH R15
PUSH R14
MOV R14,RSI
PUSH R13
PUSH R12
PUSH RBP
MOV RBP,RDX
PUSH RBX
SUB RSP,0x18
MOV EAX,dword ptr [0x001197c0]
MOV qword ptr [RSP],RDI
TEST EAX,EAX
JZ 0x0010db58
TEST byte ptr [0x001195e5],0x1
JNZ 0x0010db30
MOV R13D,0x1
CMP R14,RBP
JC 0x0010d8ca
JMP 0x0010da50
MOV R12D,0x1
ADD R14,R12
CMP RBP,R14
JBE 0x0010da50
MOV RAX,qword ptr [0x00119af8]
MOV RBX,R14
SUB RBX,qword ptr [RAX + 0x28]
ADD RBX,qword ptr [0x00119ae0]
CMP byte ptr [RBX],0xfb
JNZ 0x0010d8b8
TEST byte ptr [0x001195e5],0x1
JNZ 0x0010da60
MOVZX EDI,byte ptr [RBX + 0x1]
CALL 0x0010d6f0
TEST EAX,EAX
JZ 0x0010d909
MOV R12D,0x1
CMP EAX,0xd
JNZ 0x0010d8be
LEA RDI,[RBX + 0x1]
CALL 0x0010d7f0
LEA R12,[RAX + 0x1]
ADD RBX,R12
MOVZX EDI,byte ptr [RBX]
CALL 0x0010d6f0
MOV R15D,EAX
CMP R15D,0x14
JA 0x0010d8b8
MOV RAX,R13
MOV ECX,R15D
SHL RAX,CL
TEST EAX,0x151508
JNZ 0x0010db04
TEST EAX,0xa8000
JZ 0x0010da28
MOVZX EDI,byte ptr [RBX]
CALL 0x0010d6f0
LEA RDI,[RBX + 0x1]
CMP EAX,0x11
JZ 0x0010dbd0
CMP EAX,0x13
JZ 0x0010dbb0
CMP EAX,0xf
JZ 0x0010db90
MOV RCX,qword ptr [0x00118940]
MOV EDX,0x1f
MOV ESI,0x1
MOV R15,R14
LEA RDI,[0x112658]
CALL 0x00102460
MOV EDI,R15D
CALL 0x0010b480
TEST EAX,EAX
JZ 0x0010da28
MOV RSI,R15
LEA RDI,[0x119b30]
CALL 0x0010c540
MOV RCX,RAX
TEST RAX,RAX
JZ 0x0010da28
TEST byte ptr [0x001195e5],0x1
JNZ 0x0010d9d8
CMP qword ptr [RAX],R15
JNZ 0x0010d8b8
XOR EDX,EDX
MOV RSI,RCX
JMP 0x0010db0d
MOV qword ptr [RSP + 0x8],RAX
MOV RSI,R15
LEA RDI,[0x112525]
XOR EAX,EAX
CALL 0x001021c0
MOV RCX,qword ptr [RSP + 0x8]
LEA RDI,[0x11253d]
XOR EAX,EAX
MOV RSI,qword ptr [RCX + 0x10]
CALL 0x001021c0
MOV RCX,qword ptr [RSP + 0x8]
LEA RDI,[0x11254d]
XOR EAX,EAX
MOV RSI,qword ptr [RCX]
CALL 0x001021c0
MOV RCX,qword ptr [RSP + 0x8]
CMP qword ptr [RCX],R15
JZ 0x0010d9c9
NOP dword ptr [RAX]
TEST byte ptr [0x001195e5],0x1
JZ 0x0010d8b8
LEA RDI,[0x112561]
CALL 0x001020c0
JMP 0x0010d8b8
ADD RSP,0x18
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RSI,R14
LEA RDI,[0x1124e2]
XOR EAX,EAX
CALL 0x001021c0
MOVZX EDI,byte ptr [RBX + 0x1]
CALL 0x0010d6f0
MOV EDX,EAX
TEST EAX,EAX
JZ 0x0010da85
CMP EAX,0xd
JNZ 0x0010da28
LEA RDI,[RBX + 0x1]
MOV dword ptr [RSP + 0x8],EDX
CALL 0x0010d7f0
LEA R12,[RAX + 0x1]
ADD RBX,R12
MOVZX EDI,byte ptr [RBX]
CALL 0x0010d6f0
MOV R15D,EAX
TEST byte ptr [0x001195e5],0x1
JZ 0x0010d924
MOV EDX,dword ptr [RSP + 0x8]
MOV EDI,EDX
CALL 0x0010d580
LEA RDI,[0x1124f9]
MOV RSI,RAX
XOR EAX,EAX
CALL 0x001021c0
MOV EDI,R15D
CALL 0x0010d580
LEA RDI,[0x11250e]
MOV RSI,RAX
XOR EAX,EAX
CALL 0x001021c0
CMP R15D,0x14
JA 0x0010da28
MOV RAX,R13
MOV ECX,R15D
SHL RAX,CL
TEST EAX,0x151508
JZ 0x0010d93e
XOR EDX,EDX
LEA RSI,[0x1197e0]
MOV RDI,qword ptr [RSP]
CALL 0x00104520
MOV RDI,RBX
CALL 0x0010d7f0
ADD R12,RAX
JMP 0x0010d8be
MOV RAX,qword ptr [RSP]
MOV RCX,RBP
MOV RDX,R14
LEA RDI,[0x112290]
MOV RSI,qword ptr [RAX + 0x10]
XOR EAX,EAX
CALL 0x001021c0
JMP 0x0010d8a3
LEA RDI,[0x1197e0]
MOV dword ptr [0x001197c0],0x1
CALL 0x0010bfe0
MOV RAX,qword ptr [0x001104c0]
MOV qword ptr [0x001198f8],RAX
LEA RAX,[0x1197e0]
MOV qword ptr [0x00119918],RAX
JMP 0x0010d896
MOVZX EAX,byte ptr [RBX + 0x1]
LEA R15D,[RAX + -0x80]
MOVZX R15D,R15B
SUB R15D,0x7f
MOVSXD R15,R15D
ADD R15,R14
JMP 0x0010d990
MOV RAX,qword ptr [0x00119ad8]
MOV RAX,qword ptr [RAX + 0x8]
CALL qword ptr [RAX + 0x40]
LEA R15,[RAX + R14*0x1 + 0x4]
JMP 0x0010d990
MOV RAX,qword ptr [0x00119ad8]
MOV RAX,qword ptr [RAX + 0x8]
CALL qword ptr [RAX + 0x58]
LEA R15,[RAX + R14*0x1 + 0x2]
JMP 0x0010d990
(translation_unit "/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */\n\nvoid FUN_0010d870(long param_1,ulong param_2,ulong param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  ulong uVar3;\n  ulong *puVar4;\n  undefined8 uVar5;\n  long lVar6;\n  char *pcVar7;\n  long lVar8;\n  \n  if (DAT_001197c0 == 0) {\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }\n  if ((DAT_001195e4._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }\n  if (param_2 < param_3) {\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_0010d870(long param_1,ulong param_2,ulong param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  ulong uVar3;\n  ulong *puVar4;\n  undefined8 uVar5;\n  long lVar6;\n  char *pcVar7;\n  long lVar8;\n  \n  if (DAT_001197c0 == 0) {\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }\n  if ((DAT_001195e4._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }\n  if (param_2 < param_3) {\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0010d870(long param_1,ulong param_2,ulong param_3)" identifier (parameter_list "(long param_1,ulong param_2,ulong param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "ulong param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  ulong uVar3;\n  ulong *puVar4;\n  undefined8 uVar5;\n  long lVar6;\n  char *pcVar7;\n  long lVar8;\n  \n  if (DAT_001197c0 == 0) {\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }\n  if ((DAT_001195e4._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }\n  if (param_2 < param_3) {\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (DAT_001197c0 == 0) {\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }" if (parenthesized_expression "(DAT_001197c0 == 0)" ( (binary_expression "DAT_001197c0 == 0" identifier == number_literal) )) (compound_statement "{\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }" { (expression_statement "DAT_001197c0 = 1;" (assignment_expression "DAT_001197c0 = 1" identifier = number_literal) ;) (expression_statement "FUN_0010bfe0(&DAT_001197e0);" (call_expression "FUN_0010bfe0(&DAT_001197e0)" identifier (argument_list "(&DAT_001197e0)" ( (pointer_expression "&DAT_001197e0" & identifier) ))) ;) (expression_statement "_DAT_001198f8 = DAT_001104c0;" (assignment_expression "_DAT_001198f8 = DAT_001104c0" identifier = identifier) ;) (expression_statement "_DAT_00119918 = &DAT_001197e0;" (assignment_expression "_DAT_00119918 = &DAT_001197e0" identifier = (pointer_expression "&DAT_001197e0" & identifier)) ;) })) (if_statement "if ((DAT_001195e4._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }" if (parenthesized_expression "((DAT_001195e4._1_1_ & 1) != 0)" ( (binary_expression "(DAT_001195e4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" ( (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }" { (expression_statement "printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);" (call_expression "printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3)" identifier (argument_list "("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3)" ( (string_literal ""[findcall] %s: 0x%lx to 0x%lx\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , identifier , identifier ))) ;) })) (if_statement "if (param_2 < param_3) {\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }" if (parenthesized_expression "(param_2 < param_3)" ( (binary_expression "param_2 < param_3" identifier < identifier) )) (compound_statement "{\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }" { (do_statement "do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);" do (compound_statement "{\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    }" { (expression_statement "pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);" (assignment_expression "pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0)" identifier = (cast_expression "(char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0)" ( (binary_expression "(param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0" (parenthesized_expression "(param_2 - *(long *)(DAT_00119af8 + 0x28))" ( (binary_expression "param_2 - *(long *)(DAT_00119af8 + 0x28)" identifier - (pointer_expression "*(long *)(DAT_00119af8 + 0x28)" * (cast_expression "(long *)(DAT_00119af8 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119af8 + 0x28)" ( (binary_expression "DAT_00119af8 + 0x28" identifier + number_literal) ))))) )) + identifier) )))) ;) (if_statement "if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }" if (parenthesized_expression "(*pcVar7 == -5)" ( (binary_expression "*pcVar7 == -5" (pointer_expression "*pcVar7" * identifier) == number_literal) )) (compound_statement "{\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }" { (if_statement "if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }" if (parenthesized_expression "((DAT_001195e4._1_1_ & 1) != 0)" ( (binary_expression "(DAT_001195e4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" ( (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }" { (expression_statement "printf("[findcall]\t0x%lx:calls",param_2);" (call_expression "printf("[findcall]\t0x%lx:calls",param_2)" identifier (argument_list "("[findcall]\t0x%lx:calls",param_2)" ( (string_literal ""[findcall]\t0x%lx:calls"" " string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "iVar1 = FUN_0010d6f0(pcVar7[1]);" (assignment_expression "iVar1 = FUN_0010d6f0(pcVar7[1])" identifier = (call_expression "FUN_0010d6f0(pcVar7[1])" identifier (argument_list "(pcVar7[1])" ( (subscript_expression "pcVar7[1]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }" if (parenthesized_expression "((iVar1 == 0) || (iVar1 == 0xd))" ( (binary_expression "(iVar1 == 0) || (iVar1 == 0xd)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar1 == 0xd)" ( (binary_expression "iVar1 == 0xd" identifier == number_literal) ))) )) (compound_statement "{\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }" { (expression_statement "lVar8 = FUN_0010d7f0(pcVar7 + 1);" (assignment_expression "lVar8 = FUN_0010d7f0(pcVar7 + 1)" identifier = (call_expression "FUN_0010d7f0(pcVar7 + 1)" identifier (argument_list "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar8 = lVar8 + 1;" (assignment_expression "lVar8 = lVar8 + 1" identifier = (binary_expression "lVar8 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar7 + lVar8;" (assignment_expression "pcVar7 = pcVar7 + lVar8" identifier = (binary_expression "pcVar7 + lVar8" identifier + identifier)) ;) (expression_statement "uVar2 = FUN_0010d6f0(*pcVar7);" (assignment_expression "uVar2 = FUN_0010d6f0(*pcVar7)" identifier = (call_expression "FUN_0010d6f0(*pcVar7)" identifier (argument_list "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )))) ;) (if_statement "if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;" if (parenthesized_expression "((DAT_001195e4._1_1_ & 1) == 0)" ( (binary_expression "(DAT_001195e4._1_1_ & 1) == 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" ( (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0010d924;" goto statement_identifier ;)) (expression_statement "uVar5 = FUN_0010d580(iVar1);" (assignment_expression "uVar5 = FUN_0010d580(iVar1)" identifier = (call_expression "FUN_0010d580(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "printf("\tfirst operand is %s",uVar5);" (call_expression "printf("\tfirst operand is %s",uVar5)" identifier (argument_list "("\tfirst operand is %s",uVar5)" ( (string_literal ""\tfirst operand is %s"" " escape_sequence string_content ") , identifier ))) ;) (expression_statement "uVar5 = FUN_0010d580(uVar2);" (assignment_expression "uVar5 = FUN_0010d580(uVar2)" identifier = (call_expression "FUN_0010d580(uVar2)" identifier (argument_list "(uVar2)" ( identifier )))) ;) (expression_statement "printf("\tsecond operand is %s\n",uVar5);" (call_expression "printf("\tsecond operand is %s\n",uVar5)" identifier (argument_list "("\tsecond operand is %s\n",uVar5)" ( (string_literal ""\tsecond operand is %s\n"" " escape_sequence string_content escape_sequence ") , identifier ))) ;) (if_statement "if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }" if (parenthesized_expression "(uVar2 < 0x15)" ( (binary_expression "uVar2 < 0x15" identifier < number_literal) )) (compound_statement "{\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }" { (expression_statement "uVar3 = 1L << ((byte)uVar2 & 0x3f);" (assignment_expression "uVar3 = 1L << ((byte)uVar2 & 0x3f)" identifier = (binary_expression "1L << ((byte)uVar2 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar2 & 0x3f)" ( (binary_expression "(byte)uVar2 & 0x3f" (cast_expression "(byte)uVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;" if (parenthesized_expression "((uVar3 & 0x151508) == 0)" ( (binary_expression "(uVar3 & 0x151508) == 0" (parenthesized_expression "(uVar3 & 0x151508)" ( (binary_expression "uVar3 & 0x151508" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0010d93e;" goto statement_identifier ;)) (goto_statement "goto LAB_0010db04;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_0010da28;" goto statement_identifier ;) })) (expression_statement "iVar1 = FUN_0010d6f0(pcVar7[1]);" (assignment_expression "iVar1 = FUN_0010d6f0(pcVar7[1])" identifier = (call_expression "FUN_0010d6f0(pcVar7[1])" identifier (argument_list "(pcVar7[1])" ( (subscript_expression "pcVar7[1]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }" if (parenthesized_expression "((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd))" ( (binary_expression "(iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar8 = 1, iVar1 == 0xd)" ( (comma_expression "lVar8 = 1, iVar1 == 0xd" (assignment_expression "lVar8 = 1" identifier = number_literal) , (binary_expression "iVar1 == 0xd" identifier == number_literal)) ))) )) (compound_statement "{\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }" { (expression_statement "lVar8 = FUN_0010d7f0(pcVar7 + 1);" (assignment_expression "lVar8 = FUN_0010d7f0(pcVar7 + 1)" identifier = (call_expression "FUN_0010d7f0(pcVar7 + 1)" identifier (argument_list "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar8 = lVar8 + 1;" (assignment_expression "lVar8 = lVar8 + 1" identifier = (binary_expression "lVar8 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar7 + lVar8;" (assignment_expression "pcVar7 = pcVar7 + lVar8" identifier = (binary_expression "pcVar7 + lVar8" identifier + identifier)) ;) (expression_statement "uVar2 = FUN_0010d6f0(*pcVar7);" (assignment_expression "uVar2 = FUN_0010d6f0(*pcVar7)" identifier = (call_expression "FUN_0010d6f0(*pcVar7)" identifier (argument_list "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )))) ;) (labeled_statement "LAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;" statement_identifier : (if_statement "if (0x14 < uVar2) goto LAB_0010d8b8;" if (parenthesized_expression "(0x14 < uVar2)" ( (binary_expression "0x14 < uVar2" number_literal < identifier) )) (goto_statement "goto LAB_0010d8b8;" goto statement_identifier ;))) (expression_statement "uVar3 = 1L << ((byte)uVar2 & 0x3f);" (assignment_expression "uVar3 = 1L << ((byte)uVar2 & 0x3f)" identifier = (binary_expression "1L << ((byte)uVar2 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar2 & 0x3f)" ( (binary_expression "(byte)uVar2 & 0x3f" (cast_expression "(byte)uVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }" if (parenthesized_expression "((uVar3 & 0x151508) != 0)" ( (binary_expression "(uVar3 & 0x151508) != 0" (parenthesized_expression "(uVar3 & 0x151508)" ( (binary_expression "uVar3 & 0x151508" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }" { (labeled_statement "LAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;" statement_identifier : (expression_statement "puVar4 = (ulong *)&DAT_001197e0;" (assignment_expression "puVar4 = (ulong *)&DAT_001197e0" identifier = (cast_expression "(ulong *)&DAT_001197e0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_001197e0" & identifier))) ;)) (goto_statement "goto LAB_0010db0d;" goto statement_identifier ;) })) (labeled_statement "LAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }" statement_identifier : (if_statement "if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }" if (parenthesized_expression "((uVar3 & 0xa8000) != 0)" ( (binary_expression "(uVar3 & 0xa8000) != 0" (parenthesized_expression "(uVar3 & 0xa8000)" ( (binary_expression "uVar3 & 0xa8000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }" { (expression_statement "iVar1 = FUN_0010d6f0(*pcVar7);" (assignment_expression "iVar1 = FUN_0010d6f0(*pcVar7)" identifier = (call_expression "FUN_0010d6f0(*pcVar7)" identifier (argument_list "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )))) ;) (if_statement "if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" if (parenthesized_expression "(iVar1 == 0x11)" ( (binary_expression "iVar1 == 0x11" identifier == number_literal) )) (compound_statement "{\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }" { (expression_statement "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);" (assignment_expression "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1)" identifier = (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1)" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))" ( (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58)" * (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58)" * (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x58)" ( (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x58" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" * (cast_expression "(long *)(DAT_00119ad8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119ad8 + 8)" ( (binary_expression "DAT_00119ad8 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar3 = lVar6 + 2 + param_2;" (assignment_expression "uVar3 = lVar6 + 2 + param_2" identifier = (binary_expression "lVar6 + 2 + param_2" (binary_expression "lVar6 + 2" identifier + number_literal) + identifier)) ;) }) (else_clause "else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" else (if_statement "if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" if (parenthesized_expression "(iVar1 == 0x13)" ( (binary_expression "iVar1 == 0x13" identifier == number_literal) )) (compound_statement "{\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }" { (expression_statement "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();" (assignment_expression "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))()" identifier = (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))()" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))" ( (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40)" * (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40)" * (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x40)" ( (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x40" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" * (cast_expression "(long *)(DAT_00119ad8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119ad8 + 8)" ( (binary_expression "DAT_00119ad8 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar3 = lVar6 + 4 + param_2;" (assignment_expression "uVar3 = lVar6 + 4 + param_2" identifier = (binary_expression "lVar6 + 4 + param_2" (binary_expression "lVar6 + 4" identifier + number_literal) + identifier)) ;) }) (else_clause "else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" else (if_statement "if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" if (parenthesized_expression "(iVar1 == 0xf)" ( (binary_expression "iVar1 == 0xf" identifier == number_literal) )) (compound_statement "{\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }" { (expression_statement "uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;" (assignment_expression "uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2" identifier = (binary_expression "(long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2" (cast_expression "(long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)((byte)(pcVar7[1] + 0x80) - 0x7f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((byte)(pcVar7[1] + 0x80) - 0x7f)" ( (binary_expression "(byte)(pcVar7[1] + 0x80) - 0x7f" (call_expression "(byte)(pcVar7[1] + 0x80)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pcVar7[1] + 0x80)" ( (binary_expression "pcVar7[1] + 0x80" (subscript_expression "pcVar7[1]" identifier [ number_literal ]) + number_literal) ))) - number_literal) )))) + identifier)) ;) }) (else_clause "else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" else (compound_statement "{\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" { (expression_statement "fwrite("[reladdr] not relative address\n",1,0x1f,stderr);" (call_expression "fwrite("[reladdr] not relative address\n",1,0x1f,stderr)" identifier (argument_list "("[reladdr] not relative address\n",1,0x1f,stderr)" ( (string_literal ""[reladdr] not relative address\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) (expression_statement "uVar3 = param_2;" (assignment_expression "uVar3 = param_2" identifier = identifier) ;) }))))))) (expression_statement "iVar1 = FUN_0010b480(uVar3 & 0xffffffff);" (assignment_expression "iVar1 = FUN_0010b480(uVar3 & 0xffffffff)" identifier = (call_expression "FUN_0010b480(uVar3 & 0xffffffff)" identifier (argument_list "(uVar3 & 0xffffffff)" ( (binary_expression "uVar3 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }" if (parenthesized_expression "((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0))" ( (binary_expression "(iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "(puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)" ( (comma_expression "puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0" (assignment_expression "puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3)" identifier = (cast_expression "(ulong *)FUN_0010c540(&DAT_00119b30,uVar3)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010c540(&DAT_00119b30,uVar3)" identifier (argument_list "(&DAT_00119b30,uVar3)" ( (pointer_expression "&DAT_00119b30" & identifier) , identifier ))))) , (binary_expression "puVar4 != (ulong *)0x0" identifier != (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }" { (if_statement "if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }" if (parenthesized_expression "((DAT_001195e4._1_1_ & 1) == 0)" ( (binary_expression "(DAT_001195e4._1_1_ & 1) == 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" ( (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }" { (if_statement "if (*puVar4 != uVar3) goto LAB_0010d8b8;" if (parenthesized_expression "(*puVar4 != uVar3)" ( (binary_expression "*puVar4 != uVar3" (pointer_expression "*puVar4" * identifier) != identifier) )) (goto_statement "goto LAB_0010d8b8;" goto statement_identifier ;)) }) (else_clause "else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }" else (compound_statement "{\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }" { (expression_statement "printf("[findcall]\tdestpc 0x%lx",uVar3);" (call_expression "printf("[findcall]\tdestpc 0x%lx",uVar3)" identifier (argument_list "("[findcall]\tdestpc 0x%lx",uVar3)" ( (string_literal ""[findcall]\tdestpc 0x%lx"" " string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "printf(" child->name %s",puVar4[2]);" (call_expression "printf(" child->name %s",puVar4[2])" identifier (argument_list "(" child->name %s",puVar4[2])" ( (string_literal "" child->name %s"" " string_content ") , (subscript_expression "puVar4[2]" identifier [ number_literal ]) ))) ;) (expression_statement "printf(" child->addr 0x%lx\n",*puVar4);" (call_expression "printf(" child->addr 0x%lx\n",*puVar4)" identifier (argument_list "(" child->addr 0x%lx\n",*puVar4)" ( (string_literal "" child->addr 0x%lx\n"" " string_content escape_sequence ") , (pointer_expression "*puVar4" * identifier) ))) ;) (if_statement "if (*puVar4 != uVar3) goto LAB_0010da28;" if (parenthesized_expression "(*puVar4 != uVar3)" ( (binary_expression "*puVar4 != uVar3" (pointer_expression "*puVar4" * identifier) != identifier) )) (goto_statement "goto LAB_0010da28;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);" statement_identifier : (expression_statement "FUN_00104520(param_1,puVar4,0);" (call_expression "FUN_00104520(param_1,puVar4,0)" identifier (argument_list "(param_1,puVar4,0)" ( identifier , identifier , number_literal ))) ;)) (expression_statement "lVar6 = FUN_0010d7f0(pcVar7);" (assignment_expression "lVar6 = FUN_0010d7f0(pcVar7)" identifier = (call_expression "FUN_0010d7f0(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "lVar8 = lVar8 + lVar6;" (assignment_expression "lVar8 = lVar8 + lVar6" identifier = (binary_expression "lVar8 + lVar6" identifier + identifier)) ;) (goto_statement "goto LAB_0010d8be;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }" statement_identifier : (if_statement "if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }" if (parenthesized_expression "((DAT_001195e4._1_1_ & 1) != 0)" ( (binary_expression "(DAT_001195e4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" ( (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            puts("[findcall]\tbut it\'s a botch");\n          }" { (expression_statement "puts("[findcall]\tbut it\'s a botch");" (call_expression "puts("[findcall]\tbut it\'s a botch")" identifier (argument_list "("[findcall]\tbut it\'s a botch")" ( (string_literal ""[findcall]\tbut it\'s a botch"" " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) }))) (goto_statement "goto LAB_0010d8b8;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }" else (compound_statement "{\nLAB_0010d8b8:\n        lVar8 = 1;\n      }" { (labeled_statement "LAB_0010d8b8:\n        lVar8 = 1;" statement_identifier : (expression_statement "lVar8 = 1;" (assignment_expression "lVar8 = 1" identifier = number_literal) ;)) }))) (labeled_statement "LAB_0010d8be:\n      param_2 = param_2 + lVar8;" statement_identifier : (expression_statement "param_2 = param_2 + lVar8;" (assignment_expression "param_2 = param_2 + lVar8" identifier = (binary_expression "param_2 + lVar8" identifier + identifier)) ;)) }) while (parenthesized_expression "(param_2 < param_3)" ( (binary_expression "param_2 < param_3" identifier < identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void vax_find_call(Sym *parent,bfd_vma p_lowpc,bfd_vma p_highpc)\n\n{\n  operandenum oVar1;\n  operandenum mode;\n  int iVar2;\n  ulong uVar3;\n  Sym *child;\n  long lVar4;\n  bfd_signed_vma bVar5;\n  char *pcVar6;\n  byte *modep;\n  long lVar7;\n  bfd_vma address;\n  \n  if (vax_find_call::inited == 0) {\n    vax_find_call::inited = 1;\n    sym_init(&indirectchild);\n    indirectchild.cg.prop.fract = DAT_001104c0;\n    indirectchild.cg.cyc.head = &indirectchild;\n  }\n  if ((debug_level._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",parent->name,p_lowpc,p_highpc);\n  }\n  if (p_lowpc < p_highpc) {\n    do {\n      pcVar6 = (char *)((p_lowpc - core_text_sect->vma) + (long)core_text_space);\n      if (*pcVar6 == -5) {\n        if ((debug_level._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",p_lowpc);\n          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n          if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n        if ((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)) {\n          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n          lVar7 = lVar7 + 1;\n          modep = (byte *)(pcVar6 + lVar7);\n          mode = vax_operandmode((uchar *)(ulong)*modep);\nLAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)mode & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar7 = 1;\n      }\nLAB_0010d8be:\n      p_lowpc = p_lowpc + lVar7;\n    } while (p_lowpc < p_highpc);\n  }\n  return;\n}\n\n" (function_definition "void vax_find_call(Sym *parent,bfd_vma p_lowpc,bfd_vma p_highpc)\n\n{\n  operandenum oVar1;\n  operandenum mode;\n  int iVar2;\n  ulong uVar3;\n  Sym *child;\n  long lVar4;\n  bfd_signed_vma bVar5;\n  char *pcVar6;\n  byte *modep;\n  long lVar7;\n  bfd_vma address;\n  \n  if (vax_find_call::inited == 0) {\n    vax_find_call::inited = 1;\n    sym_init(&indirectchild);\n    indirectchild.cg.prop.fract = DAT_001104c0;\n    indirectchild.cg.cyc.head = &indirectchild;\n  }\n  if ((debug_level._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",parent->name,p_lowpc,p_highpc);\n  }\n  if (p_lowpc < p_highpc) {\n    do {\n      pcVar6 = (char *)((p_lowpc - core_text_sect->vma) + (long)core_text_space);\n      if (*pcVar6 == -5) {\n        if ((debug_level._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",p_lowpc);\n          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n          if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n        if ((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)) {\n          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n          lVar7 = lVar7 + 1;\n          modep = (byte *)(pcVar6 + lVar7);\n          mode = vax_operandmode((uchar *)(ulong)*modep);\nLAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)mode & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar7 = 1;\n      }\nLAB_0010d8be:\n      p_lowpc = p_lowpc + lVar7;\n    } while (p_lowpc < p_highpc);\n  }\n  return;\n}" primitive_type (function_declarator "vax_find_call(Sym *parent,bfd_vma p_lowpc,bfd_vma p_highpc)" identifier (parameter_list "(Sym *parent,bfd_vma p_lowpc,bfd_vma p_highpc)" ( (parameter_declaration "Sym *parent" type_identifier (pointer_declarator "*parent" * identifier)) , (parameter_declaration "bfd_vma p_lowpc" type_identifier identifier) , (parameter_declaration "bfd_vma p_highpc" type_identifier identifier) ))) (compound_statement "{\n  operandenum oVar1;\n  operandenum mode;\n  int iVar2;\n  ulong uVar3;\n  Sym *child;\n  long lVar4;\n  bfd_signed_vma bVar5;\n  char *pcVar6;\n  byte *modep;\n  long lVar7;\n  bfd_vma address;\n  \n  if (vax_find_call::inited == 0) {\n    vax_find_call::inited = 1;\n    sym_init(&indirectchild);\n    indirectchild.cg.prop.fract = DAT_001104c0;\n    indirectchild.cg.cyc.head = &indirectchild;\n  }\n  if ((debug_level._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",parent->name,p_lowpc,p_highpc);\n  }\n  if (p_lowpc < p_highpc) {\n    do {\n      pcVar6 = (char *)((p_lowpc - core_text_sect->vma) + (long)core_text_space);\n      if (*pcVar6 == -5) {\n        if ((debug_level._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",p_lowpc);\n          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n          if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n        if ((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)) {\n          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n          lVar7 = lVar7 + 1;\n          modep = (byte *)(pcVar6 + lVar7);\n          mode = vax_operandmode((uchar *)(ulong)*modep);\nLAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)mode & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar7 = 1;\n      }\nLAB_0010d8be:\n      p_lowpc = p_lowpc + lVar7;\n    } while (p_lowpc < p_highpc);\n  }\n  return;\n}" { (declaration "operandenum oVar1;" type_identifier identifier ;) (declaration "operandenum mode;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "Sym *child;" type_identifier (pointer_declarator "*child" * identifier) ;) (declaration "long lVar4;" (sized_type_specifier "long" long) identifier ;) (declaration "bfd_signed_vma bVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "byte *modep;" type_identifier (pointer_declarator "*modep" * identifier) ;) (declaration "long lVar7;" (sized_type_specifier "long" long) identifier ;) (declaration "bfd_vma address;" type_identifier identifier ;) (if_statement "if (vax_find_call::inited == 0) {\n    vax_find_call::inited = 1;\n    sym_init(&indirectchild);\n    indirectchild.cg.prop.fract = DAT_001104c0;\n    indirectchild.cg.cyc.head = &indirectchild;\n  }" if (parenthesized_expression "(vax_find_call::inited == 0)" ( (binary_expression "vax_find_call::inited == 0" identifier (ERROR "::inited" : : identifier) == number_literal) )) (compound_statement "{\n    vax_find_call::inited = 1;\n    sym_init(&indirectchild);\n    indirectchild.cg.prop.fract = DAT_001104c0;\n    indirectchild.cg.cyc.head = &indirectchild;\n  }" { (labeled_statement "vax_find_call::inited = 1;" statement_identifier : (ERROR ":" :) (expression_statement "inited = 1;" (assignment_expression "inited = 1" identifier = number_literal) ;)) (expression_statement "sym_init(&indirectchild);" (call_expression "sym_init(&indirectchild)" identifier (argument_list "(&indirectchild)" ( (pointer_expression "&indirectchild" & identifier) ))) ;) (expression_statement "indirectchild.cg.prop.fract = DAT_001104c0;" (assignment_expression "indirectchild.cg.prop.fract = DAT_001104c0" (field_expression "indirectchild.cg.prop.fract" (field_expression "indirectchild.cg.prop" (field_expression "indirectchild.cg" identifier . field_identifier) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "indirectchild.cg.cyc.head = &indirectchild;" (assignment_expression "indirectchild.cg.cyc.head = &indirectchild" (field_expression "indirectchild.cg.cyc.head" (field_expression "indirectchild.cg.cyc" (field_expression "indirectchild.cg" identifier . field_identifier) . field_identifier) . field_identifier) = (pointer_expression "&indirectchild" & identifier)) ;) })) (if_statement "if ((debug_level._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",parent->name,p_lowpc,p_highpc);\n  }" if (parenthesized_expression "((debug_level._1_1_ & 1) != 0)" ( (binary_expression "(debug_level._1_1_ & 1) != 0" (parenthesized_expression "(debug_level._1_1_ & 1)" ( (binary_expression "debug_level._1_1_ & 1" (field_expression "debug_level._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",parent->name,p_lowpc,p_highpc);\n  }" { (expression_statement "printf("[findcall] %s: 0x%lx to 0x%lx\n",parent->name,p_lowpc,p_highpc);" (call_expression "printf("[findcall] %s: 0x%lx to 0x%lx\n",parent->name,p_lowpc,p_highpc)" identifier (argument_list "("[findcall] %s: 0x%lx to 0x%lx\n",parent->name,p_lowpc,p_highpc)" ( (string_literal ""[findcall] %s: 0x%lx to 0x%lx\n"" " string_content escape_sequence ") , (field_expression "parent->name" identifier -> field_identifier) , identifier , identifier ))) ;) })) (if_statement "if (p_lowpc < p_highpc) {\n    do {\n      pcVar6 = (char *)((p_lowpc - core_text_sect->vma) + (long)core_text_space);\n      if (*pcVar6 == -5) {\n        if ((debug_level._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",p_lowpc);\n          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n          if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n        if ((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)) {\n          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n          lVar7 = lVar7 + 1;\n          modep = (byte *)(pcVar6 + lVar7);\n          mode = vax_operandmode((uchar *)(ulong)*modep);\nLAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)mode & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar7 = 1;\n      }\nLAB_0010d8be:\n      p_lowpc = p_lowpc + lVar7;\n    } while (p_lowpc < p_highpc);\n  }" if (parenthesized_expression "(p_lowpc < p_highpc)" ( (binary_expression "p_lowpc < p_highpc" identifier < identifier) )) (compound_statement "{\n    do {\n      pcVar6 = (char *)((p_lowpc - core_text_sect->vma) + (long)core_text_space);\n      if (*pcVar6 == -5) {\n        if ((debug_level._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",p_lowpc);\n          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n          if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n        if ((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)) {\n          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n          lVar7 = lVar7 + 1;\n          modep = (byte *)(pcVar6 + lVar7);\n          mode = vax_operandmode((uchar *)(ulong)*modep);\nLAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)mode & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar7 = 1;\n      }\nLAB_0010d8be:\n      p_lowpc = p_lowpc + lVar7;\n    } while (p_lowpc < p_highpc);\n  }" { (do_statement "do {\n      pcVar6 = (char *)((p_lowpc - core_text_sect->vma) + (long)core_text_space);\n      if (*pcVar6 == -5) {\n        if ((debug_level._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",p_lowpc);\n          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n          if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n        if ((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)) {\n          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n          lVar7 = lVar7 + 1;\n          modep = (byte *)(pcVar6 + lVar7);\n          mode = vax_operandmode((uchar *)(ulong)*modep);\nLAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)mode & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar7 = 1;\n      }\nLAB_0010d8be:\n      p_lowpc = p_lowpc + lVar7;\n    } while (p_lowpc < p_highpc);" do (compound_statement "{\n      pcVar6 = (char *)((p_lowpc - core_text_sect->vma) + (long)core_text_space);\n      if (*pcVar6 == -5) {\n        if ((debug_level._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",p_lowpc);\n          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n          if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n        if ((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)) {\n          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n          lVar7 = lVar7 + 1;\n          modep = (byte *)(pcVar6 + lVar7);\n          mode = vax_operandmode((uchar *)(ulong)*modep);\nLAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)mode & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar7 = 1;\n      }\nLAB_0010d8be:\n      p_lowpc = p_lowpc + lVar7;\n    }" { (expression_statement "pcVar6 = (char *)((p_lowpc - core_text_sect->vma) + (long)core_text_space);" (assignment_expression "pcVar6 = (char *)((p_lowpc - core_text_sect->vma) + (long)core_text_space)" identifier = (cast_expression "(char *)((p_lowpc - core_text_sect->vma) + (long)core_text_space)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((p_lowpc - core_text_sect->vma) + (long)core_text_space)" ( (binary_expression "(p_lowpc - core_text_sect->vma) + (long)core_text_space" (parenthesized_expression "(p_lowpc - core_text_sect->vma)" ( (binary_expression "p_lowpc - core_text_sect->vma" identifier - (field_expression "core_text_sect->vma" identifier -> field_identifier)) )) + (cast_expression "(long)core_text_space" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if (*pcVar6 == -5) {\n        if ((debug_level._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",p_lowpc);\n          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n          if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n        if ((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)) {\n          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n          lVar7 = lVar7 + 1;\n          modep = (byte *)(pcVar6 + lVar7);\n          mode = vax_operandmode((uchar *)(ulong)*modep);\nLAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)mode & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar7 = 1;\n      }" if (parenthesized_expression "(*pcVar6 == -5)" ( (binary_expression "*pcVar6 == -5" (pointer_expression "*pcVar6" * identifier) == number_literal) )) (compound_statement "{\n        if ((debug_level._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",p_lowpc);\n          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n          if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n        if ((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)) {\n          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n          lVar7 = lVar7 + 1;\n          modep = (byte *)(pcVar6 + lVar7);\n          mode = vax_operandmode((uchar *)(ulong)*modep);\nLAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)mode & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }" { (if_statement "if ((debug_level._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",p_lowpc);\n          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n          if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }" if (parenthesized_expression "((debug_level._1_1_ & 1) != 0)" ( (binary_expression "(debug_level._1_1_ & 1) != 0" (parenthesized_expression "(debug_level._1_1_ & 1)" ( (binary_expression "debug_level._1_1_ & 1" (field_expression "debug_level._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          printf("[findcall]\t0x%lx:calls",p_lowpc);\n          oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);\n          if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }" { (expression_statement "printf("[findcall]\t0x%lx:calls",p_lowpc);" (call_expression "printf("[findcall]\t0x%lx:calls",p_lowpc)" identifier (argument_list "("[findcall]\t0x%lx:calls",p_lowpc)" ( (string_literal ""[findcall]\t0x%lx:calls"" " string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);" (assignment_expression "oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1])" identifier = (call_expression "vax_operandmode((uchar *)(ulong)(byte)pcVar6[1])" identifier (argument_list "((uchar *)(ulong)(byte)pcVar6[1])" ( (cast_expression "(uchar *)(ulong)(byte)pcVar6[1]" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)(byte)pcVar6[1]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar6[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar6[1]" identifier [ number_literal ])))) )))) ;) (if_statement "if ((oVar1 == literal) || (oVar1 == immediate)) {\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }" if (parenthesized_expression "((oVar1 == literal) || (oVar1 == immediate))" ( (binary_expression "(oVar1 == literal) || (oVar1 == immediate)" (parenthesized_expression "(oVar1 == literal)" ( (binary_expression "oVar1 == literal" identifier == identifier) )) || (parenthesized_expression "(oVar1 == immediate)" ( (binary_expression "oVar1 == immediate" identifier == identifier) ))) )) (compound_statement "{\n            lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n            lVar7 = lVar7 + 1;\n            modep = (byte *)(pcVar6 + lVar7);\n            mode = vax_operandmode((uchar *)(ulong)*modep);\n            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;\n            pcVar6 = vax_operandname(oVar1);\n            printf("\tfirst operand is %s",pcVar6);\n            pcVar6 = vax_operandname(mode);\n            printf("\tsecond operand is %s\n",pcVar6);\n            if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }" { (expression_statement "lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));" (assignment_expression "lVar7 = vax_operandlength((uchar *)(pcVar6 + 1))" identifier = (call_expression "vax_operandlength((uchar *)(pcVar6 + 1))" identifier (argument_list "((uchar *)(pcVar6 + 1))" ( (cast_expression "(uchar *)(pcVar6 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 1)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) ))) )))) ;) (expression_statement "lVar7 = lVar7 + 1;" (assignment_expression "lVar7 = lVar7 + 1" identifier = (binary_expression "lVar7 + 1" identifier + number_literal)) ;) (expression_statement "modep = (byte *)(pcVar6 + lVar7);" (assignment_expression "modep = (byte *)(pcVar6 + lVar7)" identifier = (cast_expression "(byte *)(pcVar6 + lVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + lVar7)" ( (binary_expression "pcVar6 + lVar7" identifier + identifier) )))) ;) (expression_statement "mode = vax_operandmode((uchar *)(ulong)*modep);" (assignment_expression "mode = vax_operandmode((uchar *)(ulong)*modep)" identifier = (call_expression "vax_operandmode((uchar *)(ulong)*modep)" identifier (argument_list "((uchar *)(ulong)*modep)" ( (binary_expression "(uchar *)(ulong)*modep" (cast_expression "(uchar *)(ulong)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * identifier) )))) ;) (if_statement "if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;" if (parenthesized_expression "((debug_level._1_1_ & 1) == 0)" ( (binary_expression "(debug_level._1_1_ & 1) == 0" (parenthesized_expression "(debug_level._1_1_ & 1)" ( (binary_expression "debug_level._1_1_ & 1" (field_expression "debug_level._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0010d924;" goto statement_identifier ;)) (expression_statement "pcVar6 = vax_operandname(oVar1);" (assignment_expression "pcVar6 = vax_operandname(oVar1)" identifier = (call_expression "vax_operandname(oVar1)" identifier (argument_list "(oVar1)" ( identifier )))) ;) (expression_statement "printf("\tfirst operand is %s",pcVar6);" (call_expression "printf("\tfirst operand is %s",pcVar6)" identifier (argument_list "("\tfirst operand is %s",pcVar6)" ( (string_literal ""\tfirst operand is %s"" " escape_sequence string_content ") , identifier ))) ;) (expression_statement "pcVar6 = vax_operandname(mode);" (assignment_expression "pcVar6 = vax_operandname(mode)" identifier = (call_expression "vax_operandname(mode)" identifier (argument_list "(mode)" ( identifier )))) ;) (expression_statement "printf("\tsecond operand is %s\n",pcVar6);" (call_expression "printf("\tsecond operand is %s\n",pcVar6)" identifier (argument_list "("\tsecond operand is %s\n",pcVar6)" ( (string_literal ""\tsecond operand is %s\n"" " escape_sequence string_content escape_sequence ") , identifier ))) ;) (if_statement "if (mode < (longreldef|indexed)) {\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }" if (parenthesized_expression "(mode < (longreldef|indexed))" ( (binary_expression "mode < (longreldef|indexed)" identifier < (parenthesized_expression "(longreldef|indexed)" ( (binary_expression "longreldef|indexed" identifier | identifier) ))) )) (compound_statement "{\n              uVar3 = 1L << ((byte)mode & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }" { (expression_statement "uVar3 = 1L << ((byte)mode & 0x3f);" (assignment_expression "uVar3 = 1L << ((byte)mode & 0x3f)" identifier = (binary_expression "1L << ((byte)mode & 0x3f)" number_literal << (parenthesized_expression "((byte)mode & 0x3f)" ( (binary_expression "(byte)mode & 0x3f" (cast_expression "(byte)mode" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;" if (parenthesized_expression "((uVar3 & 0x151508) == 0)" ( (binary_expression "(uVar3 & 0x151508) == 0" (parenthesized_expression "(uVar3 & 0x151508)" ( (binary_expression "uVar3 & 0x151508" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0010d93e;" goto statement_identifier ;)) (goto_statement "goto LAB_0010db04;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_0010da28;" goto statement_identifier ;) })) (expression_statement "oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1]);" (assignment_expression "oVar1 = vax_operandmode((uchar *)(ulong)(byte)pcVar6[1])" identifier = (call_expression "vax_operandmode((uchar *)(ulong)(byte)pcVar6[1])" identifier (argument_list "((uchar *)(ulong)(byte)pcVar6[1])" ( (cast_expression "(uchar *)(ulong)(byte)pcVar6[1]" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(ulong)(byte)pcVar6[1]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar6[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar6[1]" identifier [ number_literal ])))) )))) ;) (if_statement "if ((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)) {\n          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n          lVar7 = lVar7 + 1;\n          modep = (byte *)(pcVar6 + lVar7);\n          mode = vax_operandmode((uchar *)(ulong)*modep);\nLAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)mode & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }" if (parenthesized_expression "((oVar1 == literal) || (lVar7 = 1, oVar1 == immediate))" ( (binary_expression "(oVar1 == literal) || (lVar7 = 1, oVar1 == immediate)" (parenthesized_expression "(oVar1 == literal)" ( (binary_expression "oVar1 == literal" identifier == identifier) )) || (parenthesized_expression "(lVar7 = 1, oVar1 == immediate)" ( (comma_expression "lVar7 = 1, oVar1 == immediate" (assignment_expression "lVar7 = 1" identifier = number_literal) , (binary_expression "oVar1 == immediate" identifier == identifier)) ))) )) (compound_statement "{\n          lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));\n          lVar7 = lVar7 + 1;\n          modep = (byte *)(pcVar6 + lVar7);\n          mode = vax_operandmode((uchar *)(ulong)*modep);\nLAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)mode & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }" { (expression_statement "lVar7 = vax_operandlength((uchar *)(pcVar6 + 1));" (assignment_expression "lVar7 = vax_operandlength((uchar *)(pcVar6 + 1))" identifier = (call_expression "vax_operandlength((uchar *)(pcVar6 + 1))" identifier (argument_list "((uchar *)(pcVar6 + 1))" ( (cast_expression "(uchar *)(pcVar6 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 1)" ( (binary_expression "pcVar6 + 1" identifier + number_literal) ))) )))) ;) (expression_statement "lVar7 = lVar7 + 1;" (assignment_expression "lVar7 = lVar7 + 1" identifier = (binary_expression "lVar7 + 1" identifier + number_literal)) ;) (expression_statement "modep = (byte *)(pcVar6 + lVar7);" (assignment_expression "modep = (byte *)(pcVar6 + lVar7)" identifier = (cast_expression "(byte *)(pcVar6 + lVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + lVar7)" ( (binary_expression "pcVar6 + lVar7" identifier + identifier) )))) ;) (expression_statement "mode = vax_operandmode((uchar *)(ulong)*modep);" (assignment_expression "mode = vax_operandmode((uchar *)(ulong)*modep)" identifier = (call_expression "vax_operandmode((uchar *)(ulong)*modep)" identifier (argument_list "((uchar *)(ulong)*modep)" ( (binary_expression "(uchar *)(ulong)*modep" (cast_expression "(uchar *)(ulong)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * identifier) )))) ;) (labeled_statement "LAB_0010d924:\n          if (longreldef < mode) goto LAB_0010d8b8;" statement_identifier : (if_statement "if (longreldef < mode) goto LAB_0010d8b8;" if (parenthesized_expression "(longreldef < mode)" ( (binary_expression "longreldef < mode" identifier < identifier) )) (goto_statement "goto LAB_0010d8b8;" goto statement_identifier ;))) (expression_statement "uVar3 = 1L << ((byte)mode & 0x3f);" (assignment_expression "uVar3 = 1L << ((byte)mode & 0x3f)" identifier = (binary_expression "1L << ((byte)mode & 0x3f)" number_literal << (parenthesized_expression "((byte)mode & 0x3f)" ( (binary_expression "(byte)mode & 0x3f" (cast_expression "(byte)mode" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }" if (parenthesized_expression "((uVar3 & 0x151508) != 0)" ( (binary_expression "(uVar3 & 0x151508) != 0" (parenthesized_expression "(uVar3 & 0x151508)" ( (binary_expression "uVar3 & 0x151508" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0010db04:\n            child = &indirectchild;\n            goto LAB_0010db0d;\n          }" { (labeled_statement "LAB_0010db04:\n            child = &indirectchild;" statement_identifier : (expression_statement "child = &indirectchild;" (assignment_expression "child = &indirectchild" identifier = (pointer_expression "&indirectchild" & identifier)) ;)) (goto_statement "goto LAB_0010db0d;" goto statement_identifier ;) })) (labeled_statement "LAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }" statement_identifier : (if_statement "if ((uVar3 & 0xa8000) != 0) {\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }" if (parenthesized_expression "((uVar3 & 0xa8000) != 0)" ( (binary_expression "(uVar3 & 0xa8000) != 0" (parenthesized_expression "(uVar3 & 0xa8000)" ( (binary_expression "uVar3 & 0xa8000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            oVar1 = vax_operandmode((uchar *)(ulong)*modep);\n            if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }\n            iVar2 = hist_check_address((uint)address);\n            if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }\n          }" { (expression_statement "oVar1 = vax_operandmode((uchar *)(ulong)*modep);" (assignment_expression "oVar1 = vax_operandmode((uchar *)(ulong)*modep)" identifier = (call_expression "vax_operandmode((uchar *)(ulong)*modep)" identifier (argument_list "((uchar *)(ulong)*modep)" ( (binary_expression "(uchar *)(ulong)*modep" (cast_expression "(uchar *)(ulong)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * identifier) )))) ;) (if_statement "if (oVar1 == wordrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }\n            else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }" if (parenthesized_expression "(oVar1 == wordrel)" ( (binary_expression "oVar1 == wordrel" identifier == identifier) )) (compound_statement "{\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);\n              address = bVar5 + 2 + p_lowpc;\n            }" { (expression_statement "bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1);" (assignment_expression "bVar5 = (*core_bfd->xvec->bfd_getx_signed_16)(modep + 1)" identifier = (call_expression "(*core_bfd->xvec->bfd_getx_signed_16)(modep + 1)" (parenthesized_expression "(*core_bfd->xvec->bfd_getx_signed_16)" ( (pointer_expression "*core_bfd->xvec->bfd_getx_signed_16" * (field_expression "core_bfd->xvec->bfd_getx_signed_16" (field_expression "core_bfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(modep + 1)" ( (binary_expression "modep + 1" identifier + number_literal) )))) ;) (expression_statement "address = bVar5 + 2 + p_lowpc;" (assignment_expression "address = bVar5 + 2 + p_lowpc" identifier = (binary_expression "bVar5 + 2 + p_lowpc" (binary_expression "bVar5 + 2" identifier + number_literal) + identifier)) ;) }) (else_clause "else if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }" else (if_statement "if (oVar1 == longrel) {\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }\n            else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }" if (parenthesized_expression "(oVar1 == longrel)" ( (binary_expression "oVar1 == longrel" identifier == identifier) )) (compound_statement "{\n              bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);\n              address = bVar5 + 4 + p_lowpc;\n            }" { (expression_statement "bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1);" (assignment_expression "bVar5 = (*core_bfd->xvec->bfd_getx_signed_32)(modep + 1)" identifier = (call_expression "(*core_bfd->xvec->bfd_getx_signed_32)(modep + 1)" (parenthesized_expression "(*core_bfd->xvec->bfd_getx_signed_32)" ( (pointer_expression "*core_bfd->xvec->bfd_getx_signed_32" * (field_expression "core_bfd->xvec->bfd_getx_signed_32" (field_expression "core_bfd->xvec" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(modep + 1)" ( (binary_expression "modep + 1" identifier + number_literal) )))) ;) (expression_statement "address = bVar5 + 4 + p_lowpc;" (assignment_expression "address = bVar5 + 4 + p_lowpc" identifier = (binary_expression "bVar5 + 4 + p_lowpc" (binary_expression "bVar5 + 4" identifier + number_literal) + identifier)) ;) }) (else_clause "else if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }" else (if_statement "if (oVar1 == byterel) {\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }" if (parenthesized_expression "(oVar1 == byterel)" ( (binary_expression "oVar1 == byterel" identifier == identifier) )) (compound_statement "{\n              address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;\n            }" { (expression_statement "address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc;" (assignment_expression "address = (long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc" identifier = (binary_expression "(long)(int)((byte)(modep[1] + 0x80) - 0x7f) + p_lowpc" (cast_expression "(long)(int)((byte)(modep[1] + 0x80) - 0x7f)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)((byte)(modep[1] + 0x80) - 0x7f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((byte)(modep[1] + 0x80) - 0x7f)" ( (binary_expression "(byte)(modep[1] + 0x80) - 0x7f" (call_expression "(byte)(modep[1] + 0x80)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(modep[1] + 0x80)" ( (binary_expression "modep[1] + 0x80" (subscript_expression "modep[1]" identifier [ number_literal ]) + number_literal) ))) - number_literal) )))) + identifier)) ;) }) (else_clause "else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }" else (compound_statement "{\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              address = p_lowpc;\n            }" { (expression_statement "fwrite("[reladdr] not relative address\n",1,0x1f,stderr);" (call_expression "fwrite("[reladdr] not relative address\n",1,0x1f,stderr)" identifier (argument_list "("[reladdr] not relative address\n",1,0x1f,stderr)" ( (string_literal ""[reladdr] not relative address\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) (expression_statement "address = p_lowpc;" (assignment_expression "address = p_lowpc" identifier = identifier) ;) }))))))) (expression_statement "iVar2 = hist_check_address((uint)address);" (assignment_expression "iVar2 = hist_check_address((uint)address)" identifier = (call_expression "hist_check_address((uint)address)" identifier (argument_list "((uint)address)" ( (cast_expression "(uint)address" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) (if_statement "if ((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)) {\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }" if (parenthesized_expression "((iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0))" ( (binary_expression "(iVar2 != 0) && (child = sym_lookup(&symtab,address), child != (Sym *)0x0)" (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) && (parenthesized_expression "(child = sym_lookup(&symtab,address), child != (Sym *)0x0)" ( (comma_expression "child = sym_lookup(&symtab,address), child != (Sym *)0x0" (assignment_expression "child = sym_lookup(&symtab,address)" identifier = (call_expression "sym_lookup(&symtab,address)" identifier (argument_list "(&symtab,address)" ( (pointer_expression "&symtab" & identifier) , identifier )))) , (binary_expression "child != (Sym *)0x0" identifier != (cast_expression "(Sym *)0x0" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              arc_add(parent,child,0);\n              lVar4 = vax_operandlength(modep);\n              lVar7 = lVar7 + lVar4;\n              goto LAB_0010d8be;\n            }" { (if_statement "if ((debug_level._1_1_ & 1) == 0) {\n                if (child->addr != address) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }" if (parenthesized_expression "((debug_level._1_1_ & 1) == 0)" ( (binary_expression "(debug_level._1_1_ & 1) == 0" (parenthesized_expression "(debug_level._1_1_ & 1)" ( (binary_expression "debug_level._1_1_ & 1" (field_expression "debug_level._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                if (child->addr != address) goto LAB_0010d8b8;\n              }" { (if_statement "if (child->addr != address) goto LAB_0010d8b8;" if (parenthesized_expression "(child->addr != address)" ( (binary_expression "child->addr != address" (field_expression "child->addr" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0010d8b8;" goto statement_identifier ;)) }) (else_clause "else {\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }" else (compound_statement "{\n                printf("[findcall]\tdestpc 0x%lx",address);\n                printf(" child->name %s",child->name);\n                printf(" child->addr 0x%lx\n",child->addr);\n                if (child->addr != address) goto LAB_0010da28;\n              }" { (expression_statement "printf("[findcall]\tdestpc 0x%lx",address);" (call_expression "printf("[findcall]\tdestpc 0x%lx",address)" identifier (argument_list "("[findcall]\tdestpc 0x%lx",address)" ( (string_literal ""[findcall]\tdestpc 0x%lx"" " string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "printf(" child->name %s",child->name);" (call_expression "printf(" child->name %s",child->name)" identifier (argument_list "(" child->name %s",child->name)" ( (string_literal "" child->name %s"" " string_content ") , (field_expression "child->name" identifier -> field_identifier) ))) ;) (expression_statement "printf(" child->addr 0x%lx\n",child->addr);" (call_expression "printf(" child->addr 0x%lx\n",child->addr)" identifier (argument_list "(" child->addr 0x%lx\n",child->addr)" ( (string_literal "" child->addr 0x%lx\n"" " string_content escape_sequence ") , (field_expression "child->addr" identifier -> field_identifier) ))) ;) (if_statement "if (child->addr != address) goto LAB_0010da28;" if (parenthesized_expression "(child->addr != address)" ( (binary_expression "child->addr != address" (field_expression "child->addr" identifier -> field_identifier) != identifier) )) (goto_statement "goto LAB_0010da28;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0010db0d:\n              arc_add(parent,child,0);" statement_identifier : (expression_statement "arc_add(parent,child,0);" (call_expression "arc_add(parent,child,0)" identifier (argument_list "(parent,child,0)" ( identifier , identifier , number_literal ))) ;)) (expression_statement "lVar4 = vax_operandlength(modep);" (assignment_expression "lVar4 = vax_operandlength(modep)" identifier = (call_expression "vax_operandlength(modep)" identifier (argument_list "(modep)" ( identifier )))) ;) (expression_statement "lVar7 = lVar7 + lVar4;" (assignment_expression "lVar7 = lVar7 + lVar4" identifier = (binary_expression "lVar7 + lVar4" identifier + identifier)) ;) (goto_statement "goto LAB_0010d8be;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0010da28:\n          if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }" statement_identifier : (if_statement "if ((debug_level._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }" if (parenthesized_expression "((debug_level._1_1_ & 1) != 0)" ( (binary_expression "(debug_level._1_1_ & 1) != 0" (parenthesized_expression "(debug_level._1_1_ & 1)" ( (binary_expression "debug_level._1_1_ & 1" (field_expression "debug_level._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            puts("[findcall]\tbut it\'s a botch");\n          }" { (expression_statement "puts("[findcall]\tbut it\'s a botch");" (call_expression "puts("[findcall]\tbut it\'s a botch")" identifier (argument_list "("[findcall]\tbut it\'s a botch")" ( (string_literal ""[findcall]\tbut it\'s a botch"" " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) }))) (goto_statement "goto LAB_0010d8b8;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0010d8b8:\n        lVar7 = 1;\n      }" else (compound_statement "{\nLAB_0010d8b8:\n        lVar7 = 1;\n      }" { (labeled_statement "LAB_0010d8b8:\n        lVar7 = 1;" statement_identifier : (expression_statement "lVar7 = 1;" (assignment_expression "lVar7 = 1" identifier = number_literal) ;)) }))) (labeled_statement "LAB_0010d8be:\n      p_lowpc = p_lowpc + lVar7;" statement_identifier : (expression_statement "p_lowpc = p_lowpc + lVar7;" (assignment_expression "p_lowpc = p_lowpc + lVar7" identifier = (binary_expression "p_lowpc + lVar7" identifier + identifier)) ;)) }) while (parenthesized_expression "(p_lowpc < p_highpc)" ( (binary_expression "p_lowpc < p_highpc" identifier < identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0010d870(long param_1,ulong param_2,ulong param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  ulong uVar3;\n  ulong *puVar4;\n  undefined8 uVar5;\n  long lVar6;\n  char *pcVar7;\n  long lVar8;\n  \n  if (DAT_001197c0 == 0) {\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }\n  if ((DAT_001195e4._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }\n  if (param_2 < param_3) {\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }\n  return;\n}\n\n" (function_definition "void FUN_0010d870(long param_1,ulong param_2,ulong param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  ulong uVar3;\n  ulong *puVar4;\n  undefined8 uVar5;\n  long lVar6;\n  char *pcVar7;\n  long lVar8;\n  \n  if (DAT_001197c0 == 0) {\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }\n  if ((DAT_001195e4._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }\n  if (param_2 < param_3) {\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0010d870(long param_1,ulong param_2,ulong param_3)" identifier (parameter_list "(long param_1,ulong param_2,ulong param_3)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "ulong param_3" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  ulong uVar3;\n  ulong *puVar4;\n  undefined8 uVar5;\n  long lVar6;\n  char *pcVar7;\n  long lVar8;\n  \n  if (DAT_001197c0 == 0) {\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }\n  if ((DAT_001195e4._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }\n  if (param_2 < param_3) {\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long lVar6;" (sized_type_specifier "long" long) identifier ;) (declaration "char *pcVar7;" primitive_type (pointer_declarator "*pcVar7" * identifier) ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (if_statement "if (DAT_001197c0 == 0) {\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }" if (parenthesized_expression "(DAT_001197c0 == 0)" ( (binary_expression "DAT_001197c0 == 0" identifier == number_literal) )) (compound_statement "{\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }" { (expression_statement "DAT_001197c0 = 1;" (assignment_expression "DAT_001197c0 = 1" identifier = number_literal) ;) (expression_statement "FUN_0010bfe0(&DAT_001197e0);" (call_expression "FUN_0010bfe0(&DAT_001197e0)" identifier (argument_list "(&DAT_001197e0)" ( (pointer_expression "&DAT_001197e0" & identifier) ))) ;) (expression_statement "_DAT_001198f8 = DAT_001104c0;" (assignment_expression "_DAT_001198f8 = DAT_001104c0" identifier = identifier) ;) (expression_statement "_DAT_00119918 = &DAT_001197e0;" (assignment_expression "_DAT_00119918 = &DAT_001197e0" identifier = (pointer_expression "&DAT_001197e0" & identifier)) ;) })) (if_statement "if ((DAT_001195e4._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }" if (parenthesized_expression "((DAT_001195e4._1_1_ & 1) != 0)" ( (binary_expression "(DAT_001195e4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" ( (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }" { (expression_statement "printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);" (call_expression "printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3)" identifier (argument_list "("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3)" ( (string_literal ""[findcall] %s: 0x%lx to 0x%lx\n"" " string_content escape_sequence ") , (pointer_expression "*(undefined8 *)(param_1 + 0x10)" * (cast_expression "(undefined8 *)(param_1 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) , identifier , identifier ))) ;) })) (if_statement "if (param_2 < param_3) {\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }" if (parenthesized_expression "(param_2 < param_3)" ( (binary_expression "param_2 < param_3" identifier < identifier) )) (compound_statement "{\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }" { (do_statement "do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);" do (compound_statement "{\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    }" { (expression_statement "pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);" (assignment_expression "pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0)" identifier = (cast_expression "(char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0)" ( (binary_expression "(param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0" (parenthesized_expression "(param_2 - *(long *)(DAT_00119af8 + 0x28))" ( (binary_expression "param_2 - *(long *)(DAT_00119af8 + 0x28)" identifier - (pointer_expression "*(long *)(DAT_00119af8 + 0x28)" * (cast_expression "(long *)(DAT_00119af8 + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119af8 + 0x28)" ( (binary_expression "DAT_00119af8 + 0x28" identifier + number_literal) ))))) )) + identifier) )))) ;) (if_statement "if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }" if (parenthesized_expression "(*pcVar7 == -5)" ( (binary_expression "*pcVar7 == -5" (pointer_expression "*pcVar7" * identifier) == number_literal) )) (compound_statement "{\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }" { (if_statement "if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }" if (parenthesized_expression "((DAT_001195e4._1_1_ & 1) != 0)" ( (binary_expression "(DAT_001195e4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" ( (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }" { (expression_statement "printf("[findcall]\t0x%lx:calls",param_2);" (call_expression "printf("[findcall]\t0x%lx:calls",param_2)" identifier (argument_list "("[findcall]\t0x%lx:calls",param_2)" ( (string_literal ""[findcall]\t0x%lx:calls"" " string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "iVar1 = FUN_0010d6f0(pcVar7[1]);" (assignment_expression "iVar1 = FUN_0010d6f0(pcVar7[1])" identifier = (call_expression "FUN_0010d6f0(pcVar7[1])" identifier (argument_list "(pcVar7[1])" ( (subscript_expression "pcVar7[1]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }" if (parenthesized_expression "((iVar1 == 0) || (iVar1 == 0xd))" ( (binary_expression "(iVar1 == 0) || (iVar1 == 0xd)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar1 == 0xd)" ( (binary_expression "iVar1 == 0xd" identifier == number_literal) ))) )) (compound_statement "{\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }" { (expression_statement "lVar8 = FUN_0010d7f0(pcVar7 + 1);" (assignment_expression "lVar8 = FUN_0010d7f0(pcVar7 + 1)" identifier = (call_expression "FUN_0010d7f0(pcVar7 + 1)" identifier (argument_list "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar8 = lVar8 + 1;" (assignment_expression "lVar8 = lVar8 + 1" identifier = (binary_expression "lVar8 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar7 + lVar8;" (assignment_expression "pcVar7 = pcVar7 + lVar8" identifier = (binary_expression "pcVar7 + lVar8" identifier + identifier)) ;) (expression_statement "uVar2 = FUN_0010d6f0(*pcVar7);" (assignment_expression "uVar2 = FUN_0010d6f0(*pcVar7)" identifier = (call_expression "FUN_0010d6f0(*pcVar7)" identifier (argument_list "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )))) ;) (if_statement "if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;" if (parenthesized_expression "((DAT_001195e4._1_1_ & 1) == 0)" ( (binary_expression "(DAT_001195e4._1_1_ & 1) == 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" ( (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0010d924;" goto statement_identifier ;)) (expression_statement "uVar5 = FUN_0010d580(iVar1);" (assignment_expression "uVar5 = FUN_0010d580(iVar1)" identifier = (call_expression "FUN_0010d580(iVar1)" identifier (argument_list "(iVar1)" ( identifier )))) ;) (expression_statement "printf("\tfirst operand is %s",uVar5);" (call_expression "printf("\tfirst operand is %s",uVar5)" identifier (argument_list "("\tfirst operand is %s",uVar5)" ( (string_literal ""\tfirst operand is %s"" " escape_sequence string_content ") , identifier ))) ;) (expression_statement "uVar5 = FUN_0010d580(uVar2);" (assignment_expression "uVar5 = FUN_0010d580(uVar2)" identifier = (call_expression "FUN_0010d580(uVar2)" identifier (argument_list "(uVar2)" ( identifier )))) ;) (expression_statement "printf("\tsecond operand is %s\n",uVar5);" (call_expression "printf("\tsecond operand is %s\n",uVar5)" identifier (argument_list "("\tsecond operand is %s\n",uVar5)" ( (string_literal ""\tsecond operand is %s\n"" " escape_sequence string_content escape_sequence ") , identifier ))) ;) (if_statement "if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }" if (parenthesized_expression "(uVar2 < 0x15)" ( (binary_expression "uVar2 < 0x15" identifier < number_literal) )) (compound_statement "{\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }" { (expression_statement "uVar3 = 1L << ((byte)uVar2 & 0x3f);" (assignment_expression "uVar3 = 1L << ((byte)uVar2 & 0x3f)" identifier = (binary_expression "1L << ((byte)uVar2 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar2 & 0x3f)" ( (binary_expression "(byte)uVar2 & 0x3f" (cast_expression "(byte)uVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;" if (parenthesized_expression "((uVar3 & 0x151508) == 0)" ( (binary_expression "(uVar3 & 0x151508) == 0" (parenthesized_expression "(uVar3 & 0x151508)" ( (binary_expression "uVar3 & 0x151508" identifier & number_literal) )) == number_literal) )) (goto_statement "goto LAB_0010d93e;" goto statement_identifier ;)) (goto_statement "goto LAB_0010db04;" goto statement_identifier ;) })) })) (goto_statement "goto LAB_0010da28;" goto statement_identifier ;) })) (expression_statement "iVar1 = FUN_0010d6f0(pcVar7[1]);" (assignment_expression "iVar1 = FUN_0010d6f0(pcVar7[1])" identifier = (call_expression "FUN_0010d6f0(pcVar7[1])" identifier (argument_list "(pcVar7[1])" ( (subscript_expression "pcVar7[1]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }" if (parenthesized_expression "((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd))" ( (binary_expression "(iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)" (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) || (parenthesized_expression "(lVar8 = 1, iVar1 == 0xd)" ( (comma_expression "lVar8 = 1, iVar1 == 0xd" (assignment_expression "lVar8 = 1" identifier = number_literal) , (binary_expression "iVar1 == 0xd" identifier == number_literal)) ))) )) (compound_statement "{\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }" { (expression_statement "lVar8 = FUN_0010d7f0(pcVar7 + 1);" (assignment_expression "lVar8 = FUN_0010d7f0(pcVar7 + 1)" identifier = (call_expression "FUN_0010d7f0(pcVar7 + 1)" identifier (argument_list "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar8 = lVar8 + 1;" (assignment_expression "lVar8 = lVar8 + 1" identifier = (binary_expression "lVar8 + 1" identifier + number_literal)) ;) (expression_statement "pcVar7 = pcVar7 + lVar8;" (assignment_expression "pcVar7 = pcVar7 + lVar8" identifier = (binary_expression "pcVar7 + lVar8" identifier + identifier)) ;) (expression_statement "uVar2 = FUN_0010d6f0(*pcVar7);" (assignment_expression "uVar2 = FUN_0010d6f0(*pcVar7)" identifier = (call_expression "FUN_0010d6f0(*pcVar7)" identifier (argument_list "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )))) ;) (labeled_statement "LAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;" statement_identifier : (if_statement "if (0x14 < uVar2) goto LAB_0010d8b8;" if (parenthesized_expression "(0x14 < uVar2)" ( (binary_expression "0x14 < uVar2" number_literal < identifier) )) (goto_statement "goto LAB_0010d8b8;" goto statement_identifier ;))) (expression_statement "uVar3 = 1L << ((byte)uVar2 & 0x3f);" (assignment_expression "uVar3 = 1L << ((byte)uVar2 & 0x3f)" identifier = (binary_expression "1L << ((byte)uVar2 & 0x3f)" number_literal << (parenthesized_expression "((byte)uVar2 & 0x3f)" ( (binary_expression "(byte)uVar2 & 0x3f" (cast_expression "(byte)uVar2" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }" if (parenthesized_expression "((uVar3 & 0x151508) != 0)" ( (binary_expression "(uVar3 & 0x151508) != 0" (parenthesized_expression "(uVar3 & 0x151508)" ( (binary_expression "uVar3 & 0x151508" identifier & number_literal) )) != number_literal) )) (compound_statement "{\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }" { (labeled_statement "LAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;" statement_identifier : (expression_statement "puVar4 = (ulong *)&DAT_001197e0;" (assignment_expression "puVar4 = (ulong *)&DAT_001197e0" identifier = (cast_expression "(ulong *)&DAT_001197e0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_001197e0" & identifier))) ;)) (goto_statement "goto LAB_0010db0d;" goto statement_identifier ;) })) (labeled_statement "LAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }" statement_identifier : (if_statement "if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }" if (parenthesized_expression "((uVar3 & 0xa8000) != 0)" ( (binary_expression "(uVar3 & 0xa8000) != 0" (parenthesized_expression "(uVar3 & 0xa8000)" ( (binary_expression "uVar3 & 0xa8000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }" { (expression_statement "iVar1 = FUN_0010d6f0(*pcVar7);" (assignment_expression "iVar1 = FUN_0010d6f0(*pcVar7)" identifier = (call_expression "FUN_0010d6f0(*pcVar7)" identifier (argument_list "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )))) ;) (if_statement "if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" if (parenthesized_expression "(iVar1 == 0x11)" ( (binary_expression "iVar1 == 0x11" identifier == number_literal) )) (compound_statement "{\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }" { (expression_statement "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);" (assignment_expression "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1)" identifier = (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1)" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))" ( (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58)" * (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58)" * (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x58)" ( (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x58" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" * (cast_expression "(long *)(DAT_00119ad8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119ad8 + 8)" ( (binary_expression "DAT_00119ad8 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "(pcVar7 + 1)" ( (binary_expression "pcVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar3 = lVar6 + 2 + param_2;" (assignment_expression "uVar3 = lVar6 + 2 + param_2" identifier = (binary_expression "lVar6 + 2 + param_2" (binary_expression "lVar6 + 2" identifier + number_literal) + identifier)) ;) }) (else_clause "else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" else (if_statement "if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" if (parenthesized_expression "(iVar1 == 0x13)" ( (binary_expression "iVar1 == 0x13" identifier == number_literal) )) (compound_statement "{\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }" { (expression_statement "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();" (assignment_expression "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))()" identifier = (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))()" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))" ( (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40)" * (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40)" * (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x40)" ( (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x40" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" * (cast_expression "(long *)(DAT_00119ad8 + 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00119ad8 + 8)" ( (binary_expression "DAT_00119ad8 + 8" identifier + number_literal) )))) + number_literal) ))))) )) (argument_list "()" ( )))) ;) (expression_statement "uVar3 = lVar6 + 4 + param_2;" (assignment_expression "uVar3 = lVar6 + 4 + param_2" identifier = (binary_expression "lVar6 + 4 + param_2" (binary_expression "lVar6 + 4" identifier + number_literal) + identifier)) ;) }) (else_clause "else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" else (if_statement "if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" if (parenthesized_expression "(iVar1 == 0xf)" ( (binary_expression "iVar1 == 0xf" identifier == number_literal) )) (compound_statement "{\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }" { (expression_statement "uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;" (assignment_expression "uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2" identifier = (binary_expression "(long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2" (cast_expression "(long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (cast_expression "(int)((byte)(pcVar7[1] + 0x80) - 0x7f)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((byte)(pcVar7[1] + 0x80) - 0x7f)" ( (binary_expression "(byte)(pcVar7[1] + 0x80) - 0x7f" (call_expression "(byte)(pcVar7[1] + 0x80)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pcVar7[1] + 0x80)" ( (binary_expression "pcVar7[1] + 0x80" (subscript_expression "pcVar7[1]" identifier [ number_literal ]) + number_literal) ))) - number_literal) )))) + identifier)) ;) }) (else_clause "else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" else (compound_statement "{\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" { (expression_statement "fwrite("[reladdr] not relative address\n",1,0x1f,stderr);" (call_expression "fwrite("[reladdr] not relative address\n",1,0x1f,stderr)" identifier (argument_list "("[reladdr] not relative address\n",1,0x1f,stderr)" ( (string_literal ""[reladdr] not relative address\n"" " string_content escape_sequence ") , number_literal , number_literal , identifier ))) ;) (expression_statement "uVar3 = param_2;" (assignment_expression "uVar3 = param_2" identifier = identifier) ;) }))))))) (expression_statement "iVar1 = FUN_0010b480(uVar3 & 0xffffffff);" (assignment_expression "iVar1 = FUN_0010b480(uVar3 & 0xffffffff)" identifier = (call_expression "FUN_0010b480(uVar3 & 0xffffffff)" identifier (argument_list "(uVar3 & 0xffffffff)" ( (binary_expression "uVar3 & 0xffffffff" identifier & number_literal) )))) ;) (if_statement "if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }" if (parenthesized_expression "((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0))" ( (binary_expression "(iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) && (parenthesized_expression "(puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)" ( (comma_expression "puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0" (assignment_expression "puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3)" identifier = (cast_expression "(ulong *)FUN_0010c540(&DAT_00119b30,uVar3)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0010c540(&DAT_00119b30,uVar3)" identifier (argument_list "(&DAT_00119b30,uVar3)" ( (pointer_expression "&DAT_00119b30" & identifier) , identifier ))))) , (binary_expression "puVar4 != (ulong *)0x0" identifier != (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }" { (if_statement "if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }" if (parenthesized_expression "((DAT_001195e4._1_1_ & 1) == 0)" ( (binary_expression "(DAT_001195e4._1_1_ & 1) == 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" ( (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" identifier . field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }" { (if_statement "if (*puVar4 != uVar3) goto LAB_0010d8b8;" if (parenthesized_expression "(*puVar4 != uVar3)" ( (binary_expression "*puVar4 != uVar3" (pointer_expression "*puVar4" * identifier) != identifier) )) (goto_statement "goto LAB_0010d8b8;" goto statement_identifier ;)) }) (else_clause "else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }" else (compound_statement "{\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }" { (expression_statement "printf("[findcall]\tdestpc 0x%lx",uVar3);" (call_expression "printf("[findcall]\tdestpc 0x%lx",uVar3)" identifier (argument_list "("[findcall]\tdestpc 0x%lx",uVar3)" ( (string_literal ""[findcall]\tdestpc 0x%lx"" " string_content escape_sequence string_content ") , identifier ))) ;) (expression_statement "printf(" child->name %s",puVar4[2]);" (call_expression "printf(" child->name %s",puVar4[2])" identifier (argument_list "(" child->name %s",puVar4[2])" ( (string_literal "" child->name %s"" " string_content ") , (subscript_expression "puVar4[2]" identifier [ number_literal ]) ))) ;) (expression_statement "printf(" child->addr 0x%lx\n",*puVar4);" (call_expression "printf(" child->addr 0x%lx\n",*puVar4)" identifier (argument_list "(" child->addr 0x%lx\n",*puVar4)" ( (string_literal "" child->addr 0x%lx\n"" " string_content escape_sequence ") , (pointer_expression "*puVar4" * identifier) ))) ;) (if_statement "if (*puVar4 != uVar3) goto LAB_0010da28;" if (parenthesized_expression "(*puVar4 != uVar3)" ( (binary_expression "*puVar4 != uVar3" (pointer_expression "*puVar4" * identifier) != identifier) )) (goto_statement "goto LAB_0010da28;" goto statement_identifier ;)) }))) (labeled_statement "LAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);" statement_identifier : (expression_statement "FUN_00104520(param_1,puVar4,0);" (call_expression "FUN_00104520(param_1,puVar4,0)" identifier (argument_list "(param_1,puVar4,0)" ( identifier , identifier , number_literal ))) ;)) (expression_statement "lVar6 = FUN_0010d7f0(pcVar7);" (assignment_expression "lVar6 = FUN_0010d7f0(pcVar7)" identifier = (call_expression "FUN_0010d7f0(pcVar7)" identifier (argument_list "(pcVar7)" ( identifier )))) ;) (expression_statement "lVar8 = lVar8 + lVar6;" (assignment_expression "lVar8 = lVar8 + lVar6" identifier = (binary_expression "lVar8 + lVar6" identifier + identifier)) ;) (goto_statement "goto LAB_0010d8be;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }" statement_identifier : (if_statement "if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }" if (parenthesized_expression "((DAT_001195e4._1_1_ & 1) != 0)" ( (binary_expression "(DAT_001195e4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" ( (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            puts("[findcall]\tbut it\'s a botch");\n          }" { (expression_statement "puts("[findcall]\tbut it\'s a botch");" (call_expression "puts("[findcall]\tbut it\'s a botch")" identifier (argument_list "("[findcall]\tbut it\'s a botch")" ( (string_literal ""[findcall]\tbut it\'s a botch"" " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) }))) (goto_statement "goto LAB_0010d8b8;" goto statement_identifier ;) })) }) (else_clause "else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }" else (compound_statement "{\nLAB_0010d8b8:\n        lVar8 = 1;\n      }" { (labeled_statement "LAB_0010d8b8:\n        lVar8 = 1;" statement_identifier : (expression_statement "lVar8 = 1;" (assignment_expression "lVar8 = 1" identifier = number_literal) ;)) }))) (labeled_statement "LAB_0010d8be:\n      param_2 = param_2 + lVar8;" statement_identifier : (expression_statement "param_2 = param_2 + lVar8;" (assignment_expression "param_2 = param_2 + lVar8" identifier = (binary_expression "param_2 + lVar8" identifier + identifier)) ;)) }) while (parenthesized_expression "(param_2 < param_3)" ( (binary_expression "param_2 < param_3" identifier < identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " escape_sequence string_content escape_sequence ") , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + IDENT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))) - LIT) )))) + IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , LIT , LIT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))))))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))))) , (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , (pointer_expression * IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) (goto_statement goto statement_identifier ;)) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") ))) ;) }))) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;)) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_0010d870(long param_1,ulong param_2,ulong param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  ulong uVar3;\n  ulong *puVar4;\n  undefined8 uVar5;\n  long lVar6;\n  char *pcVar7;\n  long lVar8;\n  \n  if (DAT_001197c0 == 0) {\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }\n  if ((DAT_001195e4._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }\n  if (param_2 < param_3) {\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0010d870(long param_1,ulong param_2,ulong param_3)" (identifier "FUN_0010d870") (parameter_list "(long param_1,ulong param_2,ulong param_3)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) (, ",") (parameter_declaration "ulong param_3" (type_identifier "ulong") (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  ulong uVar3;\n  ulong *puVar4;\n  undefined8 uVar5;\n  long lVar6;\n  char *pcVar7;\n  long lVar8;\n  \n  if (DAT_001197c0 == 0) {\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }\n  if ((DAT_001195e4._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }\n  if (param_2 < param_3) {\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (declaration "ulong *puVar4;" (type_identifier "ulong") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "long lVar6;" (sized_type_specifier "long" (long "long")) (identifier "lVar6") (; ";")) (declaration "char *pcVar7;" (primitive_type "char") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (if_statement "if (DAT_001197c0 == 0) {\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }" (if "if") (parenthesized_expression "(DAT_001197c0 == 0)" (( "(") (binary_expression "DAT_001197c0 == 0" (identifier "DAT_001197c0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    DAT_001197c0 = 1;\n    FUN_0010bfe0(&DAT_001197e0);\n    _DAT_001198f8 = DAT_001104c0;\n    _DAT_00119918 = &DAT_001197e0;\n  }" ({ "{") (expression_statement "DAT_001197c0 = 1;" (assignment_expression "DAT_001197c0 = 1" (identifier "DAT_001197c0") (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_0010bfe0(&DAT_001197e0);" (call_expression "FUN_0010bfe0(&DAT_001197e0)" (identifier "FUN_0010bfe0") (argument_list "(&DAT_001197e0)" (( "(") (pointer_expression "&DAT_001197e0" (& "&") (identifier "DAT_001197e0")) () ")"))) (; ";")) (expression_statement "_DAT_001198f8 = DAT_001104c0;" (assignment_expression "_DAT_001198f8 = DAT_001104c0" (identifier "_DAT_001198f8") (= "=") (identifier "DAT_001104c0")) (; ";")) (expression_statement "_DAT_00119918 = &DAT_001197e0;" (assignment_expression "_DAT_00119918 = &DAT_001197e0" (identifier "_DAT_00119918") (= "=") (pointer_expression "&DAT_001197e0" (& "&") (identifier "DAT_001197e0"))) (; ";")) (} "}"))) (if_statement "if ((DAT_001195e4._1_1_ & 1) != 0) {\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }" (if "if") (parenthesized_expression "((DAT_001195e4._1_1_ & 1) != 0)" (( "(") (binary_expression "(DAT_001195e4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" (( "(") (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" (identifier "DAT_001195e4") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);\n  }" ({ "{") (expression_statement "printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);" (call_expression "printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3)" (identifier "printf") (argument_list "("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3)" (( "(") (string_literal ""[findcall] %s: 0x%lx to 0x%lx\n"" (" """) (string_content "[findcall] %s: 0x%lx to 0x%lx") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*(undefined8 *)(param_1 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_2 < param_3) {\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }" (if "if") (parenthesized_expression "(param_2 < param_3)" (( "(") (binary_expression "param_2 < param_3" (identifier "param_2") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\n    do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);\n  }" ({ "{") (do_statement "do {\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    } while (param_2 < param_3);" (do "do") (compound_statement "{\n      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);\n      if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }\nLAB_0010d8be:\n      param_2 = param_2 + lVar8;\n    }" ({ "{") (expression_statement "pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);" (assignment_expression "pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0)" (identifier "pcVar7") (= "=") (cast_expression "(char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0)" (( "(") (binary_expression "(param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0" (parenthesized_expression "(param_2 - *(long *)(DAT_00119af8 + 0x28))" (( "(") (binary_expression "param_2 - *(long *)(DAT_00119af8 + 0x28)" (identifier "param_2") (- "-") (pointer_expression "*(long *)(DAT_00119af8 + 0x28)" (* "*") (cast_expression "(long *)(DAT_00119af8 + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00119af8 + 0x28)" (( "(") (binary_expression "DAT_00119af8 + 0x28" (identifier "DAT_00119af8") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (+ "+") (identifier "DAT_00119ae0")) () ")")))) (; ";")) (if_statement "if (*pcVar7 == -5) {\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }\n      else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }" (if "if") (parenthesized_expression "(*pcVar7 == -5)" (( "(") (binary_expression "*pcVar7 == -5" (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) (== "==") (number_literal "-5")) () ")")) (compound_statement "{\n        if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }\n        iVar1 = FUN_0010d6f0(pcVar7[1]);\n        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }\n      }" ({ "{") (if_statement "if ((DAT_001195e4._1_1_ & 1) != 0) {\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }" (if "if") (parenthesized_expression "((DAT_001195e4._1_1_ & 1) != 0)" (( "(") (binary_expression "(DAT_001195e4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" (( "(") (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" (identifier "DAT_001195e4") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          printf("[findcall]\t0x%lx:calls",param_2);\n          iVar1 = FUN_0010d6f0(pcVar7[1]);\n          if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }\n          goto LAB_0010da28;\n        }" ({ "{") (expression_statement "printf("[findcall]\t0x%lx:calls",param_2);" (call_expression "printf("[findcall]\t0x%lx:calls",param_2)" (identifier "printf") (argument_list "("[findcall]\t0x%lx:calls",param_2)" (( "(") (string_literal ""[findcall]\t0x%lx:calls"" (" """) (string_content "[findcall]") (escape_sequence "\t") (string_content "0x%lx:calls") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_0010d6f0(pcVar7[1]);" (assignment_expression "iVar1 = FUN_0010d6f0(pcVar7[1])" (identifier "iVar1") (= "=") (call_expression "FUN_0010d6f0(pcVar7[1])" (identifier "FUN_0010d6f0") (argument_list "(pcVar7[1])" (( "(") (subscript_expression "pcVar7[1]" (identifier "pcVar7") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if ((iVar1 == 0) || (iVar1 == 0xd)) {\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }" (if "if") (parenthesized_expression "((iVar1 == 0) || (iVar1 == 0xd))" (( "(") (binary_expression "(iVar1 == 0) || (iVar1 == 0xd)" (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar1 == 0xd)" (( "(") (binary_expression "iVar1 == 0xd" (identifier "iVar1") (== "==") (number_literal "0xd")) () ")"))) () ")")) (compound_statement "{\n            lVar8 = FUN_0010d7f0(pcVar7 + 1);\n            lVar8 = lVar8 + 1;\n            pcVar7 = pcVar7 + lVar8;\n            uVar2 = FUN_0010d6f0(*pcVar7);\n            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;\n            uVar5 = FUN_0010d580(iVar1);\n            printf("\tfirst operand is %s",uVar5);\n            uVar5 = FUN_0010d580(uVar2);\n            printf("\tsecond operand is %s\n",uVar5);\n            if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }\n          }" ({ "{") (expression_statement "lVar8 = FUN_0010d7f0(pcVar7 + 1);" (assignment_expression "lVar8 = FUN_0010d7f0(pcVar7 + 1)" (identifier "lVar8") (= "=") (call_expression "FUN_0010d7f0(pcVar7 + 1)" (identifier "FUN_0010d7f0") (argument_list "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar8 = lVar8 + 1;" (assignment_expression "lVar8 = lVar8 + 1" (identifier "lVar8") (= "=") (binary_expression "lVar8 + 1" (identifier "lVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar7 = pcVar7 + lVar8;" (assignment_expression "pcVar7 = pcVar7 + lVar8" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + lVar8" (identifier "pcVar7") (+ "+") (identifier "lVar8"))) (; ";")) (expression_statement "uVar2 = FUN_0010d6f0(*pcVar7);" (assignment_expression "uVar2 = FUN_0010d6f0(*pcVar7)" (identifier "uVar2") (= "=") (call_expression "FUN_0010d6f0(*pcVar7)" (identifier "FUN_0010d6f0") (argument_list "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")))) (; ";")) (if_statement "if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;" (if "if") (parenthesized_expression "((DAT_001195e4._1_1_ & 1) == 0)" (( "(") (binary_expression "(DAT_001195e4._1_1_ & 1) == 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" (( "(") (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" (identifier "DAT_001195e4") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010d924;" (goto "goto") (statement_identifier "LAB_0010d924") (; ";"))) (expression_statement "uVar5 = FUN_0010d580(iVar1);" (assignment_expression "uVar5 = FUN_0010d580(iVar1)" (identifier "uVar5") (= "=") (call_expression "FUN_0010d580(iVar1)" (identifier "FUN_0010d580") (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")")))) (; ";")) (expression_statement "printf("\tfirst operand is %s",uVar5);" (call_expression "printf("\tfirst operand is %s",uVar5)" (identifier "printf") (argument_list "("\tfirst operand is %s",uVar5)" (( "(") (string_literal ""\tfirst operand is %s"" (" """) (escape_sequence "\t") (string_content "first operand is %s") (" """)) (, ",") (identifier "uVar5") () ")"))) (; ";")) (expression_statement "uVar5 = FUN_0010d580(uVar2);" (assignment_expression "uVar5 = FUN_0010d580(uVar2)" (identifier "uVar5") (= "=") (call_expression "FUN_0010d580(uVar2)" (identifier "FUN_0010d580") (argument_list "(uVar2)" (( "(") (identifier "uVar2") () ")")))) (; ";")) (expression_statement "printf("\tsecond operand is %s\n",uVar5);" (call_expression "printf("\tsecond operand is %s\n",uVar5)" (identifier "printf") (argument_list "("\tsecond operand is %s\n",uVar5)" (( "(") (string_literal ""\tsecond operand is %s\n"" (" """) (escape_sequence "\t") (string_content "second operand is %s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar5") () ")"))) (; ";")) (if_statement "if (uVar2 < 0x15) {\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }" (if "if") (parenthesized_expression "(uVar2 < 0x15)" (( "(") (binary_expression "uVar2 < 0x15" (identifier "uVar2") (< "<") (number_literal "0x15")) () ")")) (compound_statement "{\n              uVar3 = 1L << ((byte)uVar2 & 0x3f);\n              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;\n              goto LAB_0010db04;\n            }" ({ "{") (expression_statement "uVar3 = 1L << ((byte)uVar2 & 0x3f);" (assignment_expression "uVar3 = 1L << ((byte)uVar2 & 0x3f)" (identifier "uVar3") (= "=") (binary_expression "1L << ((byte)uVar2 & 0x3f)" (number_literal "1L") (<< "<<") (parenthesized_expression "((byte)uVar2 & 0x3f)" (( "(") (binary_expression "(byte)uVar2 & 0x3f" (cast_expression "(byte)uVar2" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar2")) (& "&") (number_literal "0x3f")) () ")")))) (; ";")) (if_statement "if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;" (if "if") (parenthesized_expression "((uVar3 & 0x151508) == 0)" (( "(") (binary_expression "(uVar3 & 0x151508) == 0" (parenthesized_expression "(uVar3 & 0x151508)" (( "(") (binary_expression "uVar3 & 0x151508" (identifier "uVar3") (& "&") (number_literal "0x151508")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010d93e;" (goto "goto") (statement_identifier "LAB_0010d93e") (; ";"))) (goto_statement "goto LAB_0010db04;" (goto "goto") (statement_identifier "LAB_0010db04") (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0010da28;" (goto "goto") (statement_identifier "LAB_0010da28") (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_0010d6f0(pcVar7[1]);" (assignment_expression "iVar1 = FUN_0010d6f0(pcVar7[1])" (identifier "iVar1") (= "=") (call_expression "FUN_0010d6f0(pcVar7[1])" (identifier "FUN_0010d6f0") (argument_list "(pcVar7[1])" (( "(") (subscript_expression "pcVar7[1]" (identifier "pcVar7") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }" (if "if") (parenthesized_expression "((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd))" (( "(") (binary_expression "(iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)" (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(lVar8 = 1, iVar1 == 0xd)" (( "(") (comma_expression "lVar8 = 1, iVar1 == 0xd" (assignment_expression "lVar8 = 1" (identifier "lVar8") (= "=") (number_literal "1")) (, ",") (binary_expression "iVar1 == 0xd" (identifier "iVar1") (== "==") (number_literal "0xd"))) () ")"))) () ")")) (compound_statement "{\n          lVar8 = FUN_0010d7f0(pcVar7 + 1);\n          lVar8 = lVar8 + 1;\n          pcVar7 = pcVar7 + lVar8;\n          uVar2 = FUN_0010d6f0(*pcVar7);\nLAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;\n          uVar3 = 1L << ((byte)uVar2 & 0x3f);\n          if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }\nLAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }\nLAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }\n          goto LAB_0010d8b8;\n        }" ({ "{") (expression_statement "lVar8 = FUN_0010d7f0(pcVar7 + 1);" (assignment_expression "lVar8 = FUN_0010d7f0(pcVar7 + 1)" (identifier "lVar8") (= "=") (call_expression "FUN_0010d7f0(pcVar7 + 1)" (identifier "FUN_0010d7f0") (argument_list "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar8 = lVar8 + 1;" (assignment_expression "lVar8 = lVar8 + 1" (identifier "lVar8") (= "=") (binary_expression "lVar8 + 1" (identifier "lVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar7 = pcVar7 + lVar8;" (assignment_expression "pcVar7 = pcVar7 + lVar8" (identifier "pcVar7") (= "=") (binary_expression "pcVar7 + lVar8" (identifier "pcVar7") (+ "+") (identifier "lVar8"))) (; ";")) (expression_statement "uVar2 = FUN_0010d6f0(*pcVar7);" (assignment_expression "uVar2 = FUN_0010d6f0(*pcVar7)" (identifier "uVar2") (= "=") (call_expression "FUN_0010d6f0(*pcVar7)" (identifier "FUN_0010d6f0") (argument_list "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")))) (; ";")) (labeled_statement "LAB_0010d924:\n          if (0x14 < uVar2) goto LAB_0010d8b8;" (statement_identifier "LAB_0010d924") (: ":") (if_statement "if (0x14 < uVar2) goto LAB_0010d8b8;" (if "if") (parenthesized_expression "(0x14 < uVar2)" (( "(") (binary_expression "0x14 < uVar2" (number_literal "0x14") (< "<") (identifier "uVar2")) () ")")) (goto_statement "goto LAB_0010d8b8;" (goto "goto") (statement_identifier "LAB_0010d8b8") (; ";")))) (expression_statement "uVar3 = 1L << ((byte)uVar2 & 0x3f);" (assignment_expression "uVar3 = 1L << ((byte)uVar2 & 0x3f)" (identifier "uVar3") (= "=") (binary_expression "1L << ((byte)uVar2 & 0x3f)" (number_literal "1L") (<< "<<") (parenthesized_expression "((byte)uVar2 & 0x3f)" (( "(") (binary_expression "(byte)uVar2 & 0x3f" (cast_expression "(byte)uVar2" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar2")) (& "&") (number_literal "0x3f")) () ")")))) (; ";")) (if_statement "if ((uVar3 & 0x151508) != 0) {\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }" (if "if") (parenthesized_expression "((uVar3 & 0x151508) != 0)" (( "(") (binary_expression "(uVar3 & 0x151508) != 0" (parenthesized_expression "(uVar3 & 0x151508)" (( "(") (binary_expression "uVar3 & 0x151508" (identifier "uVar3") (& "&") (number_literal "0x151508")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;\n            goto LAB_0010db0d;\n          }" ({ "{") (labeled_statement "LAB_0010db04:\n            puVar4 = (ulong *)&DAT_001197e0;" (statement_identifier "LAB_0010db04") (: ":") (expression_statement "puVar4 = (ulong *)&DAT_001197e0;" (assignment_expression "puVar4 = (ulong *)&DAT_001197e0" (identifier "puVar4") (= "=") (cast_expression "(ulong *)&DAT_001197e0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&DAT_001197e0" (& "&") (identifier "DAT_001197e0")))) (; ";"))) (goto_statement "goto LAB_0010db0d;" (goto "goto") (statement_identifier "LAB_0010db0d") (; ";")) (} "}"))) (labeled_statement "LAB_0010d93e:\n          if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }" (statement_identifier "LAB_0010d93e") (: ":") (if_statement "if ((uVar3 & 0xa8000) != 0) {\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }" (if "if") (parenthesized_expression "((uVar3 & 0xa8000) != 0)" (( "(") (binary_expression "(uVar3 & 0xa8000) != 0" (parenthesized_expression "(uVar3 & 0xa8000)" (( "(") (binary_expression "uVar3 & 0xa8000" (identifier "uVar3") (& "&") (number_literal "0xa8000")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            iVar1 = FUN_0010d6f0(*pcVar7);\n            if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }\n            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);\n            if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }\n          }" ({ "{") (expression_statement "iVar1 = FUN_0010d6f0(*pcVar7);" (assignment_expression "iVar1 = FUN_0010d6f0(*pcVar7)" (identifier "iVar1") (= "=") (call_expression "FUN_0010d6f0(*pcVar7)" (identifier "FUN_0010d6f0") (argument_list "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")))) (; ";")) (if_statement "if (iVar1 == 0x11) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }\n            else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" (if "if") (parenthesized_expression "(iVar1 == 0x11)" (( "(") (binary_expression "iVar1 == 0x11" (identifier "iVar1") (== "==") (number_literal "0x11")) () ")")) (compound_statement "{\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);\n              uVar3 = lVar6 + 2 + param_2;\n            }" ({ "{") (expression_statement "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);" (assignment_expression "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1)" (identifier "lVar6") (= "=") (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1)" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))" (( "(") (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58)" (* "*") (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58)" (* "*") (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x58)" (( "(") (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x58" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" (* "*") (cast_expression "(long *)(DAT_00119ad8 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00119ad8 + 8)" (( "(") (binary_expression "DAT_00119ad8 + 8" (identifier "DAT_00119ad8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(pcVar7 + 1)" (( "(") (binary_expression "pcVar7 + 1" (identifier "pcVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar3 = lVar6 + 2 + param_2;" (assignment_expression "uVar3 = lVar6 + 2 + param_2" (identifier "uVar3") (= "=") (binary_expression "lVar6 + 2 + param_2" (binary_expression "lVar6 + 2" (identifier "lVar6") (+ "+") (number_literal "2")) (+ "+") (identifier "param_2"))) (; ";")) (} "}")) (else_clause "else if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" (else "else") (if_statement "if (iVar1 == 0x13) {\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }\n            else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" (if "if") (parenthesized_expression "(iVar1 == 0x13)" (( "(") (binary_expression "iVar1 == 0x13" (identifier "iVar1") (== "==") (number_literal "0x13")) () ")")) (compound_statement "{\n              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();\n              uVar3 = lVar6 + 4 + param_2;\n            }" ({ "{") (expression_statement "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();" (assignment_expression "lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))()" (identifier "lVar6") (= "=") (call_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))()" (parenthesized_expression "(**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))" (( "(") (pointer_expression "**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40)" (* "*") (pointer_expression "*(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40)" (* "*") (cast_expression "(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)(DAT_00119ad8 + 8) + 0x40)" (( "(") (binary_expression "*(long *)(DAT_00119ad8 + 8) + 0x40" (pointer_expression "*(long *)(DAT_00119ad8 + 8)" (* "*") (cast_expression "(long *)(DAT_00119ad8 + 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00119ad8 + 8)" (( "(") (binary_expression "DAT_00119ad8 + 8" (identifier "DAT_00119ad8") (+ "+") (number_literal "8")) () ")")))) (+ "+") (number_literal "0x40")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar3 = lVar6 + 4 + param_2;" (assignment_expression "uVar3 = lVar6 + 4 + param_2" (identifier "uVar3") (= "=") (binary_expression "lVar6 + 4 + param_2" (binary_expression "lVar6 + 4" (identifier "lVar6") (+ "+") (number_literal "4")) (+ "+") (identifier "param_2"))) (; ";")) (} "}")) (else_clause "else if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" (else "else") (if_statement "if (iVar1 == 0xf) {\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }\n            else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" (if "if") (parenthesized_expression "(iVar1 == 0xf)" (( "(") (binary_expression "iVar1 == 0xf" (identifier "iVar1") (== "==") (number_literal "0xf")) () ")")) (compound_statement "{\n              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;\n            }" ({ "{") (expression_statement "uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;" (assignment_expression "uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2" (identifier "uVar3") (= "=") (binary_expression "(long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2" (cast_expression "(long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (cast_expression "(int)((byte)(pcVar7[1] + 0x80) - 0x7f)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((byte)(pcVar7[1] + 0x80) - 0x7f)" (( "(") (binary_expression "(byte)(pcVar7[1] + 0x80) - 0x7f" (call_expression "(byte)(pcVar7[1] + 0x80)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(pcVar7[1] + 0x80)" (( "(") (binary_expression "pcVar7[1] + 0x80" (subscript_expression "pcVar7[1]" (identifier "pcVar7") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x80")) () ")"))) (- "-") (number_literal "0x7f")) () ")")))) (+ "+") (identifier "param_2"))) (; ";")) (} "}")) (else_clause "else {\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" (else "else") (compound_statement "{\n              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);\n              uVar3 = param_2;\n            }" ({ "{") (expression_statement "fwrite("[reladdr] not relative address\n",1,0x1f,stderr);" (call_expression "fwrite("[reladdr] not relative address\n",1,0x1f,stderr)" (identifier "fwrite") (argument_list "("[reladdr] not relative address\n",1,0x1f,stderr)" (( "(") (string_literal ""[reladdr] not relative address\n"" (" """) (string_content "[reladdr] not relative address") (escape_sequence "\n") (" """)) (, ",") (number_literal "1") (, ",") (number_literal "0x1f") (, ",") (identifier "stderr") () ")"))) (; ";")) (expression_statement "uVar3 = param_2;" (assignment_expression "uVar3 = param_2" (identifier "uVar3") (= "=") (identifier "param_2")) (; ";")) (} "}")))))))) (expression_statement "iVar1 = FUN_0010b480(uVar3 & 0xffffffff);" (assignment_expression "iVar1 = FUN_0010b480(uVar3 & 0xffffffff)" (identifier "iVar1") (= "=") (call_expression "FUN_0010b480(uVar3 & 0xffffffff)" (identifier "FUN_0010b480") (argument_list "(uVar3 & 0xffffffff)" (( "(") (binary_expression "uVar3 & 0xffffffff" (identifier "uVar3") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (if_statement "if ((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }" (if "if") (parenthesized_expression "((iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0))" (( "(") (binary_expression "(iVar1 != 0) &&\n               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)" (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)" (( "(") (comma_expression "puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0" (assignment_expression "puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3)" (identifier "puVar4") (= "=") (cast_expression "(ulong *)FUN_0010c540(&DAT_00119b30,uVar3)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0010c540(&DAT_00119b30,uVar3)" (identifier "FUN_0010c540") (argument_list "(&DAT_00119b30,uVar3)" (( "(") (pointer_expression "&DAT_00119b30" (& "&") (identifier "DAT_00119b30")) (, ",") (identifier "uVar3") () ")"))))) (, ",") (binary_expression "puVar4 != (ulong *)0x0" (identifier "puVar4") (!= "!=") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n              if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }\nLAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);\n              lVar6 = FUN_0010d7f0(pcVar7);\n              lVar8 = lVar8 + lVar6;\n              goto LAB_0010d8be;\n            }" ({ "{") (if_statement "if ((DAT_001195e4._1_1_ & 1) == 0) {\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }\n              else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }" (if "if") (parenthesized_expression "((DAT_001195e4._1_1_ & 1) == 0)" (( "(") (binary_expression "(DAT_001195e4._1_1_ & 1) == 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" (( "(") (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" (identifier "DAT_001195e4") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                if (*puVar4 != uVar3) goto LAB_0010d8b8;\n              }" ({ "{") (if_statement "if (*puVar4 != uVar3) goto LAB_0010d8b8;" (if "if") (parenthesized_expression "(*puVar4 != uVar3)" (( "(") (binary_expression "*puVar4 != uVar3" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (!= "!=") (identifier "uVar3")) () ")")) (goto_statement "goto LAB_0010d8b8;" (goto "goto") (statement_identifier "LAB_0010d8b8") (; ";"))) (} "}")) (else_clause "else {\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }" (else "else") (compound_statement "{\n                printf("[findcall]\tdestpc 0x%lx",uVar3);\n                printf(" child->name %s",puVar4[2]);\n                printf(" child->addr 0x%lx\n",*puVar4);\n                if (*puVar4 != uVar3) goto LAB_0010da28;\n              }" ({ "{") (expression_statement "printf("[findcall]\tdestpc 0x%lx",uVar3);" (call_expression "printf("[findcall]\tdestpc 0x%lx",uVar3)" (identifier "printf") (argument_list "("[findcall]\tdestpc 0x%lx",uVar3)" (( "(") (string_literal ""[findcall]\tdestpc 0x%lx"" (" """) (string_content "[findcall]") (escape_sequence "\t") (string_content "destpc 0x%lx") (" """)) (, ",") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "printf(" child->name %s",puVar4[2]);" (call_expression "printf(" child->name %s",puVar4[2])" (identifier "printf") (argument_list "(" child->name %s",puVar4[2])" (( "(") (string_literal "" child->name %s"" (" """) (string_content " child->name %s") (" """)) (, ",") (subscript_expression "puVar4[2]" (identifier "puVar4") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (expression_statement "printf(" child->addr 0x%lx\n",*puVar4);" (call_expression "printf(" child->addr 0x%lx\n",*puVar4)" (identifier "printf") (argument_list "(" child->addr 0x%lx\n",*puVar4)" (( "(") (string_literal "" child->addr 0x%lx\n"" (" """) (string_content " child->addr 0x%lx") (escape_sequence "\n") (" """)) (, ",") (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) () ")"))) (; ";")) (if_statement "if (*puVar4 != uVar3) goto LAB_0010da28;" (if "if") (parenthesized_expression "(*puVar4 != uVar3)" (( "(") (binary_expression "*puVar4 != uVar3" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (!= "!=") (identifier "uVar3")) () ")")) (goto_statement "goto LAB_0010da28;" (goto "goto") (statement_identifier "LAB_0010da28") (; ";"))) (} "}")))) (labeled_statement "LAB_0010db0d:\n              FUN_00104520(param_1,puVar4,0);" (statement_identifier "LAB_0010db0d") (: ":") (expression_statement "FUN_00104520(param_1,puVar4,0);" (call_expression "FUN_00104520(param_1,puVar4,0)" (identifier "FUN_00104520") (argument_list "(param_1,puVar4,0)" (( "(") (identifier "param_1") (, ",") (identifier "puVar4") (, ",") (number_literal "0") () ")"))) (; ";"))) (expression_statement "lVar6 = FUN_0010d7f0(pcVar7);" (assignment_expression "lVar6 = FUN_0010d7f0(pcVar7)" (identifier "lVar6") (= "=") (call_expression "FUN_0010d7f0(pcVar7)" (identifier "FUN_0010d7f0") (argument_list "(pcVar7)" (( "(") (identifier "pcVar7") () ")")))) (; ";")) (expression_statement "lVar8 = lVar8 + lVar6;" (assignment_expression "lVar8 = lVar8 + lVar6" (identifier "lVar8") (= "=") (binary_expression "lVar8 + lVar6" (identifier "lVar8") (+ "+") (identifier "lVar6"))) (; ";")) (goto_statement "goto LAB_0010d8be;" (goto "goto") (statement_identifier "LAB_0010d8be") (; ";")) (} "}"))) (} "}")))) (labeled_statement "LAB_0010da28:\n          if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }" (statement_identifier "LAB_0010da28") (: ":") (if_statement "if ((DAT_001195e4._1_1_ & 1) != 0) {\n            puts("[findcall]\tbut it\'s a botch");\n          }" (if "if") (parenthesized_expression "((DAT_001195e4._1_1_ & 1) != 0)" (( "(") (binary_expression "(DAT_001195e4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001195e4._1_1_ & 1)" (( "(") (binary_expression "DAT_001195e4._1_1_ & 1" (field_expression "DAT_001195e4._1_1_" (identifier "DAT_001195e4") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puts("[findcall]\tbut it\'s a botch");\n          }" ({ "{") (expression_statement "puts("[findcall]\tbut it\'s a botch");" (call_expression "puts("[findcall]\tbut it\'s a botch")" (identifier "puts") (argument_list "("[findcall]\tbut it\'s a botch")" (( "(") (string_literal ""[findcall]\tbut it\'s a botch"" (" """) (string_content "[findcall]") (escape_sequence "\t") (string_content "but it") (escape_sequence "\'") (string_content "s a botch") (" """)) () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_0010d8b8;" (goto "goto") (statement_identifier "LAB_0010d8b8") (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0010d8b8:\n        lVar8 = 1;\n      }" (else "else") (compound_statement "{\nLAB_0010d8b8:\n        lVar8 = 1;\n      }" ({ "{") (labeled_statement "LAB_0010d8b8:\n        lVar8 = 1;" (statement_identifier "LAB_0010d8b8") (: ":") (expression_statement "lVar8 = 1;" (assignment_expression "lVar8 = 1" (identifier "lVar8") (= "=") (number_literal "1")) (; ";"))) (} "}")))) (labeled_statement "LAB_0010d8be:\n      param_2 = param_2 + lVar8;" (statement_identifier "LAB_0010d8be") (: ":") (expression_statement "param_2 = param_2 + lVar8;" (assignment_expression "param_2 = param_2 + lVar8" (identifier "param_2") (= "=") (binary_expression "param_2 + lVar8" (identifier "param_2") (+ "+") (identifier "lVar8"))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(param_2 < param_3)" (( "(") (binary_expression "param_2 < param_3" (identifier "param_2") (< "<") (identifier "param_3")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *parent,type_2 var_3,type_2 var_4)

{
  type_3 var_6;
  type_3 var_14;
  int var_24;
  type_4 var_17;
  type_1 *var_26;
  long var_29;
  type_5 var_19;
  char *var_10;
  type_6 *var_12;
  long var_11;
  type_2 var_27;
  
  if (function_1::inited == 0) {
    vax_find_call::inited = 1;
    var_1(&indirectchild);
    indirectchild.cg.prop.fract = DAT_001104c0;
    indirectchild.cg.cyc.head = &indirectchild;
  }
  if ((debug_level._1_1_ & 1) != 0) {
    var_2("[findcall] %s: 0x%lx to 0x%lx\n",parent->name,var_3,var_4);
  }
  if (var_3 < var_4) {
    do {
      var_10 = (char *)((var_3 - core_text_sect->vma) + (long)core_text_space);
      if (*var_10 == -5) {
        if ((debug_level._1_1_ & 1) != 0) {
          var_2("[findcall]\t0x%lx:calls",var_3);
          var_6 = var_5((type_7 *)(type_4)(type_6)var_10[1]);
          if ((var_6 == var_7) || (var_6 == var_8)) {
            var_11 = var_9((type_7 *)(var_10 + 1));
            var_11 = var_11 + 1;
            var_12 = (type_6 *)(var_10 + var_11);
            var_14 = var_5((type_7 *)(type_4)*var_12);
            if ((debug_level._1_1_ & 1) == 0) goto LAB_0010d924;
            var_10 = var_13(var_6);
            var_2("\tfirst operand is %s",var_10);
            var_10 = var_13(var_14);
            var_2("\tsecond operand is %s\n",var_10);
            if (var_14 < (var_15|var_16)) {
              var_17 = 1L << ((type_6)var_14 & 0x3f);
              if ((var_17 & 0x151508) == 0) goto LAB_0010d93e;
              goto LAB_0010db04;
            }
          }
          goto LAB_0010da28;
        }
        var_6 = var_5((type_7 *)(type_4)(type_6)var_10[1]);
        if ((var_6 == var_7) || (var_11 = 1, var_6 == var_8)) {
          var_11 = var_9((type_7 *)(var_10 + 1));
          var_11 = var_11 + 1;
          var_12 = (type_6 *)(var_10 + var_11);
          var_14 = var_5((type_7 *)(type_4)*var_12);
LAB_0010d924:
          if (var_15 < var_14) goto LAB_0010d8b8;
          var_17 = 1L << ((type_6)var_14 & 0x3f);
          if ((var_17 & 0x151508) != 0) {
LAB_0010db04:
            var_26 = &indirectchild;
            goto LAB_0010db0d;
          }
LAB_0010d93e:
          if ((var_17 & 0xa8000) != 0) {
            var_6 = var_5((type_7 *)(type_4)*var_12);
            if (var_6 == var_18) {
              var_19 = (*core_bfd->xvec->bfd_getx_signed_16)(var_12 + 1);
              var_27 = var_19 + 2 + var_3;
            }
            else if (var_6 == var_20) {
              var_19 = (*core_bfd->xvec->bfd_getx_signed_32)(var_12 + 1);
              var_27 = var_19 + 4 + var_3;
            }
            else if (var_6 == var_21) {
              var_27 = (long)(int)((type_6)(var_12[1] + 0x80) - 0x7f) + var_3;
            }
            else {
              var_22("[reladdr] not relative address\n",1,0x1f,stderr);
              var_27 = var_3;
            }
            var_24 = var_23((type_8)var_27);
            if ((var_24 != 0) && (var_26 = var_25(&symtab,var_27), var_26 != (type_1 *)0x0)) {
              if ((debug_level._1_1_ & 1) == 0) {
                if (var_26->addr != var_27) goto LAB_0010d8b8;
              }
              else {
                var_2("[findcall]\tdestpc 0x%lx",var_27);
                var_2(" child->name %s",var_26->name);
                var_2(" child->addr 0x%lx\n",var_26->addr);
                if (var_26->addr != var_27) goto LAB_0010da28;
              }
LAB_0010db0d:
              var_28(parent,var_26,0);
              var_29 = var_9(var_12);
              var_11 = var_11 + var_29;
              goto LAB_0010d8be;
            }
          }
LAB_0010da28:
          if ((debug_level._1_1_ & 1) != 0) {
            var_30("[findcall]\tbut it\'s a botch");
          }
          goto LAB_0010d8b8;
        }
      }
      else {
LAB_0010d8b8:
        var_11 = 1;
      }
LAB_0010d8be:
      var_3 = var_3 + var_11;
    } while (var_3 < var_4);
  }
  return;
}


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

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

void MASKED(long param_1,ulong param_2,ulong param_3)

{
  int iVar1;
  uint uVar2;
  ulong uVar3;
  ulong *puVar4;
  undefined8 uVar5;
  long lVar6;
  char *pcVar7;
  long lVar8;
  
  if (DAT_001197c0 == 0) {
    DAT_001197c0 = 1;
    FUN_0010bfe0(&DAT_001197e0);
    _DAT_001198f8 = DAT_001104c0;
    _DAT_00119918 = &DAT_001197e0;
  }
  if ((DAT_001195e4._1_1_ & 1) != 0) {
    printf("[findcall] %s: 0x%lx to 0x%lx\n",*(undefined8 *)(param_1 + 0x10),param_2,param_3);
  }
  if (param_2 < param_3) {
    do {
      pcVar7 = (char *)((param_2 - *(long *)(DAT_00119af8 + 0x28)) + DAT_00119ae0);
      if (*pcVar7 == -5) {
        if ((DAT_001195e4._1_1_ & 1) != 0) {
          printf("[findcall]\t0x%lx:calls",param_2);
          iVar1 = FUN_0010d6f0(pcVar7[1]);
          if ((iVar1 == 0) || (iVar1 == 0xd)) {
            lVar8 = FUN_0010d7f0(pcVar7 + 1);
            lVar8 = lVar8 + 1;
            pcVar7 = pcVar7 + lVar8;
            uVar2 = FUN_0010d6f0(*pcVar7);
            if ((DAT_001195e4._1_1_ & 1) == 0) goto LAB_0010d924;
            uVar5 = FUN_0010d580(iVar1);
            printf("\tfirst operand is %s",uVar5);
            uVar5 = FUN_0010d580(uVar2);
            printf("\tsecond operand is %s\n",uVar5);
            if (uVar2 < 0x15) {
              uVar3 = 1L << ((byte)uVar2 & 0x3f);
              if ((uVar3 & 0x151508) == 0) goto LAB_0010d93e;
              goto LAB_0010db04;
            }
          }
          goto LAB_0010da28;
        }
        iVar1 = FUN_0010d6f0(pcVar7[1]);
        if ((iVar1 == 0) || (lVar8 = 1, iVar1 == 0xd)) {
          lVar8 = FUN_0010d7f0(pcVar7 + 1);
          lVar8 = lVar8 + 1;
          pcVar7 = pcVar7 + lVar8;
          uVar2 = FUN_0010d6f0(*pcVar7);
LAB_0010d924:
          if (0x14 < uVar2) goto LAB_0010d8b8;
          uVar3 = 1L << ((byte)uVar2 & 0x3f);
          if ((uVar3 & 0x151508) != 0) {
LAB_0010db04:
            puVar4 = (ulong *)&DAT_001197e0;
            goto LAB_0010db0d;
          }
LAB_0010d93e:
          if ((uVar3 & 0xa8000) != 0) {
            iVar1 = FUN_0010d6f0(*pcVar7);
            if (iVar1 == 0x11) {
              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x58))(pcVar7 + 1);
              uVar3 = lVar6 + 2 + param_2;
            }
            else if (iVar1 == 0x13) {
              lVar6 = (**(code **)(*(long *)(DAT_00119ad8 + 8) + 0x40))();
              uVar3 = lVar6 + 4 + param_2;
            }
            else if (iVar1 == 0xf) {
              uVar3 = (long)(int)((byte)(pcVar7[1] + 0x80) - 0x7f) + param_2;
            }
            else {
              fwrite("[reladdr] not relative address\n",1,0x1f,stderr);
              uVar3 = param_2;
            }
            iVar1 = FUN_0010b480(uVar3 & 0xffffffff);
            if ((iVar1 != 0) &&
               (puVar4 = (ulong *)FUN_0010c540(&DAT_00119b30,uVar3), puVar4 != (ulong *)0x0)) {
              if ((DAT_001195e4._1_1_ & 1) == 0) {
                if (*puVar4 != uVar3) goto LAB_0010d8b8;
              }
              else {
                printf("[findcall]\tdestpc 0x%lx",uVar3);
                printf(" child->name %s",puVar4[2]);
                printf(" child->addr 0x%lx\n",*puVar4);
                if (*puVar4 != uVar3) goto LAB_0010da28;
              }
LAB_0010db0d:
              FUN_00104520(param_1,puVar4,0);
              lVar6 = FUN_0010d7f0(pcVar7);
              lVar8 = lVar8 + lVar6;
              goto LAB_0010d8be;
            }
          }
LAB_0010da28:
          if ((DAT_001195e4._1_1_ & 1) != 0) {
            puts("[findcall]\tbut it\'s a botch");
          }
          goto LAB_0010d8b8;
        }
      }
      else {
LAB_0010d8b8:
        lVar8 = 1;
      }
LAB_0010d8be:
      param_2 = param_2 + lVar8;
    } while (param_2 < param_3);
  }
  return;
}

