
/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x00317602) overlaps instruction at (ram,0x00317600)
    */
/* WARNING: Removing unreachable block (ram,0x003175fc) */
/* std::istreambuf_iterator<char, std::char_traits<char> >
   std::__facet_shims::__time_get<char>(std::integral_constant<bool, false>, std::locale::facet
   const*, std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char,
   std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*, char) */

void __thiscall
std::__facet_shims::__time_get<char>
          (__facet_shims *this,undefined8 param_2,char param_3,long param_4,undefined8 param_5,
          undefined8 param_6,undefined8 param_7,long param_8,byte param_9)

{
  uint uVar1;
  ulong uVar2;
  long lVar3;
  code *UNRECOVERED_JUMPTABLE;
  long *plVar4;
  char cVar5;
  undefined7 uVar6;
  undefined8 unaff_retaddr;
  long lStack_10;
  
  uVar6 = (undefined7)((ulong)this >> 8);
  cVar5 = (char)this;
  plVar4 = (long *)&stack0xfffffffffffffff8;
  uVar1 = param_9 - 100 & 0xff;
  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];
  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;
                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */
                    /* WARNING: Could not find normalized switch variable to match jumptable */
  switch(uVar1) {
  case 0:
                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)this + 0x20))();
    return;
  default:
                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)this + 0x38))();
    return;
  case 9:
                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)this + 0x30))();
    return;
  case 0x10:
                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)this + 0x18))();
    return;
  case 0x13:
                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)this + 0x28))();
    return;
  case 0x16:
    lVar3 = param_4;
    break;
  case 0x17:
  case 0x18:
  case 0x19:
  case 0x1a:
  case 0x1b:
  case 0x1c:
  case 0x1d:
  case 0x1e:
  case 0x20:
  case 0x21:
  case 0x22:
  case 0x23:
  case 0x24:
  case 0x25:
  case 0x27:
  case 0x28:
  case 0x2a:
  case 0x2b:
    cVar5 = -(0xffffffffffc6daf7 < uVar2);
    lVar3 = param_4 + -1;
    if (param_4 + -1 != 0 && cVar5 != '\0') {
      if (param_4 == 2 || cVar5 == '\0') {
                    /* WARNING: Bad instruction - Truncating control flow here */
        halt_baddata();
      }
      *(char *)(param_8 + 0x48) =
           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);
      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);
      goto code_r0x00317682;
    }
    break;
  case 0x1f:
                    /* WARNING: Bad instruction - Truncating control flow here */
    halt_baddata();
  case 0x26:
    goto switchD_00317584_caseD_26;
  case 0x29:
                    /* WARNING: Bad instruction - Truncating control flow here */
    halt_baddata();
  case 0x2c:
  case 0x2d:
    lStack_10 = 0xa0fff850;
                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*pcRam0000000041fff0a0)();
    return;
  }
  plVar4 = &lStack_10;
  lStack_10 = param_8;
  uVar1 = (byte)param_8 - 100 & 0xff;
                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */
                    /* WARNING: Could not find normalized switch variable to match jumptable */
  switch(uVar1) {
  case 0:
    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);
code_r0x00317682:
                    /* WARNING: Could not emulate address calculation at 0x0031767f */
                    /* WARNING: Treating indirect jump as call */
    (*UNRECOVERED_JUMPTABLE)();
    return;
  default:
                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();
    return;
  case 9:
                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();
    return;
  case 0x10:
                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();
    return;
  case 0x13:
    lVar3 = *(long *)CONCAT71(uVar6,cVar5);
    param_7 = unaff_retaddr;
    break;
  case 0x16:
  case 0x17:
    *(char *)(lVar3 + -8) =
         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);
                    /* WARNING: Bad instruction - Truncating control flow here */
    halt_baddata();
  }
switchD_00317584_caseD_26:
  *(undefined8 *)((long)plVar4 + 0x10) = param_7;
                    /* WARNING: Could not emulate address calculation at 0x0031764e */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(lVar3 + 0x28))();
  return;
}



/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x00317602) overlaps instruction at (ram,0x00317600)
    */
/* WARNING: Removing unreachable block (ram,0x003175fc) */

void FUN_00317560(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,
                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)

{
  uint uVar1;
  ulong uVar2;
  long lVar3;
  code *UNRECOVERED_JUMPTABLE;
  long *plVar4;
  char cVar5;
  undefined7 uVar6;
  undefined8 unaff_retaddr;
  long lStack_10;
  
  uVar6 = (undefined7)((ulong)param_1 >> 8);
  cVar5 = (char)param_1;
  plVar4 = (long *)&stack0xfffffffffffffff8;
  uVar1 = param_9 - 100 & 0xff;
  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];
  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;
                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */
                    /* WARNING: Could not find normalized switch variable to match jumptable */
  switch(uVar1) {
  case 0:
                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*param_1 + 0x20))();
    return;
  default:
                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*param_1 + 0x38))();
    return;
  case 9:
                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*param_1 + 0x30))();
    return;
  case 0x10:
                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*param_1 + 0x18))();
    return;
  case 0x13:
                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*param_1 + 0x28))();
    return;
  case 0x16:
    lVar3 = param_4;
    break;
  case 0x17:
  case 0x18:
  case 0x19:
  case 0x1a:
  case 0x1b:
  case 0x1c:
  case 0x1d:
  case 0x1e:
  case 0x20:
  case 0x21:
  case 0x22:
  case 0x23:
  case 0x24:
  case 0x25:
  case 0x27:
  case 0x28:
  case 0x2a:
  case 0x2b:
    cVar5 = -(0xffffffffffc6daf7 < uVar2);
    lVar3 = param_4 + -1;
    if (param_4 + -1 != 0 && cVar5 != '\0') {
      if (param_4 == 2 || cVar5 == '\0') {
                    /* WARNING: Bad instruction - Truncating control flow here */
        halt_baddata();
      }
      *(char *)(param_8 + 0x48) =
           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);
      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);
      goto code_r0x00317682;
    }
    break;
  case 0x1f:
                    /* WARNING: Bad instruction - Truncating control flow here */
    halt_baddata();
  case 0x26:
    goto switchD_00317584_caseD_26;
  case 0x29:
                    /* WARNING: Bad instruction - Truncating control flow here */
    halt_baddata();
  case 0x2c:
  case 0x2d:
    lStack_10 = 0xa0fff850;
                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*pcRam0000000041fff0a0)();
    return;
  }
  plVar4 = &lStack_10;
  lStack_10 = param_8;
  uVar1 = (byte)param_8 - 100 & 0xff;
                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */
                    /* WARNING: Could not find normalized switch variable to match jumptable */
  switch(uVar1) {
  case 0:
    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);
code_r0x00317682:
                    /* WARNING: Could not emulate address calculation at 0x0031767f */
                    /* WARNING: Treating indirect jump as call */
    (*UNRECOVERED_JUMPTABLE)();
    return;
  default:
                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();
    return;
  case 9:
                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();
    return;
  case 0x10:
                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();
    return;
  case 0x13:
    lVar3 = *(long *)CONCAT71(uVar6,cVar5);
    param_7 = unaff_retaddr;
    break;
  case 0x16:
  case 0x17:
    *(char *)(lVar3 + -8) =
         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);
                    /* WARNING: Bad instruction - Truncating control flow here */
    halt_baddata();
  }
switchD_00317584_caseD_26:
  *(undefined8 *)((long)plVar4 + 0x10) = param_7;
                    /* WARNING: Could not emulate address calculation at 0x0031764e */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(lVar3 + 0x28))();
  return;
}


PUSH RBX
MOVZX EAX,byte ptr [RSP + 0x20]
LEA R10,[0x392508]
MOV R11,qword ptr [RSP + 0x10]
MOV RBX,qword ptr [RSP + 0x18]
SUB EAX,0x64
MOVZX EAX,AL
MOVSXD RAX,dword ptr [R10 + RAX*0x4]
ADD RAX,R10
JMP RAX
MOV RAX,qword ptr [RDI]
MOV qword ptr [RSP + 0x18],RBX
MOV qword ptr [RSP + 0x10],R11
POP RBX
MOV RAX,qword ptr [RAX + 0x28]
JMP RAX
MOV RAX,qword ptr [RDI]
MOV qword ptr [RSP + 0x18],RBX
MOV qword ptr [RSP + 0x10],R11
POP RBX
MOV RAX,qword ptr [RAX + 0x38]
JMP RAX
MOV RAX,qword ptr [RDI]
MOV qword ptr [RSP + 0x18],RBX
MOV qword ptr [RSP + 0x10],R11
POP RBX
MOV RAX,qword ptr [RAX + 0x20]
JMP RAX
MOV RAX,qword ptr [RDI]
MOV qword ptr [RSP + 0x18],RBX
MOV qword ptr [RSP + 0x10],R11
POP RBX
MOV RAX,qword ptr [RAX + 0x30]
JMP RAX
MOV RAX,qword ptr [RDI]
MOV qword ptr [RSP + 0x18],RBX
MOV qword ptr [RSP + 0x10],R11
POP RBX
MOV RAX,qword ptr [RAX + 0x18]
JMP RAX
(translation_unit "/* WARNING: Control flow encountered bad instruction data */\n/* WARNING: Instruction at (ram,0x00317602) overlaps instruction at (ram,0x00317600)\n    */\n/* WARNING: Removing unreachable block (ram,0x003175fc) */\n\nvoid FUN_00317560(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)\n\n{\n  uint uVar1;\n  ulong uVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  long *plVar4;\n  char cVar5;\n  undefined7 uVar6;\n  undefined8 unaff_retaddr;\n  long lStack_10;\n  \n  uVar6 = (undefined7)((ulong)param_1 >> 8);\n  cVar5 = (char)param_1;\n  plVar4 = (long *)&stack0xfffffffffffffff8;\n  uVar1 = param_9 - 100 & 0xff;\n  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];\n  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;\n  }\n  plVar4 = &lStack_10;\n  lStack_10 = param_8;\n  uVar1 = (byte)param_8 - 100 & 0xff;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  }\nswitchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;\n                    /* WARNING: Could not emulate address calculation at 0x0031764e */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(lVar3 + 0x28))();\n  return;\n}\n\n" comment comment comment (function_definition "void FUN_00317560(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)\n\n{\n  uint uVar1;\n  ulong uVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  long *plVar4;\n  char cVar5;\n  undefined7 uVar6;\n  undefined8 unaff_retaddr;\n  long lStack_10;\n  \n  uVar6 = (undefined7)((ulong)param_1 >> 8);\n  cVar5 = (char)param_1;\n  plVar4 = (long *)&stack0xfffffffffffffff8;\n  uVar1 = param_9 - 100 & 0xff;\n  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];\n  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;\n  }\n  plVar4 = &lStack_10;\n  lStack_10 = param_8;\n  uVar1 = (byte)param_8 - 100 & 0xff;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  }\nswitchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;\n                    /* WARNING: Could not emulate address calculation at 0x0031764e */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(lVar3 + 0x28))();\n  return;\n}" primitive_type (function_declarator "FUN_00317560(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)" identifier (parameter_list "(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "char param_3" primitive_type identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) , (parameter_declaration "undefined8 param_7" type_identifier identifier) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) , (parameter_declaration "byte param_9" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  ulong uVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  long *plVar4;\n  char cVar5;\n  undefined7 uVar6;\n  undefined8 unaff_retaddr;\n  long lStack_10;\n  \n  uVar6 = (undefined7)((ulong)param_1 >> 8);\n  cVar5 = (char)param_1;\n  plVar4 = (long *)&stack0xfffffffffffffff8;\n  uVar1 = param_9 - 100 & 0xff;\n  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];\n  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;\n  }\n  plVar4 = &lStack_10;\n  lStack_10 = param_8;\n  uVar1 = (byte)param_8 - 100 & 0xff;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  }\nswitchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;\n                    /* WARNING: Could not emulate address calculation at 0x0031764e */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(lVar3 + 0x28))();\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "undefined7 uVar6;" type_identifier identifier ;) (declaration "undefined8 unaff_retaddr;" type_identifier identifier ;) (declaration "long lStack_10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "uVar6 = (undefined7)((ulong)param_1 >> 8);" (assignment_expression "uVar6 = (undefined7)((ulong)param_1 >> 8)" identifier = (call_expression "(undefined7)((ulong)param_1 >> 8)" (parenthesized_expression "(undefined7)" ( identifier )) (argument_list "((ulong)param_1 >> 8)" ( (binary_expression "(ulong)param_1 >> 8" (cast_expression "(ulong)param_1" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "cVar5 = (char)param_1;" (assignment_expression "cVar5 = (char)param_1" identifier = (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "plVar4 = (long *)&stack0xfffffffffffffff8;" (assignment_expression "plVar4 = (long *)&stack0xfffffffffffffff8" identifier = (cast_expression "(long *)&stack0xfffffffffffffff8" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xfffffffffffffff8" & identifier))) ;) (expression_statement "uVar1 = param_9 - 100 & 0xff;" (assignment_expression "uVar1 = param_9 - 100 & 0xff" identifier = (binary_expression "param_9 - 100 & 0xff" (binary_expression "param_9 - 100" identifier - number_literal) & number_literal)) ;) (expression_statement "uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];" (assignment_expression "uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1]" identifier = (subscript_expression "(ulong)(int)(&switchD_00317584::caseD_2c)[uVar1]" (call_expression "(ulong)(int)(&switchD_00317584::caseD_2c)" (call_expression "(ulong)(int)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(&switchD_00317584::caseD_2c)" ( (pointer_expression "&switchD_00317584" & identifier) (ERROR "::caseD_2c" : : identifier) ))) [ identifier ])) ;) (expression_statement "lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;" (binary_expression "lVar3 = (long)&switchD_00317584::caseD_2c + uVar2" (assignment_expression "lVar3 = (long)&switchD_00317584" identifier = (cast_expression "(long)&switchD_00317584" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&switchD_00317584" & identifier))) (ERROR "::caseD_2c" : : identifier) + identifier) ;) comment comment (switch_statement "switch(uVar1) {\n  case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;\n  }" switch (parenthesized_expression "(uVar1)" ( identifier )) (compound_statement "{\n  case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;\n  }" { (case_statement "case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x20))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*param_1 + 0x20))();" (call_expression "(**(code **)(*param_1 + 0x20))()" (parenthesized_expression "(**(code **)(*param_1 + 0x20))" ( (pointer_expression "**(code **)(*param_1 + 0x20)" * (pointer_expression "*(code **)(*param_1 + 0x20)" * (cast_expression "(code **)(*param_1 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x38))();\n    return;" default : comment comment (expression_statement "(**(code **)(*param_1 + 0x38))();" (call_expression "(**(code **)(*param_1 + 0x38))()" (parenthesized_expression "(**(code **)(*param_1 + 0x38))" ( (pointer_expression "**(code **)(*param_1 + 0x38)" * (pointer_expression "*(code **)(*param_1 + 0x38)" * (cast_expression "(code **)(*param_1 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x38)" ( (binary_expression "*param_1 + 0x38" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x30))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*param_1 + 0x30))();" (call_expression "(**(code **)(*param_1 + 0x30))()" (parenthesized_expression "(**(code **)(*param_1 + 0x30))" ( (pointer_expression "**(code **)(*param_1 + 0x30)" * (pointer_expression "*(code **)(*param_1 + 0x30)" * (cast_expression "(code **)(*param_1 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x30)" ( (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x18))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*param_1 + 0x18))();" (call_expression "(**(code **)(*param_1 + 0x18))()" (parenthesized_expression "(**(code **)(*param_1 + 0x18))" ( (pointer_expression "**(code **)(*param_1 + 0x18)" * (pointer_expression "*(code **)(*param_1 + 0x18)" * (cast_expression "(code **)(*param_1 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x18)" ( (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*param_1 + 0x28))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*param_1 + 0x28))();" (call_expression "(**(code **)(*param_1 + 0x28))()" (parenthesized_expression "(**(code **)(*param_1 + 0x28))" ( (pointer_expression "**(code **)(*param_1 + 0x28)" * (pointer_expression "*(code **)(*param_1 + 0x28)" * (cast_expression "(code **)(*param_1 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x28)" ( (binary_expression "*param_1 + 0x28" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x16:\n    lVar3 = param_4;\n    break;" case number_literal : (expression_statement "lVar3 = param_4;" (assignment_expression "lVar3 = param_4" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x18:" case number_literal :) (case_statement "case 0x19:" case number_literal :) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1c:" case number_literal :) (case_statement "case 0x1d:" case number_literal :) (case_statement "case 0x1e:" case number_literal :) (case_statement "case 0x20:" case number_literal :) (case_statement "case 0x21:" case number_literal :) (case_statement "case 0x22:" case number_literal :) (case_statement "case 0x23:" case number_literal :) (case_statement "case 0x24:" case number_literal :) (case_statement "case 0x25:" case number_literal :) (case_statement "case 0x27:" case number_literal :) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x2a:" case number_literal :) (case_statement "case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;" case number_literal : (expression_statement "cVar5 = -(0xffffffffffc6daf7 < uVar2);" (assignment_expression "cVar5 = -(0xffffffffffc6daf7 < uVar2)" identifier = (unary_expression "-(0xffffffffffc6daf7 < uVar2)" - (parenthesized_expression "(0xffffffffffc6daf7 < uVar2)" ( (binary_expression "0xffffffffffc6daf7 < uVar2" number_literal < identifier) )))) ;) (expression_statement "lVar3 = param_4 + -1;" (assignment_expression "lVar3 = param_4 + -1" identifier = (binary_expression "param_4 + -1" identifier + number_literal)) ;) (if_statement "if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }" if (parenthesized_expression "(param_4 + -1 != 0 && cVar5 != '\0')" ( (binary_expression "param_4 + -1 != 0 && cVar5 != '\0'" (binary_expression "param_4 + -1 != 0" (binary_expression "param_4 + -1" identifier + number_literal) != number_literal) && (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }" { (if_statement "if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }" if (parenthesized_expression "(param_4 == 2 || cVar5 == '\0')" ( (binary_expression "param_4 == 2 || cVar5 == '\0'" (binary_expression "param_4 == 2" identifier == number_literal) || (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }" { comment (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);" (assignment_expression "*(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2)" (pointer_expression "*(char *)(param_8 + 0x48)" * (cast_expression "(char *)(param_8 + 0x48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x48)" ( (binary_expression "param_8 + 0x48" identifier + number_literal) )))) = (binary_expression "*(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2)" (binary_expression "*(char *)(param_8 + 0x48) + (byte)param_8" (pointer_expression "*(char *)(param_8 + 0x48)" * (cast_expression "(char *)(param_8 + 0x48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x48)" ( (binary_expression "param_8 + 0x48" identifier + number_literal) )))) + (cast_expression "(byte)param_8" ( (type_descriptor "byte" type_identifier) ) identifier)) + (parenthesized_expression "(0xffffffffffc6daf7 < uVar2)" ( (binary_expression "0xffffffffffc6daf7 < uVar2" number_literal < identifier) )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2)" identifier = (binary_expression "(code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2)" (cast_expression "(code *)(ulong)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)((long)&UINT_00392528 + uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&UINT_00392528 + uVar2)" ( (binary_expression "(long)&UINT_00392528 + uVar2" (cast_expression "(long)&UINT_00392528" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&UINT_00392528" & identifier)) + identifier) ))))) ;) (goto_statement "goto code_r0x00317682;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();" case number_literal : comment (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 0x26:\n    goto switchD_00317584_caseD_26;" case number_literal : (goto_statement "goto switchD_00317584_caseD_26;" goto statement_identifier ;)) (case_statement "case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();" case number_literal : comment (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 0x2c:" case number_literal :) (case_statement "case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;" case number_literal : (expression_statement "lStack_10 = 0xa0fff850;" (assignment_expression "lStack_10 = 0xa0fff850" identifier = number_literal) ;) comment comment (expression_statement "(*pcRam0000000041fff0a0)();" (call_expression "(*pcRam0000000041fff0a0)()" (parenthesized_expression "(*pcRam0000000041fff0a0)" ( (pointer_expression "*pcRam0000000041fff0a0" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) })) (expression_statement "plVar4 = &lStack_10;" (assignment_expression "plVar4 = &lStack_10" identifier = (pointer_expression "&lStack_10" & identifier)) ;) (expression_statement "lStack_10 = param_8;" (assignment_expression "lStack_10 = param_8" identifier = identifier) ;) (expression_statement "uVar1 = (byte)param_8 - 100 & 0xff;" (assignment_expression "uVar1 = (byte)param_8 - 100 & 0xff" identifier = (binary_expression "(byte)param_8 - 100 & 0xff" (binary_expression "(byte)param_8 - 100" (cast_expression "(byte)param_8" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) & number_literal)) ;) comment comment (switch_statement "switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  }" switch (parenthesized_expression "(uVar1)" ( identifier )) (compound_statement "{\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  }" { (case_statement "case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;" case number_literal : (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" identifier = (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x20" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) ;) (labeled_statement "code_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();" statement_identifier : comment comment (expression_statement "(*UNRECOVERED_JUMPTABLE)();" (call_expression "(*UNRECOVERED_JUMPTABLE)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "()" ( ))) ;)) (return_statement "return;" return ;)) (case_statement "default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;" default : comment comment (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))" ( (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" * (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x38" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))" ( (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" * (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x30" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))" ( (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" * (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x18" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;" case number_literal : (expression_statement "lVar3 = *(long *)CONCAT71(uVar6,cVar5);" (assignment_expression "lVar3 = *(long *)CONCAT71(uVar6,cVar5)" identifier = (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier )))))) ;) (expression_statement "param_7 = unaff_retaddr;" (assignment_expression "param_7 = unaff_retaddr" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x16:" case number_literal :) (case_statement "case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();" case number_literal : (expression_statement "*(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);" (assignment_expression "*(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" (pointer_expression "*(char *)(lVar3 + -8)" * (cast_expression "(char *)(lVar3 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + -8)" ( (binary_expression "lVar3 + -8" identifier + number_literal) )))) = (binary_expression "*(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" (binary_expression "*(char *)(lVar3 + -8) + param_3" (pointer_expression "*(char *)(lVar3 + -8)" * (cast_expression "(char *)(lVar3 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + -8)" ( (binary_expression "lVar3 + -8" identifier + number_literal) )))) + identifier) + (parenthesized_expression "(0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" ( (binary_expression "0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]" number_literal < (subscript_expression "(&switchD_00317634::caseD_16)[uVar1]" (parenthesized_expression "(&switchD_00317634::caseD_16)" ( (pointer_expression "&switchD_00317634" & identifier) (ERROR "::caseD_16" : : identifier) )) [ identifier ])) )))) ;) comment (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;)) })) (labeled_statement "switchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;" statement_identifier : (expression_statement "*(undefined8 *)((long)plVar4 + 0x10) = param_7;" (assignment_expression "*(undefined8 *)((long)plVar4 + 0x10) = param_7" (pointer_expression "*(undefined8 *)((long)plVar4 + 0x10)" * (cast_expression "(undefined8 *)((long)plVar4 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar4 + 0x10)" ( (binary_expression "(long)plVar4 + 0x10" (cast_expression "(long)plVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;)) comment comment (expression_statement "(**(code **)(lVar3 + 0x28))();" (call_expression "(**(code **)(lVar3 + 0x28))()" (parenthesized_expression "(**(code **)(lVar3 + 0x28))" ( (pointer_expression "**(code **)(lVar3 + 0x28)" * (pointer_expression "*(code **)(lVar3 + 0x28)" * (cast_expression "(code **)(lVar3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x28)" ( (binary_expression "lVar3 + 0x28" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Control flow encountered bad instruction data */\n/* WARNING: Instruction at (ram,0x00317602) overlaps instruction at (ram,0x00317600)\n    */\n/* WARNING: Removing unreachable block (ram,0x003175fc) */\n/* std::istreambuf_iterator<char, std::char_traits<char> >\n   std::__facet_shims::__time_get<char>(std::integral_constant<bool, false>, std::locale::facet\n   const*, std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char,\n   std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*, char) */\n\nvoid __thiscall\nstd::__facet_shims::__time_get<char>\n          (__facet_shims *this,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n          undefined8 param_6,undefined8 param_7,long param_8,byte param_9)\n\n{\n  uint uVar1;\n  ulong uVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  long *plVar4;\n  char cVar5;\n  undefined7 uVar6;\n  undefined8 unaff_retaddr;\n  long lStack_10;\n  \n  uVar6 = (undefined7)((ulong)this >> 8);\n  cVar5 = (char)this;\n  plVar4 = (long *)&stack0xfffffffffffffff8;\n  uVar1 = param_9 - 100 & 0xff;\n  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];\n  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x20))();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x18))();\n    return;\n  case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;\n  }\n  plVar4 = &lStack_10;\n  lStack_10 = param_8;\n  uVar1 = (byte)param_8 - 100 & 0xff;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  }\nswitchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;\n                    /* WARNING: Could not emulate address calculation at 0x0031764e */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(lVar3 + 0x28))();\n  return;\n}\n\n" comment comment comment comment (function_definition "void __thiscall\nstd::__facet_shims::__time_get<char>\n          (__facet_shims *this,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n          undefined8 param_6,undefined8 param_7,long param_8,byte param_9)\n\n{\n  uint uVar1;\n  ulong uVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  long *plVar4;\n  char cVar5;\n  undefined7 uVar6;\n  undefined8 unaff_retaddr;\n  long lStack_10;\n  \n  uVar6 = (undefined7)((ulong)this >> 8);\n  cVar5 = (char)this;\n  plVar4 = (long *)&stack0xfffffffffffffff8;\n  uVar1 = param_9 - 100 & 0xff;\n  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];\n  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x20))();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x18))();\n    return;\n  case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;\n  }\n  plVar4 = &lStack_10;\n  lStack_10 = param_8;\n  uVar1 = (byte)param_8 - 100 & 0xff;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  }\nswitchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;\n                    /* WARNING: Could not emulate address calculation at 0x0031764e */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(lVar3 + 0x28))();\n  return;\n}" primitive_type (ms_call_modifier "__thiscall" __thiscall) (ERROR "std::__facet_shims::" identifier : : identifier : :) (function_declarator "__time_get<char>\n          (__facet_shims *this,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n          undefined8 param_6,undefined8 param_7,long param_8,byte param_9)" identifier (ERROR "<char>" < primitive_type >) (parameter_list "(__facet_shims *this,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n          undefined8 param_6,undefined8 param_7,long param_8,byte param_9)" ( (parameter_declaration "__facet_shims *this" type_identifier (pointer_declarator "*this" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "char param_3" primitive_type identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) , (parameter_declaration "undefined8 param_7" type_identifier identifier) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) , (parameter_declaration "byte param_9" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  ulong uVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  long *plVar4;\n  char cVar5;\n  undefined7 uVar6;\n  undefined8 unaff_retaddr;\n  long lStack_10;\n  \n  uVar6 = (undefined7)((ulong)this >> 8);\n  cVar5 = (char)this;\n  plVar4 = (long *)&stack0xfffffffffffffff8;\n  uVar1 = param_9 - 100 & 0xff;\n  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];\n  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x20))();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x18))();\n    return;\n  case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;\n  }\n  plVar4 = &lStack_10;\n  lStack_10 = param_8;\n  uVar1 = (byte)param_8 - 100 & 0xff;\n                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */\n                    /* WARNING: Could not find normalized switch variable to match jumptable */\n  switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  }\nswitchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;\n                    /* WARNING: Could not emulate address calculation at 0x0031764e */\n                    /* WARNING: Treating indirect jump as call */\n  (**(code **)(lVar3 + 0x28))();\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "undefined7 uVar6;" type_identifier identifier ;) (declaration "undefined8 unaff_retaddr;" type_identifier identifier ;) (declaration "long lStack_10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "uVar6 = (undefined7)((ulong)this >> 8);" (assignment_expression "uVar6 = (undefined7)((ulong)this >> 8)" identifier = (call_expression "(undefined7)((ulong)this >> 8)" (parenthesized_expression "(undefined7)" ( identifier )) (argument_list "((ulong)this >> 8)" ( (binary_expression "(ulong)this >> 8" (cast_expression "(ulong)this" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "cVar5 = (char)this;" (assignment_expression "cVar5 = (char)this" identifier = (cast_expression "(char)this" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "plVar4 = (long *)&stack0xfffffffffffffff8;" (assignment_expression "plVar4 = (long *)&stack0xfffffffffffffff8" identifier = (cast_expression "(long *)&stack0xfffffffffffffff8" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xfffffffffffffff8" & identifier))) ;) (expression_statement "uVar1 = param_9 - 100 & 0xff;" (assignment_expression "uVar1 = param_9 - 100 & 0xff" identifier = (binary_expression "param_9 - 100 & 0xff" (binary_expression "param_9 - 100" identifier - number_literal) & number_literal)) ;) (expression_statement "uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];" (assignment_expression "uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1]" identifier = (subscript_expression "(ulong)(int)(&switchD_00317584::caseD_2c)[uVar1]" (call_expression "(ulong)(int)(&switchD_00317584::caseD_2c)" (call_expression "(ulong)(int)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(&switchD_00317584::caseD_2c)" ( (pointer_expression "&switchD_00317584" & identifier) (ERROR "::caseD_2c" : : identifier) ))) [ identifier ])) ;) (expression_statement "lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;" (binary_expression "lVar3 = (long)&switchD_00317584::caseD_2c + uVar2" (assignment_expression "lVar3 = (long)&switchD_00317584" identifier = (cast_expression "(long)&switchD_00317584" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&switchD_00317584" & identifier))) (ERROR "::caseD_2c" : : identifier) + identifier) ;) comment comment (switch_statement "switch(uVar1) {\n  case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x20))();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x18))();\n    return;\n  case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;\n  }" switch (parenthesized_expression "(uVar1)" ( identifier )) (compound_statement "{\n  case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x20))();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x18))();\n    return;\n  case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;\n  }" { (case_statement "case 0:\n                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x20))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*(long *)this + 0x20))();" (call_expression "(**(code **)(*(long *)this + 0x20))()" (parenthesized_expression "(**(code **)(*(long *)this + 0x20))" ( (pointer_expression "**(code **)(*(long *)this + 0x20)" * (pointer_expression "*(code **)(*(long *)this + 0x20)" * (cast_expression "(code **)(*(long *)this + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)this + 0x20)" ( (binary_expression "*(long *)this + 0x20" (pointer_expression "*(long *)this" * (cast_expression "(long *)this" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "default:\n                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x38))();\n    return;" default : comment comment (expression_statement "(**(code **)(*(long *)this + 0x38))();" (call_expression "(**(code **)(*(long *)this + 0x38))()" (parenthesized_expression "(**(code **)(*(long *)this + 0x38))" ( (pointer_expression "**(code **)(*(long *)this + 0x38)" * (pointer_expression "*(code **)(*(long *)this + 0x38)" * (cast_expression "(code **)(*(long *)this + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)this + 0x38)" ( (binary_expression "*(long *)this + 0x38" (pointer_expression "*(long *)this" * (cast_expression "(long *)this" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 9:\n                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x30))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*(long *)this + 0x30))();" (call_expression "(**(code **)(*(long *)this + 0x30))()" (parenthesized_expression "(**(code **)(*(long *)this + 0x30))" ( (pointer_expression "**(code **)(*(long *)this + 0x30)" * (pointer_expression "*(code **)(*(long *)this + 0x30)" * (cast_expression "(code **)(*(long *)this + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)this + 0x30)" ( (binary_expression "*(long *)this + 0x30" (pointer_expression "*(long *)this" * (cast_expression "(long *)this" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x18))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*(long *)this + 0x18))();" (call_expression "(**(code **)(*(long *)this + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)this + 0x18))" ( (pointer_expression "**(code **)(*(long *)this + 0x18)" * (pointer_expression "*(code **)(*(long *)this + 0x18)" * (cast_expression "(code **)(*(long *)this + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)this + 0x18)" ( (binary_expression "*(long *)this + 0x18" (pointer_expression "*(long *)this" * (cast_expression "(long *)this" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x13:\n                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)this + 0x28))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*(long *)this + 0x28))();" (call_expression "(**(code **)(*(long *)this + 0x28))()" (parenthesized_expression "(**(code **)(*(long *)this + 0x28))" ( (pointer_expression "**(code **)(*(long *)this + 0x28)" * (pointer_expression "*(code **)(*(long *)this + 0x28)" * (cast_expression "(code **)(*(long *)this + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)this + 0x28)" ( (binary_expression "*(long *)this + 0x28" (pointer_expression "*(long *)this" * (cast_expression "(long *)this" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x16:\n    lVar3 = param_4;\n    break;" case number_literal : (expression_statement "lVar3 = param_4;" (assignment_expression "lVar3 = param_4" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x18:" case number_literal :) (case_statement "case 0x19:" case number_literal :) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1c:" case number_literal :) (case_statement "case 0x1d:" case number_literal :) (case_statement "case 0x1e:" case number_literal :) (case_statement "case 0x20:" case number_literal :) (case_statement "case 0x21:" case number_literal :) (case_statement "case 0x22:" case number_literal :) (case_statement "case 0x23:" case number_literal :) (case_statement "case 0x24:" case number_literal :) (case_statement "case 0x25:" case number_literal :) (case_statement "case 0x27:" case number_literal :) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x2a:" case number_literal :) (case_statement "case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;" case number_literal : (expression_statement "cVar5 = -(0xffffffffffc6daf7 < uVar2);" (assignment_expression "cVar5 = -(0xffffffffffc6daf7 < uVar2)" identifier = (unary_expression "-(0xffffffffffc6daf7 < uVar2)" - (parenthesized_expression "(0xffffffffffc6daf7 < uVar2)" ( (binary_expression "0xffffffffffc6daf7 < uVar2" number_literal < identifier) )))) ;) (expression_statement "lVar3 = param_4 + -1;" (assignment_expression "lVar3 = param_4 + -1" identifier = (binary_expression "param_4 + -1" identifier + number_literal)) ;) (if_statement "if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }" if (parenthesized_expression "(param_4 + -1 != 0 && cVar5 != '\0')" ( (binary_expression "param_4 + -1 != 0 && cVar5 != '\0'" (binary_expression "param_4 + -1 != 0" (binary_expression "param_4 + -1" identifier + number_literal) != number_literal) && (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n      if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }" { (if_statement "if (param_4 == 2 || cVar5 == '\0') {\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }" if (parenthesized_expression "(param_4 == 2 || cVar5 == '\0')" ( (binary_expression "param_4 == 2 || cVar5 == '\0'" (binary_expression "param_4 == 2" identifier == number_literal) || (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n                    /* WARNING: Bad instruction - Truncating control flow here */\n        halt_baddata();\n      }" { comment (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);" (assignment_expression "*(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2)" (pointer_expression "*(char *)(param_8 + 0x48)" * (cast_expression "(char *)(param_8 + 0x48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x48)" ( (binary_expression "param_8 + 0x48" identifier + number_literal) )))) = (binary_expression "*(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2)" (binary_expression "*(char *)(param_8 + 0x48) + (byte)param_8" (pointer_expression "*(char *)(param_8 + 0x48)" * (cast_expression "(char *)(param_8 + 0x48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x48)" ( (binary_expression "param_8 + 0x48" identifier + number_literal) )))) + (cast_expression "(byte)param_8" ( (type_descriptor "byte" type_identifier) ) identifier)) + (parenthesized_expression "(0xffffffffffc6daf7 < uVar2)" ( (binary_expression "0xffffffffffc6daf7 < uVar2" number_literal < identifier) )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2)" identifier = (binary_expression "(code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2)" (cast_expression "(code *)(ulong)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)((long)&UINT_00392528 + uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&UINT_00392528 + uVar2)" ( (binary_expression "(long)&UINT_00392528 + uVar2" (cast_expression "(long)&UINT_00392528" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&UINT_00392528" & identifier)) + identifier) ))))) ;) (goto_statement "goto code_r0x00317682;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1f:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();" case number_literal : comment (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 0x26:\n    goto switchD_00317584_caseD_26;" case number_literal : (goto_statement "goto switchD_00317584_caseD_26;" goto statement_identifier ;)) (case_statement "case 0x29:\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();" case number_literal : comment (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 0x2c:" case number_literal :) (case_statement "case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (*pcRam0000000041fff0a0)();\n    return;" case number_literal : (expression_statement "lStack_10 = 0xa0fff850;" (assignment_expression "lStack_10 = 0xa0fff850" identifier = number_literal) ;) comment comment (expression_statement "(*pcRam0000000041fff0a0)();" (call_expression "(*pcRam0000000041fff0a0)()" (parenthesized_expression "(*pcRam0000000041fff0a0)" ( (pointer_expression "*pcRam0000000041fff0a0" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) })) (expression_statement "plVar4 = &lStack_10;" (assignment_expression "plVar4 = &lStack_10" identifier = (pointer_expression "&lStack_10" & identifier)) ;) (expression_statement "lStack_10 = param_8;" (assignment_expression "lStack_10 = param_8" identifier = identifier) ;) (expression_statement "uVar1 = (byte)param_8 - 100 & 0xff;" (assignment_expression "uVar1 = (byte)param_8 - 100 & 0xff" identifier = (binary_expression "(byte)param_8 - 100 & 0xff" (binary_expression "(byte)param_8 - 100" (cast_expression "(byte)param_8" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) & number_literal)) ;) comment comment (switch_statement "switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  }" switch (parenthesized_expression "(uVar1)" ( identifier )) (compound_statement "{\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();\n  }" { (case_statement "case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();\n    return;" case number_literal : (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" identifier = (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x20" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) ;) (labeled_statement "code_r0x00317682:\n                    /* WARNING: Could not emulate address calculation at 0x0031767f */\n                    /* WARNING: Treating indirect jump as call */\n    (*UNRECOVERED_JUMPTABLE)();" statement_identifier : comment comment (expression_statement "(*UNRECOVERED_JUMPTABLE)();" (call_expression "(*UNRECOVERED_JUMPTABLE)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "()" ( ))) ;)) (return_statement "return;" return ;)) (case_statement "default:\n                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;" default : comment comment (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))" ( (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" * (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x38" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 9:\n                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))" ( (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" * (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x30" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x10:\n                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;" case number_literal : comment comment (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))" ( (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" * (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x18" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;" case number_literal : (expression_statement "lVar3 = *(long *)CONCAT71(uVar6,cVar5);" (assignment_expression "lVar3 = *(long *)CONCAT71(uVar6,cVar5)" identifier = (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier )))))) ;) (expression_statement "param_7 = unaff_retaddr;" (assignment_expression "param_7 = unaff_retaddr" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x16:" case number_literal :) (case_statement "case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    /* WARNING: Bad instruction - Truncating control flow here */\n    halt_baddata();" case number_literal : (expression_statement "*(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);" (assignment_expression "*(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" (pointer_expression "*(char *)(lVar3 + -8)" * (cast_expression "(char *)(lVar3 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + -8)" ( (binary_expression "lVar3 + -8" identifier + number_literal) )))) = (binary_expression "*(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" (binary_expression "*(char *)(lVar3 + -8) + param_3" (pointer_expression "*(char *)(lVar3 + -8)" * (cast_expression "(char *)(lVar3 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + -8)" ( (binary_expression "lVar3 + -8" identifier + number_literal) )))) + identifier) + (parenthesized_expression "(0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" ( (binary_expression "0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]" number_literal < (subscript_expression "(&switchD_00317634::caseD_16)[uVar1]" (parenthesized_expression "(&switchD_00317634::caseD_16)" ( (pointer_expression "&switchD_00317634" & identifier) (ERROR "::caseD_16" : : identifier) )) [ identifier ])) )))) ;) comment (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;)) })) (labeled_statement "switchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;" statement_identifier : (expression_statement "*(undefined8 *)((long)plVar4 + 0x10) = param_7;" (assignment_expression "*(undefined8 *)((long)plVar4 + 0x10) = param_7" (pointer_expression "*(undefined8 *)((long)plVar4 + 0x10)" * (cast_expression "(undefined8 *)((long)plVar4 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar4 + 0x10)" ( (binary_expression "(long)plVar4 + 0x10" (cast_expression "(long)plVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;)) comment comment (expression_statement "(**(code **)(lVar3 + 0x28))();" (call_expression "(**(code **)(lVar3 + 0x28))()" (parenthesized_expression "(**(code **)(lVar3 + 0x28))" ( (pointer_expression "**(code **)(lVar3 + 0x28)" * (pointer_expression "*(code **)(lVar3 + 0x28)" * (cast_expression "(code **)(lVar3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x28)" ( (binary_expression "lVar3 + 0x28" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00317560(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)\n\n{\n  uint uVar1;\n  ulong uVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  long *plVar4;\n  char cVar5;\n  undefined7 uVar6;\n  undefined8 unaff_retaddr;\n  long lStack_10;\n  \n  uVar6 = (undefined7)((ulong)param_1 >> 8);\n  cVar5 = (char)param_1;\n  plVar4 = (long *)&stack0xfffffffffffffff8;\n  uVar1 = param_9 - 100 & 0xff;\n  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];\n  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;\n                    \n                    \n  switch(uVar1) {\n  case 0:\n                    \n                    \n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    \n                    \n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    \n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    \n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    \n                    \n    (*pcRam0000000041fff0a0)();\n    return;\n  }\n  plVar4 = &lStack_10;\n  lStack_10 = param_8;\n  uVar1 = (byte)param_8 - 100 & 0xff;\n                    \n                    \n  switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    \n    halt_baddata();\n  }\nswitchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;\n                    \n                    \n  (**(code **)(lVar3 + 0x28))();\n  return;\n}\n\n" (function_definition "void FUN_00317560(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)\n\n{\n  uint uVar1;\n  ulong uVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  long *plVar4;\n  char cVar5;\n  undefined7 uVar6;\n  undefined8 unaff_retaddr;\n  long lStack_10;\n  \n  uVar6 = (undefined7)((ulong)param_1 >> 8);\n  cVar5 = (char)param_1;\n  plVar4 = (long *)&stack0xfffffffffffffff8;\n  uVar1 = param_9 - 100 & 0xff;\n  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];\n  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;\n                    \n                    \n  switch(uVar1) {\n  case 0:\n                    \n                    \n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    \n                    \n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    \n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    \n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    \n                    \n    (*pcRam0000000041fff0a0)();\n    return;\n  }\n  plVar4 = &lStack_10;\n  lStack_10 = param_8;\n  uVar1 = (byte)param_8 - 100 & 0xff;\n                    \n                    \n  switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    \n    halt_baddata();\n  }\nswitchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;\n                    \n                    \n  (**(code **)(lVar3 + 0x28))();\n  return;\n}" primitive_type (function_declarator "FUN_00317560(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)" identifier (parameter_list "(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)" ( (parameter_declaration "long *param_1" (sized_type_specifier "long" long) (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "char param_3" primitive_type identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) , (parameter_declaration "undefined8 param_7" type_identifier identifier) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) , (parameter_declaration "byte param_9" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  ulong uVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  long *plVar4;\n  char cVar5;\n  undefined7 uVar6;\n  undefined8 unaff_retaddr;\n  long lStack_10;\n  \n  uVar6 = (undefined7)((ulong)param_1 >> 8);\n  cVar5 = (char)param_1;\n  plVar4 = (long *)&stack0xfffffffffffffff8;\n  uVar1 = param_9 - 100 & 0xff;\n  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];\n  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;\n                    \n                    \n  switch(uVar1) {\n  case 0:\n                    \n                    \n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    \n                    \n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    \n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    \n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    \n                    \n    (*pcRam0000000041fff0a0)();\n    return;\n  }\n  plVar4 = &lStack_10;\n  lStack_10 = param_8;\n  uVar1 = (byte)param_8 - 100 & 0xff;\n                    \n                    \n  switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    \n    halt_baddata();\n  }\nswitchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;\n                    \n                    \n  (**(code **)(lVar3 + 0x28))();\n  return;\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (declaration "long *plVar4;" (sized_type_specifier "long" long) (pointer_declarator "*plVar4" * identifier) ;) (declaration "char cVar5;" primitive_type identifier ;) (declaration "undefined7 uVar6;" type_identifier identifier ;) (declaration "undefined8 unaff_retaddr;" type_identifier identifier ;) (declaration "long lStack_10;" (sized_type_specifier "long" long) identifier ;) (expression_statement "uVar6 = (undefined7)((ulong)param_1 >> 8);" (assignment_expression "uVar6 = (undefined7)((ulong)param_1 >> 8)" identifier = (call_expression "(undefined7)((ulong)param_1 >> 8)" (parenthesized_expression "(undefined7)" ( identifier )) (argument_list "((ulong)param_1 >> 8)" ( (binary_expression "(ulong)param_1 >> 8" (cast_expression "(ulong)param_1" ( (type_descriptor "ulong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "cVar5 = (char)param_1;" (assignment_expression "cVar5 = (char)param_1" identifier = (cast_expression "(char)param_1" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "plVar4 = (long *)&stack0xfffffffffffffff8;" (assignment_expression "plVar4 = (long *)&stack0xfffffffffffffff8" identifier = (cast_expression "(long *)&stack0xfffffffffffffff8" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (pointer_expression "&stack0xfffffffffffffff8" & identifier))) ;) (expression_statement "uVar1 = param_9 - 100 & 0xff;" (assignment_expression "uVar1 = param_9 - 100 & 0xff" identifier = (binary_expression "param_9 - 100 & 0xff" (binary_expression "param_9 - 100" identifier - number_literal) & number_literal)) ;) (expression_statement "uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];" (assignment_expression "uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1]" identifier = (subscript_expression "(ulong)(int)(&switchD_00317584::caseD_2c)[uVar1]" (call_expression "(ulong)(int)(&switchD_00317584::caseD_2c)" (call_expression "(ulong)(int)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(int)" ( identifier ))) (argument_list "(&switchD_00317584::caseD_2c)" ( (pointer_expression "&switchD_00317584" & identifier) (ERROR "::caseD_2c" : : identifier) ))) [ identifier ])) ;) (expression_statement "lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;" (binary_expression "lVar3 = (long)&switchD_00317584::caseD_2c + uVar2" (assignment_expression "lVar3 = (long)&switchD_00317584" identifier = (cast_expression "(long)&switchD_00317584" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&switchD_00317584" & identifier))) (ERROR "::caseD_2c" : : identifier) + identifier) ;) (switch_statement "switch(uVar1) {\n  case 0:\n                    \n                    \n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    \n                    \n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    \n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    \n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    \n                    \n    (*pcRam0000000041fff0a0)();\n    return;\n  }" switch (parenthesized_expression "(uVar1)" ( identifier )) (compound_statement "{\n  case 0:\n                    \n                    \n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    \n                    \n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    \n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    \n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    \n                    \n    (*pcRam0000000041fff0a0)();\n    return;\n  }" { (case_statement "case 0:\n                    \n                    \n    (**(code **)(*param_1 + 0x20))();\n    return;" case number_literal : (expression_statement "(**(code **)(*param_1 + 0x20))();" (call_expression "(**(code **)(*param_1 + 0x20))()" (parenthesized_expression "(**(code **)(*param_1 + 0x20))" ( (pointer_expression "**(code **)(*param_1 + 0x20)" * (pointer_expression "*(code **)(*param_1 + 0x20)" * (cast_expression "(code **)(*param_1 + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x20)" ( (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "default:\n                    \n                    \n    (**(code **)(*param_1 + 0x38))();\n    return;" default : (expression_statement "(**(code **)(*param_1 + 0x38))();" (call_expression "(**(code **)(*param_1 + 0x38))()" (parenthesized_expression "(**(code **)(*param_1 + 0x38))" ( (pointer_expression "**(code **)(*param_1 + 0x38)" * (pointer_expression "*(code **)(*param_1 + 0x38)" * (cast_expression "(code **)(*param_1 + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x38)" ( (binary_expression "*param_1 + 0x38" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 9:\n                    \n                    \n    (**(code **)(*param_1 + 0x30))();\n    return;" case number_literal : (expression_statement "(**(code **)(*param_1 + 0x30))();" (call_expression "(**(code **)(*param_1 + 0x30))()" (parenthesized_expression "(**(code **)(*param_1 + 0x30))" ( (pointer_expression "**(code **)(*param_1 + 0x30)" * (pointer_expression "*(code **)(*param_1 + 0x30)" * (cast_expression "(code **)(*param_1 + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x30)" ( (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x10:\n                    \n                    \n    (**(code **)(*param_1 + 0x18))();\n    return;" case number_literal : (expression_statement "(**(code **)(*param_1 + 0x18))();" (call_expression "(**(code **)(*param_1 + 0x18))()" (parenthesized_expression "(**(code **)(*param_1 + 0x18))" ( (pointer_expression "**(code **)(*param_1 + 0x18)" * (pointer_expression "*(code **)(*param_1 + 0x18)" * (cast_expression "(code **)(*param_1 + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x18)" ( (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x13:\n                    \n                    \n    (**(code **)(*param_1 + 0x28))();\n    return;" case number_literal : (expression_statement "(**(code **)(*param_1 + 0x28))();" (call_expression "(**(code **)(*param_1 + 0x28))()" (parenthesized_expression "(**(code **)(*param_1 + 0x28))" ( (pointer_expression "**(code **)(*param_1 + 0x28)" * (pointer_expression "*(code **)(*param_1 + 0x28)" * (cast_expression "(code **)(*param_1 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*param_1 + 0x28)" ( (binary_expression "*param_1 + 0x28" (pointer_expression "*param_1" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x16:\n    lVar3 = param_4;\n    break;" case number_literal : (expression_statement "lVar3 = param_4;" (assignment_expression "lVar3 = param_4" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x17:" case number_literal :) (case_statement "case 0x18:" case number_literal :) (case_statement "case 0x19:" case number_literal :) (case_statement "case 0x1a:" case number_literal :) (case_statement "case 0x1b:" case number_literal :) (case_statement "case 0x1c:" case number_literal :) (case_statement "case 0x1d:" case number_literal :) (case_statement "case 0x1e:" case number_literal :) (case_statement "case 0x20:" case number_literal :) (case_statement "case 0x21:" case number_literal :) (case_statement "case 0x22:" case number_literal :) (case_statement "case 0x23:" case number_literal :) (case_statement "case 0x24:" case number_literal :) (case_statement "case 0x25:" case number_literal :) (case_statement "case 0x27:" case number_literal :) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x2a:" case number_literal :) (case_statement "case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;" case number_literal : (expression_statement "cVar5 = -(0xffffffffffc6daf7 < uVar2);" (assignment_expression "cVar5 = -(0xffffffffffc6daf7 < uVar2)" identifier = (unary_expression "-(0xffffffffffc6daf7 < uVar2)" - (parenthesized_expression "(0xffffffffffc6daf7 < uVar2)" ( (binary_expression "0xffffffffffc6daf7 < uVar2" number_literal < identifier) )))) ;) (expression_statement "lVar3 = param_4 + -1;" (assignment_expression "lVar3 = param_4 + -1" identifier = (binary_expression "param_4 + -1" identifier + number_literal)) ;) (if_statement "if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }" if (parenthesized_expression "(param_4 + -1 != 0 && cVar5 != '\0')" ( (binary_expression "param_4 + -1 != 0 && cVar5 != '\0'" (binary_expression "param_4 + -1 != 0" (binary_expression "param_4 + -1" identifier + number_literal) != number_literal) && (binary_expression "cVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }" { (if_statement "if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }" if (parenthesized_expression "(param_4 == 2 || cVar5 == '\0')" ( (binary_expression "param_4 == 2 || cVar5 == '\0'" (binary_expression "param_4 == 2" identifier == number_literal) || (binary_expression "cVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence '))) )) (compound_statement "{\n                    \n        halt_baddata();\n      }" { (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);" (assignment_expression "*(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2)" (pointer_expression "*(char *)(param_8 + 0x48)" * (cast_expression "(char *)(param_8 + 0x48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x48)" ( (binary_expression "param_8 + 0x48" identifier + number_literal) )))) = (binary_expression "*(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2)" (binary_expression "*(char *)(param_8 + 0x48) + (byte)param_8" (pointer_expression "*(char *)(param_8 + 0x48)" * (cast_expression "(char *)(param_8 + 0x48)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x48)" ( (binary_expression "param_8 + 0x48" identifier + number_literal) )))) + (cast_expression "(byte)param_8" ( (type_descriptor "byte" type_identifier) ) identifier)) + (parenthesized_expression "(0xffffffffffc6daf7 < uVar2)" ( (binary_expression "0xffffffffffc6daf7 < uVar2" number_literal < identifier) )))) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2)" identifier = (binary_expression "(code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2)" (cast_expression "(code *)(ulong)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ulong)" ( identifier ))) * (cast_expression "(uint *)((long)&UINT_00392528 + uVar2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)&UINT_00392528 + uVar2)" ( (binary_expression "(long)&UINT_00392528 + uVar2" (cast_expression "(long)&UINT_00392528" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (pointer_expression "&UINT_00392528" & identifier)) + identifier) ))))) ;) (goto_statement "goto code_r0x00317682;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 0x1f:\n                    \n    halt_baddata();" case number_literal : (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 0x26:\n    goto switchD_00317584_caseD_26;" case number_literal : (goto_statement "goto switchD_00317584_caseD_26;" goto statement_identifier ;)) (case_statement "case 0x29:\n                    \n    halt_baddata();" case number_literal : (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;)) (case_statement "case 0x2c:" case number_literal :) (case_statement "case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    \n                    \n    (*pcRam0000000041fff0a0)();\n    return;" case number_literal : (expression_statement "lStack_10 = 0xa0fff850;" (assignment_expression "lStack_10 = 0xa0fff850" identifier = number_literal) ;) (expression_statement "(*pcRam0000000041fff0a0)();" (call_expression "(*pcRam0000000041fff0a0)()" (parenthesized_expression "(*pcRam0000000041fff0a0)" ( (pointer_expression "*pcRam0000000041fff0a0" * identifier) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) })) (expression_statement "plVar4 = &lStack_10;" (assignment_expression "plVar4 = &lStack_10" identifier = (pointer_expression "&lStack_10" & identifier)) ;) (expression_statement "lStack_10 = param_8;" (assignment_expression "lStack_10 = param_8" identifier = identifier) ;) (expression_statement "uVar1 = (byte)param_8 - 100 & 0xff;" (assignment_expression "uVar1 = (byte)param_8 - 100 & 0xff" identifier = (binary_expression "(byte)param_8 - 100 & 0xff" (binary_expression "(byte)param_8 - 100" (cast_expression "(byte)param_8" ( (type_descriptor "byte" type_identifier) ) identifier) - number_literal) & number_literal)) ;) (switch_statement "switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    \n    halt_baddata();\n  }" switch (parenthesized_expression "(uVar1)" ( identifier )) (compound_statement "{\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    \n    halt_baddata();\n  }" { (case_statement "case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();\n    return;" case number_literal : (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" identifier = (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x20" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) ;) (labeled_statement "code_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();" statement_identifier : (expression_statement "(*UNRECOVERED_JUMPTABLE)();" (call_expression "(*UNRECOVERED_JUMPTABLE)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "()" ( ))) ;)) (return_statement "return;" return ;)) (case_statement "default:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;" default : (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))" ( (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" * (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x38" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 9:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;" case number_literal : (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))" ( (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" * (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x30" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x10:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;" case number_literal : (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))" ( (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" * (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" * (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" ( (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x18" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier ))))) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;)) (case_statement "case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;" case number_literal : (expression_statement "lVar3 = *(long *)CONCAT71(uVar6,cVar5);" (assignment_expression "lVar3 = *(long *)CONCAT71(uVar6,cVar5)" identifier = (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" * (cast_expression "(long *)CONCAT71(uVar6,cVar5)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT71(uVar6,cVar5)" identifier (argument_list "(uVar6,cVar5)" ( identifier , identifier )))))) ;) (expression_statement "param_7 = unaff_retaddr;" (assignment_expression "param_7 = unaff_retaddr" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x16:" case number_literal :) (case_statement "case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    \n    halt_baddata();" case number_literal : (expression_statement "*(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);" (assignment_expression "*(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" (pointer_expression "*(char *)(lVar3 + -8)" * (cast_expression "(char *)(lVar3 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + -8)" ( (binary_expression "lVar3 + -8" identifier + number_literal) )))) = (binary_expression "*(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" (binary_expression "*(char *)(lVar3 + -8) + param_3" (pointer_expression "*(char *)(lVar3 + -8)" * (cast_expression "(char *)(lVar3 + -8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + -8)" ( (binary_expression "lVar3 + -8" identifier + number_literal) )))) + identifier) + (parenthesized_expression "(0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" ( (binary_expression "0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]" number_literal < (subscript_expression "(&switchD_00317634::caseD_16)[uVar1]" (parenthesized_expression "(&switchD_00317634::caseD_16)" ( (pointer_expression "&switchD_00317634" & identifier) (ERROR "::caseD_16" : : identifier) )) [ identifier ])) )))) ;) (expression_statement "halt_baddata();" (call_expression "halt_baddata()" identifier (argument_list "()" ( ))) ;)) })) (labeled_statement "switchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;" statement_identifier : (expression_statement "*(undefined8 *)((long)plVar4 + 0x10) = param_7;" (assignment_expression "*(undefined8 *)((long)plVar4 + 0x10) = param_7" (pointer_expression "*(undefined8 *)((long)plVar4 + 0x10)" * (cast_expression "(undefined8 *)((long)plVar4 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)plVar4 + 0x10)" ( (binary_expression "(long)plVar4 + 0x10" (cast_expression "(long)plVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) = identifier) ;)) (expression_statement "(**(code **)(lVar3 + 0x28))();" (call_expression "(**(code **)(lVar3 + 0x28))()" (parenthesized_expression "(**(code **)(lVar3 + 0x28))" ( (pointer_expression "**(code **)(lVar3 + 0x28)" * (pointer_expression "*(code **)(lVar3 + 0x28)" * (cast_expression "(code **)(lVar3 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(lVar3 + 0x28)" ( (binary_expression "lVar3 + 0x28" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (call_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( IDENT ))) (argument_list ( (pointer_expression & IDENT) (ERROR : : IDENT) ))) [ IDENT ])) ;) (expression_statement (binary_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT))) (ERROR : : IDENT) + IDENT) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return ;)) (case_statement default : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return ;)) (case_statement case LIT : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return ;)) (case_statement case LIT : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return ;)) (case_statement case LIT : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression LIT < IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) != LIT) && (binary_expression IDENT != (char_literal ' escape_sequence '))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == (char_literal ' escape_sequence '))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + (parenthesized_expression ( (binary_expression LIT < IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (pointer_expression & IDENT)) + IDENT) ))))) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (return_statement return ;)) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) & LIT)) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (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 *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;)) (return_statement return ;)) (case_statement default : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return ;)) (case_statement case LIT : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return ;)) (case_statement case LIT : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) + (parenthesized_expression ( (binary_expression LIT < (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) (ERROR : : IDENT) )) [ IDENT ])) )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) = IDENT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00317560(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)\n\n{\n  uint uVar1;\n  ulong uVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  long *plVar4;\n  char cVar5;\n  undefined7 uVar6;\n  undefined8 unaff_retaddr;\n  long lStack_10;\n  \n  uVar6 = (undefined7)((ulong)param_1 >> 8);\n  cVar5 = (char)param_1;\n  plVar4 = (long *)&stack0xfffffffffffffff8;\n  uVar1 = param_9 - 100 & 0xff;\n  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];\n  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;\n                    \n                    \n  switch(uVar1) {\n  case 0:\n                    \n                    \n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    \n                    \n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    \n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    \n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    \n                    \n    (*pcRam0000000041fff0a0)();\n    return;\n  }\n  plVar4 = &lStack_10;\n  lStack_10 = param_8;\n  uVar1 = (byte)param_8 - 100 & 0xff;\n                    \n                    \n  switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    \n    halt_baddata();\n  }\nswitchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;\n                    \n                    \n  (**(code **)(lVar3 + 0x28))();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00317560(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)" (identifier "FUN_00317560") (parameter_list "(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,\n                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)" (( "(") (parameter_declaration "long *param_1" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "char param_3" (primitive_type "char") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) (, ",") (parameter_declaration "undefined8 param_5" (type_identifier "undefined8") (identifier "param_5")) (, ",") (parameter_declaration "undefined8 param_6" (type_identifier "undefined8") (identifier "param_6")) (, ",") (parameter_declaration "undefined8 param_7" (type_identifier "undefined8") (identifier "param_7")) (, ",") (parameter_declaration "long param_8" (sized_type_specifier "long" (long "long")) (identifier "param_8")) (, ",") (parameter_declaration "byte param_9" (type_identifier "byte") (identifier "param_9")) () ")"))) (compound_statement "{\n  uint uVar1;\n  ulong uVar2;\n  long lVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  long *plVar4;\n  char cVar5;\n  undefined7 uVar6;\n  undefined8 unaff_retaddr;\n  long lStack_10;\n  \n  uVar6 = (undefined7)((ulong)param_1 >> 8);\n  cVar5 = (char)param_1;\n  plVar4 = (long *)&stack0xfffffffffffffff8;\n  uVar1 = param_9 - 100 & 0xff;\n  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];\n  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;\n                    \n                    \n  switch(uVar1) {\n  case 0:\n                    \n                    \n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    \n                    \n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    \n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    \n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    \n                    \n    (*pcRam0000000041fff0a0)();\n    return;\n  }\n  plVar4 = &lStack_10;\n  lStack_10 = param_8;\n  uVar1 = (byte)param_8 - 100 & 0xff;\n                    \n                    \n  switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    \n    halt_baddata();\n  }\nswitchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;\n                    \n                    \n  (**(code **)(lVar3 + 0x28))();\n  return;\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "ulong uVar2;" (type_identifier "ulong") (identifier "uVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "code *UNRECOVERED_JUMPTABLE;" (type_identifier "code") (pointer_declarator "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) (; ";")) (declaration "long *plVar4;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar4" (* "*") (identifier "plVar4")) (; ";")) (declaration "char cVar5;" (primitive_type "char") (identifier "cVar5") (; ";")) (declaration "undefined7 uVar6;" (type_identifier "undefined7") (identifier "uVar6") (; ";")) (declaration "undefined8 unaff_retaddr;" (type_identifier "undefined8") (identifier "unaff_retaddr") (; ";")) (declaration "long lStack_10;" (sized_type_specifier "long" (long "long")) (identifier "lStack_10") (; ";")) (expression_statement "uVar6 = (undefined7)((ulong)param_1 >> 8);" (assignment_expression "uVar6 = (undefined7)((ulong)param_1 >> 8)" (identifier "uVar6") (= "=") (call_expression "(undefined7)((ulong)param_1 >> 8)" (parenthesized_expression "(undefined7)" (( "(") (identifier "undefined7") () ")")) (argument_list "((ulong)param_1 >> 8)" (( "(") (binary_expression "(ulong)param_1 >> 8" (cast_expression "(ulong)param_1" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "param_1")) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "cVar5 = (char)param_1;" (assignment_expression "cVar5 = (char)param_1" (identifier "cVar5") (= "=") (cast_expression "(char)param_1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_1"))) (; ";")) (expression_statement "plVar4 = (long *)&stack0xfffffffffffffff8;" (assignment_expression "plVar4 = (long *)&stack0xfffffffffffffff8" (identifier "plVar4") (= "=") (cast_expression "(long *)&stack0xfffffffffffffff8" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&stack0xfffffffffffffff8" (& "&") (identifier "stack0xfffffffffffffff8")))) (; ";")) (expression_statement "uVar1 = param_9 - 100 & 0xff;" (assignment_expression "uVar1 = param_9 - 100 & 0xff" (identifier "uVar1") (= "=") (binary_expression "param_9 - 100 & 0xff" (binary_expression "param_9 - 100" (identifier "param_9") (- "-") (number_literal "100")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];" (assignment_expression "uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1]" (identifier "uVar2") (= "=") (subscript_expression "(ulong)(int)(&switchD_00317584::caseD_2c)[uVar1]" (call_expression "(ulong)(int)(&switchD_00317584::caseD_2c)" (call_expression "(ulong)(int)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(int)" (( "(") (identifier "int") () ")"))) (argument_list "(&switchD_00317584::caseD_2c)" (( "(") (pointer_expression "&switchD_00317584" (& "&") (identifier "switchD_00317584")) (ERROR "::caseD_2c" (: ":") (: ":") (identifier "caseD_2c")) () ")"))) ([ "[") (identifier "uVar1") (] "]"))) (; ";")) (expression_statement "lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;" (binary_expression "lVar3 = (long)&switchD_00317584::caseD_2c + uVar2" (assignment_expression "lVar3 = (long)&switchD_00317584" (identifier "lVar3") (= "=") (cast_expression "(long)&switchD_00317584" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&switchD_00317584" (& "&") (identifier "switchD_00317584")))) (ERROR "::caseD_2c" (: ":") (: ":") (identifier "caseD_2c")) (+ "+") (identifier "uVar2")) (; ";")) (switch_statement "switch(uVar1) {\n  case 0:\n                    \n                    \n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    \n                    \n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    \n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    \n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    \n                    \n    (*pcRam0000000041fff0a0)();\n    return;\n  }" (switch "switch") (parenthesized_expression "(uVar1)" (( "(") (identifier "uVar1") () ")")) (compound_statement "{\n  case 0:\n                    \n                    \n    (**(code **)(*param_1 + 0x20))();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*param_1 + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*param_1 + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*param_1 + 0x18))();\n    return;\n  case 0x13:\n                    \n                    \n    (**(code **)(*param_1 + 0x28))();\n    return;\n  case 0x16:\n    lVar3 = param_4;\n    break;\n  case 0x17:\n  case 0x18:\n  case 0x19:\n  case 0x1a:\n  case 0x1b:\n  case 0x1c:\n  case 0x1d:\n  case 0x1e:\n  case 0x20:\n  case 0x21:\n  case 0x22:\n  case 0x23:\n  case 0x24:\n  case 0x25:\n  case 0x27:\n  case 0x28:\n  case 0x2a:\n  case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;\n  case 0x1f:\n                    \n    halt_baddata();\n  case 0x26:\n    goto switchD_00317584_caseD_26;\n  case 0x29:\n                    \n    halt_baddata();\n  case 0x2c:\n  case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    \n                    \n    (*pcRam0000000041fff0a0)();\n    return;\n  }" ({ "{") (case_statement "case 0:\n                    \n                    \n    (**(code **)(*param_1 + 0x20))();\n    return;" (case "case") (number_literal "0") (: ":") (expression_statement "(**(code **)(*param_1 + 0x20))();" (call_expression "(**(code **)(*param_1 + 0x20))()" (parenthesized_expression "(**(code **)(*param_1 + 0x20))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x20)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x20)" (* "*") (cast_expression "(code **)(*param_1 + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x20)" (( "(") (binary_expression "*param_1 + 0x20" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "default:\n                    \n                    \n    (**(code **)(*param_1 + 0x38))();\n    return;" (default "default") (: ":") (expression_statement "(**(code **)(*param_1 + 0x38))();" (call_expression "(**(code **)(*param_1 + 0x38))()" (parenthesized_expression "(**(code **)(*param_1 + 0x38))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x38)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x38)" (* "*") (cast_expression "(code **)(*param_1 + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x38)" (( "(") (binary_expression "*param_1 + 0x38" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 9:\n                    \n                    \n    (**(code **)(*param_1 + 0x30))();\n    return;" (case "case") (number_literal "9") (: ":") (expression_statement "(**(code **)(*param_1 + 0x30))();" (call_expression "(**(code **)(*param_1 + 0x30))()" (parenthesized_expression "(**(code **)(*param_1 + 0x30))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x30)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x30)" (* "*") (cast_expression "(code **)(*param_1 + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x30)" (( "(") (binary_expression "*param_1 + 0x30" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 0x10:\n                    \n                    \n    (**(code **)(*param_1 + 0x18))();\n    return;" (case "case") (number_literal "0x10") (: ":") (expression_statement "(**(code **)(*param_1 + 0x18))();" (call_expression "(**(code **)(*param_1 + 0x18))()" (parenthesized_expression "(**(code **)(*param_1 + 0x18))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x18)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x18)" (* "*") (cast_expression "(code **)(*param_1 + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x18)" (( "(") (binary_expression "*param_1 + 0x18" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 0x13:\n                    \n                    \n    (**(code **)(*param_1 + 0x28))();\n    return;" (case "case") (number_literal "0x13") (: ":") (expression_statement "(**(code **)(*param_1 + 0x28))();" (call_expression "(**(code **)(*param_1 + 0x28))()" (parenthesized_expression "(**(code **)(*param_1 + 0x28))" (( "(") (pointer_expression "**(code **)(*param_1 + 0x28)" (* "*") (pointer_expression "*(code **)(*param_1 + 0x28)" (* "*") (cast_expression "(code **)(*param_1 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*param_1 + 0x28)" (( "(") (binary_expression "*param_1 + 0x28" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 0x16:\n    lVar3 = param_4;\n    break;" (case "case") (number_literal "0x16") (: ":") (expression_statement "lVar3 = param_4;" (assignment_expression "lVar3 = param_4" (identifier "lVar3") (= "=") (identifier "param_4")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x17:" (case "case") (number_literal "0x17") (: ":")) (case_statement "case 0x18:" (case "case") (number_literal "0x18") (: ":")) (case_statement "case 0x19:" (case "case") (number_literal "0x19") (: ":")) (case_statement "case 0x1a:" (case "case") (number_literal "0x1a") (: ":")) (case_statement "case 0x1b:" (case "case") (number_literal "0x1b") (: ":")) (case_statement "case 0x1c:" (case "case") (number_literal "0x1c") (: ":")) (case_statement "case 0x1d:" (case "case") (number_literal "0x1d") (: ":")) (case_statement "case 0x1e:" (case "case") (number_literal "0x1e") (: ":")) (case_statement "case 0x20:" (case "case") (number_literal "0x20") (: ":")) (case_statement "case 0x21:" (case "case") (number_literal "0x21") (: ":")) (case_statement "case 0x22:" (case "case") (number_literal "0x22") (: ":")) (case_statement "case 0x23:" (case "case") (number_literal "0x23") (: ":")) (case_statement "case 0x24:" (case "case") (number_literal "0x24") (: ":")) (case_statement "case 0x25:" (case "case") (number_literal "0x25") (: ":")) (case_statement "case 0x27:" (case "case") (number_literal "0x27") (: ":")) (case_statement "case 0x28:" (case "case") (number_literal "0x28") (: ":")) (case_statement "case 0x2a:" (case "case") (number_literal "0x2a") (: ":")) (case_statement "case 0x2b:\n    cVar5 = -(0xffffffffffc6daf7 < uVar2);\n    lVar3 = param_4 + -1;\n    if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }\n    break;" (case "case") (number_literal "0x2b") (: ":") (expression_statement "cVar5 = -(0xffffffffffc6daf7 < uVar2);" (assignment_expression "cVar5 = -(0xffffffffffc6daf7 < uVar2)" (identifier "cVar5") (= "=") (unary_expression "-(0xffffffffffc6daf7 < uVar2)" (- "-") (parenthesized_expression "(0xffffffffffc6daf7 < uVar2)" (( "(") (binary_expression "0xffffffffffc6daf7 < uVar2" (number_literal "0xffffffffffc6daf7") (< "<") (identifier "uVar2")) () ")")))) (; ";")) (expression_statement "lVar3 = param_4 + -1;" (assignment_expression "lVar3 = param_4 + -1" (identifier "lVar3") (= "=") (binary_expression "param_4 + -1" (identifier "param_4") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (param_4 + -1 != 0 && cVar5 != '\0') {\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }" (if "if") (parenthesized_expression "(param_4 + -1 != 0 && cVar5 != '\0')" (( "(") (binary_expression "param_4 + -1 != 0 && cVar5 != '\0'" (binary_expression "param_4 + -1 != 0" (binary_expression "param_4 + -1" (identifier "param_4") (+ "+") (number_literal "-1")) (!= "!=") (number_literal "0")) (&& "&&") (binary_expression "cVar5 != '\0'" (identifier "cVar5") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (compound_statement "{\n      if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }\n      *(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);\n      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);\n      goto code_r0x00317682;\n    }" ({ "{") (if_statement "if (param_4 == 2 || cVar5 == '\0') {\n                    \n        halt_baddata();\n      }" (if "if") (parenthesized_expression "(param_4 == 2 || cVar5 == '\0')" (( "(") (binary_expression "param_4 == 2 || cVar5 == '\0'" (binary_expression "param_4 == 2" (identifier "param_4") (== "==") (number_literal "2")) (|| "||") (binary_expression "cVar5 == '\0'" (identifier "cVar5") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")")) (compound_statement "{\n                    \n        halt_baddata();\n      }" ({ "{") (expression_statement "halt_baddata();" (call_expression "halt_baddata()" (identifier "halt_baddata") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);" (assignment_expression "*(char *)(param_8 + 0x48) =\n           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2)" (pointer_expression "*(char *)(param_8 + 0x48)" (* "*") (cast_expression "(char *)(param_8 + 0x48)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 0x48)" (( "(") (binary_expression "param_8 + 0x48" (identifier "param_8") (+ "+") (number_literal "0x48")) () ")")))) (= "=") (binary_expression "*(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2)" (binary_expression "*(char *)(param_8 + 0x48) + (byte)param_8" (pointer_expression "*(char *)(param_8 + 0x48)" (* "*") (cast_expression "(char *)(param_8 + 0x48)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 0x48)" (( "(") (binary_expression "param_8 + 0x48" (identifier "param_8") (+ "+") (number_literal "0x48")) () ")")))) (+ "+") (cast_expression "(byte)param_8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "param_8"))) (+ "+") (parenthesized_expression "(0xffffffffffc6daf7 < uVar2)" (( "(") (binary_expression "0xffffffffffc6daf7 < uVar2" (number_literal "0xffffffffffc6daf7") (< "<") (identifier "uVar2")) () ")")))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (binary_expression "(code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2)" (cast_expression "(code *)(ulong)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")"))) (* "*") (cast_expression "(uint *)((long)&UINT_00392528 + uVar2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)&UINT_00392528 + uVar2)" (( "(") (binary_expression "(long)&UINT_00392528 + uVar2" (cast_expression "(long)&UINT_00392528" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (pointer_expression "&UINT_00392528" (& "&") (identifier "UINT_00392528"))) (+ "+") (identifier "uVar2")) () ")"))))) (; ";")) (goto_statement "goto code_r0x00317682;" (goto "goto") (statement_identifier "code_r0x00317682") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1f:\n                    \n    halt_baddata();" (case "case") (number_literal "0x1f") (: ":") (expression_statement "halt_baddata();" (call_expression "halt_baddata()" (identifier "halt_baddata") (argument_list "()" (( "(") () ")"))) (; ";"))) (case_statement "case 0x26:\n    goto switchD_00317584_caseD_26;" (case "case") (number_literal "0x26") (: ":") (goto_statement "goto switchD_00317584_caseD_26;" (goto "goto") (statement_identifier "switchD_00317584_caseD_26") (; ";"))) (case_statement "case 0x29:\n                    \n    halt_baddata();" (case "case") (number_literal "0x29") (: ":") (expression_statement "halt_baddata();" (call_expression "halt_baddata()" (identifier "halt_baddata") (argument_list "()" (( "(") () ")"))) (; ";"))) (case_statement "case 0x2c:" (case "case") (number_literal "0x2c") (: ":")) (case_statement "case 0x2d:\n    lStack_10 = 0xa0fff850;\n                    \n                    \n    (*pcRam0000000041fff0a0)();\n    return;" (case "case") (number_literal "0x2d") (: ":") (expression_statement "lStack_10 = 0xa0fff850;" (assignment_expression "lStack_10 = 0xa0fff850" (identifier "lStack_10") (= "=") (number_literal "0xa0fff850")) (; ";")) (expression_statement "(*pcRam0000000041fff0a0)();" (call_expression "(*pcRam0000000041fff0a0)()" (parenthesized_expression "(*pcRam0000000041fff0a0)" (( "(") (pointer_expression "*pcRam0000000041fff0a0" (* "*") (identifier "pcRam0000000041fff0a0")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (} "}"))) (expression_statement "plVar4 = &lStack_10;" (assignment_expression "plVar4 = &lStack_10" (identifier "plVar4") (= "=") (pointer_expression "&lStack_10" (& "&") (identifier "lStack_10"))) (; ";")) (expression_statement "lStack_10 = param_8;" (assignment_expression "lStack_10 = param_8" (identifier "lStack_10") (= "=") (identifier "param_8")) (; ";")) (expression_statement "uVar1 = (byte)param_8 - 100 & 0xff;" (assignment_expression "uVar1 = (byte)param_8 - 100 & 0xff" (identifier "uVar1") (= "=") (binary_expression "(byte)param_8 - 100 & 0xff" (binary_expression "(byte)param_8 - 100" (cast_expression "(byte)param_8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "param_8")) (- "-") (number_literal "100")) (& "&") (number_literal "0xff"))) (; ";")) (switch_statement "switch(uVar1) {\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    \n    halt_baddata();\n  }" (switch "switch") (parenthesized_expression "(uVar1)" (( "(") (identifier "uVar1") () ")")) (compound_statement "{\n  case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();\n    return;\n  default:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;\n  case 9:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;\n  case 0x10:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;\n  case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;\n  case 0x16:\n  case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    \n    halt_baddata();\n  }" ({ "{") (case_statement "case 0:\n    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);\ncode_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();\n    return;" (case "case") (number_literal "0") (: ":") (expression_statement "UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);" (assignment_expression "UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" (identifier "UNRECOVERED_JUMPTABLE") (= "=") (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" (* "*") (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x20)" (( "(") (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x20" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" (* "*") (cast_expression "(long *)CONCAT71(uVar6,cVar5)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT71(uVar6,cVar5)" (identifier "CONCAT71") (argument_list "(uVar6,cVar5)" (( "(") (identifier "uVar6") (, ",") (identifier "cVar5") () ")"))))) (+ "+") (number_literal "0x20")) () ")"))))) (; ";")) (labeled_statement "code_r0x00317682:\n                    \n                    \n    (*UNRECOVERED_JUMPTABLE)();" (statement_identifier "code_r0x00317682") (: ":") (expression_statement "(*UNRECOVERED_JUMPTABLE)();" (call_expression "(*UNRECOVERED_JUMPTABLE)()" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" (( "(") (pointer_expression "*UNRECOVERED_JUMPTABLE" (* "*") (identifier "UNRECOVERED_JUMPTABLE")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";"))) (case_statement "default:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();\n    return;" (default "default") (: ":") (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))" (( "(") (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" (* "*") (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" (* "*") (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x38)" (( "(") (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x38" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" (* "*") (cast_expression "(long *)CONCAT71(uVar6,cVar5)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT71(uVar6,cVar5)" (identifier "CONCAT71") (argument_list "(uVar6,cVar5)" (( "(") (identifier "uVar6") (, ",") (identifier "cVar5") () ")"))))) (+ "+") (number_literal "0x38")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 9:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();\n    return;" (case "case") (number_literal "9") (: ":") (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))" (( "(") (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" (* "*") (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" (* "*") (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x30)" (( "(") (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x30" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" (* "*") (cast_expression "(long *)CONCAT71(uVar6,cVar5)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT71(uVar6,cVar5)" (identifier "CONCAT71") (argument_list "(uVar6,cVar5)" (( "(") (identifier "uVar6") (, ",") (identifier "cVar5") () ")"))))) (+ "+") (number_literal "0x30")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 0x10:\n                    \n                    \n    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();\n    return;" (case "case") (number_literal "0x10") (: ":") (expression_statement "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();" (call_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))()" (parenthesized_expression "(**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))" (( "(") (pointer_expression "**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" (* "*") (pointer_expression "*(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" (* "*") (cast_expression "(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(long *)CONCAT71(uVar6,cVar5) + 0x18)" (( "(") (binary_expression "*(long *)CONCAT71(uVar6,cVar5) + 0x18" (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" (* "*") (cast_expression "(long *)CONCAT71(uVar6,cVar5)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT71(uVar6,cVar5)" (identifier "CONCAT71") (argument_list "(uVar6,cVar5)" (( "(") (identifier "uVar6") (, ",") (identifier "cVar5") () ")"))))) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";"))) (case_statement "case 0x13:\n    lVar3 = *(long *)CONCAT71(uVar6,cVar5);\n    param_7 = unaff_retaddr;\n    break;" (case "case") (number_literal "0x13") (: ":") (expression_statement "lVar3 = *(long *)CONCAT71(uVar6,cVar5);" (assignment_expression "lVar3 = *(long *)CONCAT71(uVar6,cVar5)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)CONCAT71(uVar6,cVar5)" (* "*") (cast_expression "(long *)CONCAT71(uVar6,cVar5)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT71(uVar6,cVar5)" (identifier "CONCAT71") (argument_list "(uVar6,cVar5)" (( "(") (identifier "uVar6") (, ",") (identifier "cVar5") () ")")))))) (; ";")) (expression_statement "param_7 = unaff_retaddr;" (assignment_expression "param_7 = unaff_retaddr" (identifier "param_7") (= "=") (identifier "unaff_retaddr")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x16:" (case "case") (number_literal "0x16") (: ":")) (case_statement "case 0x17:\n    *(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);\n                    \n    halt_baddata();" (case "case") (number_literal "0x17") (: ":") (expression_statement "*(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);" (assignment_expression "*(char *)(lVar3 + -8) =\n         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" (pointer_expression "*(char *)(lVar3 + -8)" (* "*") (cast_expression "(char *)(lVar3 + -8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + -8)" (( "(") (binary_expression "lVar3 + -8" (identifier "lVar3") (+ "+") (number_literal "-8")) () ")")))) (= "=") (binary_expression "*(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" (binary_expression "*(char *)(lVar3 + -8) + param_3" (pointer_expression "*(char *)(lVar3 + -8)" (* "*") (cast_expression "(char *)(lVar3 + -8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + -8)" (( "(") (binary_expression "lVar3 + -8" (identifier "lVar3") (+ "+") (number_literal "-8")) () ")")))) (+ "+") (identifier "param_3")) (+ "+") (parenthesized_expression "(0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1])" (( "(") (binary_expression "0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]" (number_literal "0xffc6da9f") (< "<") (subscript_expression "(&switchD_00317634::caseD_16)[uVar1]" (parenthesized_expression "(&switchD_00317634::caseD_16)" (( "(") (pointer_expression "&switchD_00317634" (& "&") (identifier "switchD_00317634")) (ERROR "::caseD_16" (: ":") (: ":") (identifier "caseD_16")) () ")")) ([ "[") (identifier "uVar1") (] "]"))) () ")")))) (; ";")) (expression_statement "halt_baddata();" (call_expression "halt_baddata()" (identifier "halt_baddata") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (labeled_statement "switchD_00317584_caseD_26:\n  *(undefined8 *)((long)plVar4 + 0x10) = param_7;" (statement_identifier "switchD_00317584_caseD_26") (: ":") (expression_statement "*(undefined8 *)((long)plVar4 + 0x10) = param_7;" (assignment_expression "*(undefined8 *)((long)plVar4 + 0x10) = param_7" (pointer_expression "*(undefined8 *)((long)plVar4 + 0x10)" (* "*") (cast_expression "(undefined8 *)((long)plVar4 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)plVar4 + 0x10)" (( "(") (binary_expression "(long)plVar4 + 0x10" (cast_expression "(long)plVar4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "plVar4")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "param_7")) (; ";"))) (expression_statement "(**(code **)(lVar3 + 0x28))();" (call_expression "(**(code **)(lVar3 + 0x28))()" (parenthesized_expression "(**(code **)(lVar3 + 0x28))" (( "(") (pointer_expression "**(code **)(lVar3 + 0x28)" (* "*") (pointer_expression "*(code **)(lVar3 + 0x28)" (* "*") (cast_expression "(code **)(lVar3 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(lVar3 + 0x28)" (( "(") (binary_expression "lVar3 + 0x28" (identifier "lVar3") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x00317602) overlaps instruction at (ram,0x00317600)
    */
/* WARNING: Removing unreachable block (ram,0x003175fc) */
/* std::istreambuf_iterator<char, std::char_traits<char> >
   std::__facet_shims::__time_get<char>(std::integral_constant<bool, false>, std::locale::facet
   const*, std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char,
   std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*, char) */

void __thiscall
std::type_1::function_1<char>
          (type_1 *this,type_2 param_2,char var_9,long var_3,type_2 param_5,
          type_2 param_6,type_2 param_7,long var_6,type_3 var_1)

{
  type_4 uVar1;
  type_5 var_2;
  long var_8;
  type_6 *UNRECOVERED_JUMPTABLE;
  long *plVar4;
  char var_4;
  type_7 uVar6;
  type_2 unaff_retaddr;
  long lStack_10;
  
  uVar6 = (type_7)((type_5)this >> 8);
  var_4 = (char)this;
  plVar4 = (long *)&stack0xfffffffffffffff8;
  uVar1 = var_1 - 100 & 0xff;
  var_2 = (type_5)(int)(&switchD_00317584::caseD_2c)[uVar1];
  var_8 = (long)&switchD_00317584::caseD_2c + var_2;
                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */
                    /* WARNING: Could not find normalized switch variable to match jumptable */
  switch(uVar1) {
  case 0:
                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(type_6 **)(*(long *)this + 0x20))();
    return;
  default:
                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(type_6 **)(*(long *)this + 0x38))();
    return;
  case 9:
                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(type_6 **)(*(long *)this + 0x30))();
    return;
  case 0x10:
                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(type_6 **)(*(long *)this + 0x18))();
    return;
  case 0x13:
                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(type_6 **)(*(long *)this + 0x28))();
    return;
  case 0x16:
    var_8 = var_3;
    break;
  case 0x17:
  case 0x18:
  case 0x19:
  case 0x1a:
  case 0x1b:
  case 0x1c:
  case 0x1d:
  case 0x1e:
  case 0x20:
  case 0x21:
  case 0x22:
  case 0x23:
  case 0x24:
  case 0x25:
  case 0x27:
  case 0x28:
  case 0x2a:
  case 0x2b:
    var_4 = -(0xffffffffffc6daf7 < var_2);
    var_8 = var_3 + -1;
    if (var_3 + -1 != 0 && var_4 != '\0') {
      if (var_3 == 2 || var_4 == '\0') {
                    /* WARNING: Bad instruction - Truncating control flow here */
        var_5();
      }
      *(char *)(var_6 + 0x48) =
           *(char *)(var_6 + 0x48) + (type_3)var_6 + (0xffffffffffc6daf7 < var_2);
      UNRECOVERED_JUMPTABLE = (type_6 *)(type_5)*(type_4 *)((long)&UINT_00392528 + var_2);
      goto code_r0x00317682;
    }
    break;
  case 0x1f:
                    /* WARNING: Bad instruction - Truncating control flow here */
    var_5();
  case 0x26:
    goto switchD_00317584_caseD_26;
  case 0x29:
                    /* WARNING: Bad instruction - Truncating control flow here */
    var_5();
  case 0x2c:
  case 0x2d:
    lStack_10 = 0xa0fff850;
                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*pcRam0000000041fff0a0)();
    return;
  }
  plVar4 = &lStack_10;
  lStack_10 = var_6;
  uVar1 = (type_3)var_6 - 100 & 0xff;
                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */
                    /* WARNING: Could not find normalized switch variable to match jumptable */
  switch(uVar1) {
  case 0:
    UNRECOVERED_JUMPTABLE = *(type_6 **)(*(long *)var_7(uVar6,var_4) + 0x20);
code_r0x00317682:
                    /* WARNING: Could not emulate address calculation at 0x0031767f */
                    /* WARNING: Treating indirect jump as call */
    (*UNRECOVERED_JUMPTABLE)();
    return;
  default:
                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(type_6 **)(*(long *)var_7(uVar6,var_4) + 0x38))();
    return;
  case 9:
                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(type_6 **)(*(long *)var_7(uVar6,var_4) + 0x30))();
    return;
  case 0x10:
                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(type_6 **)(*(long *)var_7(uVar6,var_4) + 0x18))();
    return;
  case 0x13:
    var_8 = *(long *)var_7(uVar6,var_4);
    param_7 = unaff_retaddr;
    break;
  case 0x16:
  case 0x17:
    *(char *)(var_8 + -8) =
         *(char *)(var_8 + -8) + var_9 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);
                    /* WARNING: Bad instruction - Truncating control flow here */
    var_5();
  }
switchD_00317584_caseD_26:
  *(type_2 *)((long)plVar4 + 0x10) = param_7;
                    /* WARNING: Could not emulate address calculation at 0x0031764e */
                    /* WARNING: Treating indirect jump as call */
  (**(type_6 **)(var_8 + 0x28))();
  return;
}


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

/* WARNING: Control flow encountered bad instruction data */
/* WARNING: Instruction at (ram,0x00317602) overlaps instruction at (ram,0x00317600)
    */
/* WARNING: Removing unreachable block (ram,0x003175fc) */

void MASKED(long *param_1,undefined8 param_2,char param_3,long param_4,undefined8 param_5,
                 undefined8 param_6,undefined8 param_7,long param_8,byte param_9)

{
  uint uVar1;
  ulong uVar2;
  long lVar3;
  code *UNRECOVERED_JUMPTABLE;
  long *plVar4;
  char cVar5;
  undefined7 uVar6;
  undefined8 unaff_retaddr;
  long lStack_10;
  
  uVar6 = (undefined7)((ulong)param_1 >> 8);
  cVar5 = (char)param_1;
  plVar4 = (long *)&stack0xfffffffffffffff8;
  uVar1 = param_9 - 100 & 0xff;
  uVar2 = (ulong)(int)(&switchD_00317584::caseD_2c)[uVar1];
  lVar3 = (long)&switchD_00317584::caseD_2c + uVar2;
                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */
                    /* WARNING: Could not find normalized switch variable to match jumptable */
  switch(uVar1) {
  case 0:
                    /* WARNING: Could not recover jumptable at 0x003175d2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*param_1 + 0x20))();
    return;
  default:
                    /* WARNING: Could not recover jumptable at 0x003175ba. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*param_1 + 0x38))();
    return;
  case 9:
                    /* WARNING: Could not recover jumptable at 0x003175ea. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*param_1 + 0x30))();
    return;
  case 0x10:
                    /* WARNING: Could not recover jumptable at 0x00317602. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*param_1 + 0x18))();
    return;
  case 0x13:
                    /* WARNING: Could not recover jumptable at 0x003175a2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*param_1 + 0x28))();
    return;
  case 0x16:
    lVar3 = param_4;
    break;
  case 0x17:
  case 0x18:
  case 0x19:
  case 0x1a:
  case 0x1b:
  case 0x1c:
  case 0x1d:
  case 0x1e:
  case 0x20:
  case 0x21:
  case 0x22:
  case 0x23:
  case 0x24:
  case 0x25:
  case 0x27:
  case 0x28:
  case 0x2a:
  case 0x2b:
    cVar5 = -(0xffffffffffc6daf7 < uVar2);
    lVar3 = param_4 + -1;
    if (param_4 + -1 != 0 && cVar5 != '\0') {
      if (param_4 == 2 || cVar5 == '\0') {
                    /* WARNING: Bad instruction - Truncating control flow here */
        halt_baddata();
      }
      *(char *)(param_8 + 0x48) =
           *(char *)(param_8 + 0x48) + (byte)param_8 + (0xffffffffffc6daf7 < uVar2);
      UNRECOVERED_JUMPTABLE = (code *)(ulong)*(uint *)((long)&UINT_00392528 + uVar2);
      goto code_r0x00317682;
    }
    break;
  case 0x1f:
                    /* WARNING: Bad instruction - Truncating control flow here */
    halt_baddata();
  case 0x26:
    goto switchD_00317584_caseD_26;
  case 0x29:
                    /* WARNING: Bad instruction - Truncating control flow here */
    halt_baddata();
  case 0x2c:
  case 0x2d:
    lStack_10 = 0xa0fff850;
                    /* WARNING: Could not recover jumptable at 0x0039250f. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (*pcRam0000000041fff0a0)();
    return;
  }
  plVar4 = &lStack_10;
  lStack_10 = param_8;
  uVar1 = (byte)param_8 - 100 & 0xff;
                    /* WARNING (jumptable): Sanity check requires truncation of jumptable */
                    /* WARNING: Could not find normalized switch variable to match jumptable */
  switch(uVar1) {
  case 0:
    UNRECOVERED_JUMPTABLE = *(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x20);
code_r0x00317682:
                    /* WARNING: Could not emulate address calculation at 0x0031767f */
                    /* WARNING: Treating indirect jump as call */
    (*UNRECOVERED_JUMPTABLE)();
    return;
  default:
                    /* WARNING: Could not recover jumptable at 0x0031766a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x38))();
    return;
  case 9:
                    /* WARNING: Could not recover jumptable at 0x0031769a. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x30))();
    return;
  case 0x10:
                    /* WARNING: Could not recover jumptable at 0x003176b2. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(*(long *)CONCAT71(uVar6,cVar5) + 0x18))();
    return;
  case 0x13:
    lVar3 = *(long *)CONCAT71(uVar6,cVar5);
    param_7 = unaff_retaddr;
    break;
  case 0x16:
  case 0x17:
    *(char *)(lVar3 + -8) =
         *(char *)(lVar3 + -8) + param_3 + (0xffc6da9f < (&switchD_00317634::caseD_16)[uVar1]);
                    /* WARNING: Bad instruction - Truncating control flow here */
    halt_baddata();
  }
switchD_00317584_caseD_26:
  *(undefined8 *)((long)plVar4 + 0x10) = param_7;
                    /* WARNING: Could not emulate address calculation at 0x0031764e */
                    /* WARNING: Treating indirect jump as call */
  (**(code **)(lVar3 + 0x28))();
  return;
}

