
void sv_shcompat(char *name)

{
  byte bVar1;
  undefined *UNRECOVERED_JUMPTABLE_00;
  SHELL_VAR *pSVar2;
  int *piVar3;
  int iVar4;
  char *format;
  byte *pbVar5;
  int iVar6;
  
  pSVar2 = find_variable(name);
  if ((pSVar2 == (SHELL_VAR *)0x0) || (pbVar5 = (byte *)pSVar2->value, pbVar5 == (byte *)0x0))
  goto LAB_000562a4;
  bVar1 = *pbVar5;
  iVar6 = (int)(char)bVar1;
  if (iVar6 == 0) goto LAB_000562a4;
  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();
  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;
  iVar4 = *piVar3;
  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {
    bVar1 = pbVar5[1];
    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0)) &&
       (pbVar5[3] == 0)) {
      iVar6 = (iVar6 + -0x30) * 10 + (char)pbVar5[2] + -0x30;
    }
    else {
      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0)) goto LAB_00056270;
      iVar6 = (iVar6 + -0x30) * 10 + (char)bVar1 + -0x30;
    }
    if (iVar6 - 0x1fU < 0x14) {
      *(int *)PTR_shell_compatibility_level_00144898 = iVar6;
                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(code *)UNRECOVERED_JUMPTABLE_00)();
      return;
    }
  }
LAB_00056270:
  format = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);
  internal_error(format,name,pbVar5);
LAB_000562a4:
  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;
  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;
                    /* WARNING: Could not recover jumptable at 0x000562c0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)UNRECOVERED_JUMPTABLE_00)();
  return;
}



void sv_shcompat(undefined4 param_1)

{
  byte bVar1;
  undefined *UNRECOVERED_JUMPTABLE_00;
  int iVar2;
  int *piVar3;
  int iVar4;
  undefined4 uVar5;
  byte *pbVar6;
  
  iVar2 = find_variable();
  if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;
  bVar1 = *pbVar6;
  iVar2 = (int)(char)bVar1;
  if (iVar2 == 0) goto LAB_000562a4;
  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();
  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;
  iVar4 = *piVar3;
  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {
    bVar1 = pbVar6[1];
    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&
       (pbVar6[3] == 0)) {
      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;
    }
    else {
      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;
      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;
    }
    if (iVar2 - 0x1fU < 0x14) {
      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;
                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(code *)UNRECOVERED_JUMPTABLE_00)();
      return;
    }
  }
LAB_00056270:
  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);
  internal_error(uVar5,param_1,pbVar6);
LAB_000562a4:
  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;
  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;
                    /* WARNING: Could not recover jumptable at 0x000562c0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)UNRECOVERED_JUMPTABLE_00)();
  return;
}


lui gp,0xf
addiu gp,gp,0x63c4
addu gp,gp,t9
addiu sp,sp,-0x28
lw t9,-0x7db8(gp)
sw gp,0x10(sp)
sw s2,0x20(sp)
or s2,a0,zero
sw ra,0x24(sp)
sw s1,0x1c(sp)
bal 0x00055be0
_sw s0,0x18(sp)
beq v0,zero,0x000562a0
_lw gp,0x10(sp)
lw s0,0x4(v0)
beq s0,zero,0x000562a4
_lw v0,-0x7ca8(gp)
lb s1,0x0(s0)
beq s1,zero,0x000562a4
_lw t9,-0x6344(gp)
jalr t9
_nop
andi v1,s1,0xff
lw v0,0x0(v0)
sll v1,v1,0x1
addu v1,v0,v1
lhu v1,0x0(v1)
andi v1,v1,0x8
beq v1,zero,0x0005626c
_lw gp,0x10(sp)
lb a0,0x1(s0)
li v1,0x2e
beq a0,v1,0x000562c8
_andi v1,a0,0xff
sll v1,v1,0x1
addu v0,v0,v1
lhu v0,0x0(v0)
andi v0,v0,0x8
beq v0,zero,0x00056270
_lw a1,-0x7fc8(gp)
lb v0,0x2(s0)
bne v0,zero,0x00056270
_addiu s1,s1,-0x30
addiu a0,a0,-0x30
sll v0,s1,0x2
addu s1,v0,s1
sll s1,s1,0x1
addu s1,s1,a0
addiu v0,s1,-0x1f
sltiu v0,v0,0x14
beq v0,zero,0x0005626c
_lw v0,-0x7ca8(gp)
lw ra,0x24(sp)
lw s2,0x20(sp)
lw s0,0x18(sp)
lw t9,-0x75e8(gp)
sw s1,0x0(v0)
lw s1,0x1c(sp)
jr t9
_addiu sp,sp,0x28
lw a1,-0x7fc8(gp)
li a2,0x5
lw t9,-0x60a8(gp)
or a0,zero,zero
jalr t9
_addiu a1,a1,0x6d84
or a2,s0,zero
lw gp,0x10(sp)
or a1,s2,zero
lw t9,-0x7d44(gp)
bal 0x0005faf8
_or a0,v0,zero
lw gp,0x10(sp)
lw v0,-0x7ca8(gp)
li v1,0x32
lw ra,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
lw t9,-0x75e8(gp)
sw v1,0x0(v0)
jr t9
_addiu sp,sp,0x28
lb a1,0x2(s0)
andi v1,a1,0xff
sll v1,v1,0x1
addu v1,v0,v1
lhu v1,0x0(v1)
andi v1,v1,0x8
beq v1,zero,0x00056204
_andi v1,a0,0xff
lb v1,0x3(s0)
bne v1,zero,0x00056204
_andi v1,a0,0xff
addiu v0,s1,-0x30
addiu a1,a1,-0x30
sll s1,v0,0x2
addu s1,s1,v0
sll s1,s1,0x1
b 0x0005623c
_addu s1,s1,a1
(translation_unit "void sv_shcompat(undefined4 param_1)\n\n{\n  byte bVar1;\n  undefined *UNRECOVERED_JUMPTABLE_00;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 uVar5;\n  byte *pbVar6;\n  \n  iVar2 = find_variable();\n  if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;\n  bVar1 = *pbVar6;\n  iVar2 = (int)(char)bVar1;\n  if (iVar2 == 0) goto LAB_000562a4;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  iVar4 = *piVar3;\n  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }\nLAB_00056270:\n  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);\n  internal_error(uVar5,param_1,pbVar6);\nLAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;\n                    /* WARNING: Could not recover jumptable at 0x000562c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)UNRECOVERED_JUMPTABLE_00)();\n  return;\n}\n\n" (function_definition "void sv_shcompat(undefined4 param_1)\n\n{\n  byte bVar1;\n  undefined *UNRECOVERED_JUMPTABLE_00;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 uVar5;\n  byte *pbVar6;\n  \n  iVar2 = find_variable();\n  if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;\n  bVar1 = *pbVar6;\n  iVar2 = (int)(char)bVar1;\n  if (iVar2 == 0) goto LAB_000562a4;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  iVar4 = *piVar3;\n  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }\nLAB_00056270:\n  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);\n  internal_error(uVar5,param_1,pbVar6);\nLAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;\n                    /* WARNING: Could not recover jumptable at 0x000562c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)UNRECOVERED_JUMPTABLE_00)();\n  return;\n}" primitive_type (function_declarator "sv_shcompat(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  undefined *UNRECOVERED_JUMPTABLE_00;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 uVar5;\n  byte *pbVar6;\n  \n  iVar2 = find_variable();\n  if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;\n  bVar1 = *pbVar6;\n  iVar2 = (int)(char)bVar1;\n  if (iVar2 == 0) goto LAB_000562a4;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  iVar4 = *piVar3;\n  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }\nLAB_00056270:\n  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);\n  internal_error(uVar5,param_1,pbVar6);\nLAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;\n                    /* WARNING: Could not recover jumptable at 0x000562c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)UNRECOVERED_JUMPTABLE_00)();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *UNRECOVERED_JUMPTABLE_00;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (expression_statement "iVar2 = find_variable();" (assignment_expression "iVar2 = find_variable()" identifier = (call_expression "find_variable()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;" if (parenthesized_expression "((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0))" ( (binary_expression "(iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)" ( (comma_expression "pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0" (assignment_expression "pbVar6 = *(byte **)(iVar2 + 4)" identifier = (pointer_expression "*(byte **)(iVar2 + 4)" * (cast_expression "(byte **)(iVar2 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) , (binary_expression "pbVar6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000562a4;" goto statement_identifier ;)) (expression_statement "bVar1 = *pbVar6;" (assignment_expression "bVar1 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) (expression_statement "iVar2 = (int)(char)bVar1;" (assignment_expression "iVar2 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if (iVar2 == 0) goto LAB_000562a4;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000562a4;" goto statement_identifier ;)) (expression_statement "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_001461fc)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_001461fc)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_001461fc)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_001461fc" * (cast_expression "(code *)PTR___ctype_b_loc_001461fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58" identifier = identifier) ;) (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }" if (parenthesized_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8)" ( (binary_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)bVar1 * 2)" ( (binary_expression "iVar4 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }" { (expression_statement "bVar1 = pbVar6[1];" (assignment_expression "bVar1 = pbVar6[1]" identifier = (subscript_expression "pbVar6[1]" identifier [ number_literal ])) ;) (if_statement "if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" if (parenthesized_expression "((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0))" ( (binary_expression "(((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)" (parenthesized_expression "(((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0))" ( (binary_expression "((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)" (parenthesized_expression "((char)bVar1 == 0x2e)" ( (binary_expression "(char)bVar1 == 0x2e" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) == number_literal) )) && (parenthesized_expression "((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8)" ( (binary_expression "*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)pbVar6[2] * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)pbVar6[2] * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)pbVar6[2] * 2)" ( (binary_expression "iVar4 + (uint)pbVar6[2] * 2" identifier + (binary_expression "(uint)pbVar6[2] * 2" (cast_expression "(uint)pbVar6[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar6[2]" identifier [ number_literal ])) * number_literal)) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(pbVar6[3] == 0)" ( (binary_expression "pbVar6[3] == 0" (subscript_expression "pbVar6[3]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }" { (expression_statement "iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;" (assignment_expression "iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30" identifier = (binary_expression "(iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30" (binary_expression "(iVar2 + -0x30) * 10 + (char)pbVar6[2]" (binary_expression "(iVar2 + -0x30) * 10" (parenthesized_expression "(iVar2 + -0x30)" ( (binary_expression "iVar2 + -0x30" identifier + number_literal) )) * number_literal) + (cast_expression "(char)pbVar6[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar6[2]" identifier [ number_literal ]))) + number_literal)) ;) }) (else_clause "else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" else (compound_statement "{\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" { (if_statement "if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;" if (parenthesized_expression "(((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0))" ( (binary_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)" (parenthesized_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8)" ( (binary_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)bVar1 * 2)" ( (binary_expression "iVar4 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pbVar6[2] != 0)" ( (binary_expression "pbVar6[2] != 0" (subscript_expression "pbVar6[2]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_00056270;" goto statement_identifier ;)) (expression_statement "iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;" (assignment_expression "iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30" identifier = (binary_expression "(iVar2 + -0x30) * 10 + (char)bVar1 + -0x30" (binary_expression "(iVar2 + -0x30) * 10 + (char)bVar1" (binary_expression "(iVar2 + -0x30) * 10" (parenthesized_expression "(iVar2 + -0x30)" ( (binary_expression "iVar2 + -0x30" identifier + number_literal) )) * number_literal) + (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) + number_literal)) ;) }))) (if_statement "if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }" if (parenthesized_expression "(iVar2 - 0x1fU < 0x14)" ( (binary_expression "iVar2 - 0x1fU < 0x14" (binary_expression "iVar2 - 0x1fU" identifier - number_literal) < number_literal) )) (compound_statement "{\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }" { (expression_statement "*(int *)PTR_shell_compatibility_level_00144898 = iVar2;" (assignment_expression "*(int *)PTR_shell_compatibility_level_00144898 = iVar2" (pointer_expression "*(int *)PTR_shell_compatibility_level_00144898" * (cast_expression "(int *)PTR_shell_compatibility_level_00144898" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) comment comment (expression_statement "(*(code *)UNRECOVERED_JUMPTABLE_00)();" (call_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*(code *)UNRECOVERED_JUMPTABLE_00" * (cast_expression "(code *)UNRECOVERED_JUMPTABLE_00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) })) (labeled_statement "LAB_00056270:\n  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);" statement_identifier : (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x6d84,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x6d84" identifier + number_literal) , number_literal )))) ;)) (expression_statement "internal_error(uVar5,param_1,pbVar6);" (call_expression "internal_error(uVar5,param_1,pbVar6)" identifier (argument_list "(uVar5,param_1,pbVar6)" ( identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58" identifier = identifier) ;)) (expression_statement "*(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;" (assignment_expression "*(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32" (pointer_expression "*(undefined4 *)PTR_shell_compatibility_level_00144898" * (cast_expression "(undefined4 *)PTR_shell_compatibility_level_00144898" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) comment comment (expression_statement "(*(code *)UNRECOVERED_JUMPTABLE_00)();" (call_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*(code *)UNRECOVERED_JUMPTABLE_00" * (cast_expression "(code *)UNRECOVERED_JUMPTABLE_00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void sv_shcompat(char *name)\n\n{\n  byte bVar1;\n  undefined *UNRECOVERED_JUMPTABLE_00;\n  SHELL_VAR *pSVar2;\n  int *piVar3;\n  int iVar4;\n  char *format;\n  byte *pbVar5;\n  int iVar6;\n  \n  pSVar2 = find_variable(name);\n  if ((pSVar2 == (SHELL_VAR *)0x0) || (pbVar5 = (byte *)pSVar2->value, pbVar5 == (byte *)0x0))\n  goto LAB_000562a4;\n  bVar1 = *pbVar5;\n  iVar6 = (int)(char)bVar1;\n  if (iVar6 == 0) goto LAB_000562a4;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  iVar4 = *piVar3;\n  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar5[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0)) &&\n       (pbVar5[3] == 0)) {\n      iVar6 = (iVar6 + -0x30) * 10 + (char)pbVar5[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0)) goto LAB_00056270;\n      iVar6 = (iVar6 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar6 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar6;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }\nLAB_00056270:\n  format = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);\n  internal_error(format,name,pbVar5);\nLAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;\n                    /* WARNING: Could not recover jumptable at 0x000562c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)UNRECOVERED_JUMPTABLE_00)();\n  return;\n}\n\n" (function_definition "void sv_shcompat(char *name)\n\n{\n  byte bVar1;\n  undefined *UNRECOVERED_JUMPTABLE_00;\n  SHELL_VAR *pSVar2;\n  int *piVar3;\n  int iVar4;\n  char *format;\n  byte *pbVar5;\n  int iVar6;\n  \n  pSVar2 = find_variable(name);\n  if ((pSVar2 == (SHELL_VAR *)0x0) || (pbVar5 = (byte *)pSVar2->value, pbVar5 == (byte *)0x0))\n  goto LAB_000562a4;\n  bVar1 = *pbVar5;\n  iVar6 = (int)(char)bVar1;\n  if (iVar6 == 0) goto LAB_000562a4;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  iVar4 = *piVar3;\n  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar5[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0)) &&\n       (pbVar5[3] == 0)) {\n      iVar6 = (iVar6 + -0x30) * 10 + (char)pbVar5[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0)) goto LAB_00056270;\n      iVar6 = (iVar6 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar6 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar6;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }\nLAB_00056270:\n  format = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);\n  internal_error(format,name,pbVar5);\nLAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;\n                    /* WARNING: Could not recover jumptable at 0x000562c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)UNRECOVERED_JUMPTABLE_00)();\n  return;\n}" primitive_type (function_declarator "sv_shcompat(char *name)" identifier (parameter_list "(char *name)" ( (parameter_declaration "char *name" primitive_type (pointer_declarator "*name" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  undefined *UNRECOVERED_JUMPTABLE_00;\n  SHELL_VAR *pSVar2;\n  int *piVar3;\n  int iVar4;\n  char *format;\n  byte *pbVar5;\n  int iVar6;\n  \n  pSVar2 = find_variable(name);\n  if ((pSVar2 == (SHELL_VAR *)0x0) || (pbVar5 = (byte *)pSVar2->value, pbVar5 == (byte *)0x0))\n  goto LAB_000562a4;\n  bVar1 = *pbVar5;\n  iVar6 = (int)(char)bVar1;\n  if (iVar6 == 0) goto LAB_000562a4;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  iVar4 = *piVar3;\n  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar5[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0)) &&\n       (pbVar5[3] == 0)) {\n      iVar6 = (iVar6 + -0x30) * 10 + (char)pbVar5[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0)) goto LAB_00056270;\n      iVar6 = (iVar6 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar6 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar6;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }\nLAB_00056270:\n  format = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);\n  internal_error(format,name,pbVar5);\nLAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;\n                    /* WARNING: Could not recover jumptable at 0x000562c0. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)UNRECOVERED_JUMPTABLE_00)();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *UNRECOVERED_JUMPTABLE_00;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" * identifier) ;) (declaration "SHELL_VAR *pSVar2;" type_identifier (pointer_declarator "*pSVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (expression_statement "pSVar2 = find_variable(name);" (assignment_expression "pSVar2 = find_variable(name)" identifier = (call_expression "find_variable(name)" identifier (argument_list "(name)" ( identifier )))) ;) (if_statement "if ((pSVar2 == (SHELL_VAR *)0x0) || (pbVar5 = (byte *)pSVar2->value, pbVar5 == (byte *)0x0))\n  goto LAB_000562a4;" if (parenthesized_expression "((pSVar2 == (SHELL_VAR *)0x0) || (pbVar5 = (byte *)pSVar2->value, pbVar5 == (byte *)0x0))" ( (binary_expression "(pSVar2 == (SHELL_VAR *)0x0) || (pbVar5 = (byte *)pSVar2->value, pbVar5 == (byte *)0x0)" (parenthesized_expression "(pSVar2 == (SHELL_VAR *)0x0)" ( (binary_expression "pSVar2 == (SHELL_VAR *)0x0" identifier == (cast_expression "(SHELL_VAR *)0x0" ( (type_descriptor "SHELL_VAR *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pbVar5 = (byte *)pSVar2->value, pbVar5 == (byte *)0x0)" ( (comma_expression "pbVar5 = (byte *)pSVar2->value, pbVar5 == (byte *)0x0" (assignment_expression "pbVar5 = (byte *)pSVar2->value" identifier = (cast_expression "(byte *)pSVar2->value" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pSVar2->value" identifier -> field_identifier))) , (binary_expression "pbVar5 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000562a4;" goto statement_identifier ;)) (expression_statement "bVar1 = *pbVar5;" (assignment_expression "bVar1 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (expression_statement "iVar6 = (int)(char)bVar1;" (assignment_expression "iVar6 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if (iVar6 == 0) goto LAB_000562a4;" if (parenthesized_expression "(iVar6 == 0)" ( (binary_expression "iVar6 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000562a4;" goto statement_identifier ;)) (expression_statement "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_001461fc)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_001461fc)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_001461fc)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_001461fc" * (cast_expression "(code *)PTR___ctype_b_loc_001461fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58" identifier = identifier) ;) (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar5[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0)) &&\n       (pbVar5[3] == 0)) {\n      iVar6 = (iVar6 + -0x30) * 10 + (char)pbVar5[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0)) goto LAB_00056270;\n      iVar6 = (iVar6 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar6 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar6;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }" if (parenthesized_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8)" ( (binary_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)bVar1 * 2)" ( (binary_expression "iVar4 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    bVar1 = pbVar5[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0)) &&\n       (pbVar5[3] == 0)) {\n      iVar6 = (iVar6 + -0x30) * 10 + (char)pbVar5[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0)) goto LAB_00056270;\n      iVar6 = (iVar6 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar6 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar6;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }" { (expression_statement "bVar1 = pbVar5[1];" (assignment_expression "bVar1 = pbVar5[1]" identifier = (subscript_expression "pbVar5[1]" identifier [ number_literal ])) ;) (if_statement "if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0)) &&\n       (pbVar5[3] == 0)) {\n      iVar6 = (iVar6 + -0x30) * 10 + (char)pbVar5[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0)) goto LAB_00056270;\n      iVar6 = (iVar6 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" if (parenthesized_expression "((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0)) &&\n       (pbVar5[3] == 0))" ( (binary_expression "(((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0)) &&\n       (pbVar5[3] == 0)" (parenthesized_expression "(((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0))" ( (binary_expression "((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0)" (parenthesized_expression "((char)bVar1 == 0x2e)" ( (binary_expression "(char)bVar1 == 0x2e" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) == number_literal) )) && (parenthesized_expression "((*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8) != 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8)" ( (binary_expression "*(ushort *)(iVar4 + (uint)pbVar5[2] * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)pbVar5[2] * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)pbVar5[2] * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)pbVar5[2] * 2)" ( (binary_expression "iVar4 + (uint)pbVar5[2] * 2" identifier + (binary_expression "(uint)pbVar5[2] * 2" (cast_expression "(uint)pbVar5[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar5[2]" identifier [ number_literal ])) * number_literal)) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(pbVar5[3] == 0)" ( (binary_expression "pbVar5[3] == 0" (subscript_expression "pbVar5[3]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      iVar6 = (iVar6 + -0x30) * 10 + (char)pbVar5[2] + -0x30;\n    }" { (expression_statement "iVar6 = (iVar6 + -0x30) * 10 + (char)pbVar5[2] + -0x30;" (assignment_expression "iVar6 = (iVar6 + -0x30) * 10 + (char)pbVar5[2] + -0x30" identifier = (binary_expression "(iVar6 + -0x30) * 10 + (char)pbVar5[2] + -0x30" (binary_expression "(iVar6 + -0x30) * 10 + (char)pbVar5[2]" (binary_expression "(iVar6 + -0x30) * 10" (parenthesized_expression "(iVar6 + -0x30)" ( (binary_expression "iVar6 + -0x30" identifier + number_literal) )) * number_literal) + (cast_expression "(char)pbVar5[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar5[2]" identifier [ number_literal ]))) + number_literal)) ;) }) (else_clause "else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0)) goto LAB_00056270;\n      iVar6 = (iVar6 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" else (compound_statement "{\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0)) goto LAB_00056270;\n      iVar6 = (iVar6 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" { (if_statement "if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0)) goto LAB_00056270;" if (parenthesized_expression "(((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0))" ( (binary_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar5[2] != 0)" (parenthesized_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8)" ( (binary_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)bVar1 * 2)" ( (binary_expression "iVar4 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pbVar5[2] != 0)" ( (binary_expression "pbVar5[2] != 0" (subscript_expression "pbVar5[2]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_00056270;" goto statement_identifier ;)) (expression_statement "iVar6 = (iVar6 + -0x30) * 10 + (char)bVar1 + -0x30;" (assignment_expression "iVar6 = (iVar6 + -0x30) * 10 + (char)bVar1 + -0x30" identifier = (binary_expression "(iVar6 + -0x30) * 10 + (char)bVar1 + -0x30" (binary_expression "(iVar6 + -0x30) * 10 + (char)bVar1" (binary_expression "(iVar6 + -0x30) * 10" (parenthesized_expression "(iVar6 + -0x30)" ( (binary_expression "iVar6 + -0x30" identifier + number_literal) )) * number_literal) + (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) + number_literal)) ;) }))) (if_statement "if (iVar6 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar6;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }" if (parenthesized_expression "(iVar6 - 0x1fU < 0x14)" ( (binary_expression "iVar6 - 0x1fU < 0x14" (binary_expression "iVar6 - 0x1fU" identifier - number_literal) < number_literal) )) (compound_statement "{\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar6;\n                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }" { (expression_statement "*(int *)PTR_shell_compatibility_level_00144898 = iVar6;" (assignment_expression "*(int *)PTR_shell_compatibility_level_00144898 = iVar6" (pointer_expression "*(int *)PTR_shell_compatibility_level_00144898" * (cast_expression "(int *)PTR_shell_compatibility_level_00144898" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) comment comment (expression_statement "(*(code *)UNRECOVERED_JUMPTABLE_00)();" (call_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*(code *)UNRECOVERED_JUMPTABLE_00" * (cast_expression "(code *)UNRECOVERED_JUMPTABLE_00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) })) (labeled_statement "LAB_00056270:\n  format = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);" statement_identifier : (expression_statement "format = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);" (assignment_expression "format = (char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5)" identifier = (cast_expression "(char *)(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x6d84,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x6d84" identifier + number_literal) , number_literal ))))) ;)) (expression_statement "internal_error(format,name,pbVar5);" (call_expression "internal_error(format,name,pbVar5)" identifier (argument_list "(format,name,pbVar5)" ( identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58" identifier = identifier) ;)) (expression_statement "*(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;" (assignment_expression "*(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32" (pointer_expression "*(undefined4 *)PTR_shell_compatibility_level_00144898" * (cast_expression "(undefined4 *)PTR_shell_compatibility_level_00144898" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) comment comment (expression_statement "(*(code *)UNRECOVERED_JUMPTABLE_00)();" (call_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*(code *)UNRECOVERED_JUMPTABLE_00" * (cast_expression "(code *)UNRECOVERED_JUMPTABLE_00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void sv_shcompat(undefined4 param_1)\n\n{\n  byte bVar1;\n  undefined *UNRECOVERED_JUMPTABLE_00;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 uVar5;\n  byte *pbVar6;\n  \n  iVar2 = find_variable();\n  if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;\n  bVar1 = *pbVar6;\n  iVar2 = (int)(char)bVar1;\n  if (iVar2 == 0) goto LAB_000562a4;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  iVar4 = *piVar3;\n  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }\nLAB_00056270:\n  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);\n  internal_error(uVar5,param_1,pbVar6);\nLAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;\n                    \n                    \n  (*(code *)UNRECOVERED_JUMPTABLE_00)();\n  return;\n}\n\n" (function_definition "void sv_shcompat(undefined4 param_1)\n\n{\n  byte bVar1;\n  undefined *UNRECOVERED_JUMPTABLE_00;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 uVar5;\n  byte *pbVar6;\n  \n  iVar2 = find_variable();\n  if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;\n  bVar1 = *pbVar6;\n  iVar2 = (int)(char)bVar1;\n  if (iVar2 == 0) goto LAB_000562a4;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  iVar4 = *piVar3;\n  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }\nLAB_00056270:\n  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);\n  internal_error(uVar5,param_1,pbVar6);\nLAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;\n                    \n                    \n  (*(code *)UNRECOVERED_JUMPTABLE_00)();\n  return;\n}" primitive_type (function_declarator "sv_shcompat(undefined4 param_1)" identifier (parameter_list "(undefined4 param_1)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) ))) (compound_statement "{\n  byte bVar1;\n  undefined *UNRECOVERED_JUMPTABLE_00;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 uVar5;\n  byte *pbVar6;\n  \n  iVar2 = find_variable();\n  if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;\n  bVar1 = *pbVar6;\n  iVar2 = (int)(char)bVar1;\n  if (iVar2 == 0) goto LAB_000562a4;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  iVar4 = *piVar3;\n  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }\nLAB_00056270:\n  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);\n  internal_error(uVar5,param_1,pbVar6);\nLAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;\n                    \n                    \n  (*(code *)UNRECOVERED_JUMPTABLE_00)();\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *UNRECOVERED_JUMPTABLE_00;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (expression_statement "iVar2 = find_variable();" (assignment_expression "iVar2 = find_variable()" identifier = (call_expression "find_variable()" identifier (argument_list "()" ( )))) ;) (if_statement "if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;" if (parenthesized_expression "((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0))" ( (binary_expression "(iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)" ( (comma_expression "pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0" (assignment_expression "pbVar6 = *(byte **)(iVar2 + 4)" identifier = (pointer_expression "*(byte **)(iVar2 + 4)" * (cast_expression "(byte **)(iVar2 + 4)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) ))))) , (binary_expression "pbVar6 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (goto_statement "goto LAB_000562a4;" goto statement_identifier ;)) (expression_statement "bVar1 = *pbVar6;" (assignment_expression "bVar1 = *pbVar6" identifier = (pointer_expression "*pbVar6" * identifier)) ;) (expression_statement "iVar2 = (int)(char)bVar1;" (assignment_expression "iVar2 = (int)(char)bVar1" identifier = (cast_expression "(int)(char)bVar1" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (if_statement "if (iVar2 == 0) goto LAB_000562a4;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000562a4;" goto statement_identifier ;)) (expression_statement "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)()" identifier = (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_001461fc)()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR___ctype_b_loc_001461fc)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_001461fc)" ( (pointer_expression "*(code *)PTR___ctype_b_loc_001461fc" * (cast_expression "(code *)PTR___ctype_b_loc_001461fc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))))) ;) (expression_statement "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58" identifier = identifier) ;) (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" identifier = (pointer_expression "*piVar3" * identifier)) ;) (if_statement "if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }" if (parenthesized_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8)" ( (binary_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)bVar1 * 2)" ( (binary_expression "iVar4 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }" { (expression_statement "bVar1 = pbVar6[1];" (assignment_expression "bVar1 = pbVar6[1]" identifier = (subscript_expression "pbVar6[1]" identifier [ number_literal ])) ;) (if_statement "if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" if (parenthesized_expression "((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0))" ( (binary_expression "(((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)" (parenthesized_expression "(((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0))" ( (binary_expression "((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)" (parenthesized_expression "((char)bVar1 == 0x2e)" ( (binary_expression "(char)bVar1 == 0x2e" (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier) == number_literal) )) && (parenthesized_expression "((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8)" ( (binary_expression "*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)pbVar6[2] * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)pbVar6[2] * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)pbVar6[2] * 2)" ( (binary_expression "iVar4 + (uint)pbVar6[2] * 2" identifier + (binary_expression "(uint)pbVar6[2] * 2" (cast_expression "(uint)pbVar6[2]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "pbVar6[2]" identifier [ number_literal ])) * number_literal)) )))) & number_literal) )) != number_literal) ))) )) && (parenthesized_expression "(pbVar6[3] == 0)" ( (binary_expression "pbVar6[3] == 0" (subscript_expression "pbVar6[3]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }" { (expression_statement "iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;" (assignment_expression "iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30" identifier = (binary_expression "(iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30" (binary_expression "(iVar2 + -0x30) * 10 + (char)pbVar6[2]" (binary_expression "(iVar2 + -0x30) * 10" (parenthesized_expression "(iVar2 + -0x30)" ( (binary_expression "iVar2 + -0x30" identifier + number_literal) )) * number_literal) + (cast_expression "(char)pbVar6[2]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pbVar6[2]" identifier [ number_literal ]))) + number_literal)) ;) }) (else_clause "else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" else (compound_statement "{\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" { (if_statement "if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;" if (parenthesized_expression "(((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0))" ( (binary_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)" (parenthesized_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0)" ( (binary_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8)" ( (binary_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2)" * (cast_expression "(ushort *)(iVar4 + (uint)bVar1 * 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + (uint)bVar1 * 2)" ( (binary_expression "iVar4 + (uint)bVar1 * 2" identifier + (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) )))) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pbVar6[2] != 0)" ( (binary_expression "pbVar6[2] != 0" (subscript_expression "pbVar6[2]" identifier [ number_literal ]) != number_literal) ))) )) (goto_statement "goto LAB_00056270;" goto statement_identifier ;)) (expression_statement "iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;" (assignment_expression "iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30" identifier = (binary_expression "(iVar2 + -0x30) * 10 + (char)bVar1 + -0x30" (binary_expression "(iVar2 + -0x30) * 10 + (char)bVar1" (binary_expression "(iVar2 + -0x30) * 10" (parenthesized_expression "(iVar2 + -0x30)" ( (binary_expression "iVar2 + -0x30" identifier + number_literal) )) * number_literal) + (cast_expression "(char)bVar1" ( (type_descriptor "char" primitive_type) ) identifier)) + number_literal)) ;) }))) (if_statement "if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }" if (parenthesized_expression "(iVar2 - 0x1fU < 0x14)" ( (binary_expression "iVar2 - 0x1fU < 0x14" (binary_expression "iVar2 - 0x1fU" identifier - number_literal) < number_literal) )) (compound_statement "{\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }" { (expression_statement "*(int *)PTR_shell_compatibility_level_00144898 = iVar2;" (assignment_expression "*(int *)PTR_shell_compatibility_level_00144898 = iVar2" (pointer_expression "*(int *)PTR_shell_compatibility_level_00144898" * (cast_expression "(int *)PTR_shell_compatibility_level_00144898" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "(*(code *)UNRECOVERED_JUMPTABLE_00)();" (call_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*(code *)UNRECOVERED_JUMPTABLE_00" * (cast_expression "(code *)UNRECOVERED_JUMPTABLE_00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) })) (labeled_statement "LAB_00056270:\n  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);" statement_identifier : (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5)" identifier = (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" ( (pointer_expression "*(code *)PTR_dcgettext_00146498" * (cast_expression "(code *)PTR_dcgettext_00146498" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,PTR_LAB_00144578 + 0x6d84,5)" ( number_literal , (binary_expression "PTR_LAB_00144578 + 0x6d84" identifier + number_literal) , number_literal )))) ;)) (expression_statement "internal_error(uVar5,param_1,pbVar6);" (call_expression "internal_error(uVar5,param_1,pbVar6)" identifier (argument_list "(uVar5,param_1,pbVar6)" ( identifier , identifier , identifier ))) ;) (labeled_statement "LAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" statement_identifier : (expression_statement "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58" identifier = identifier) ;)) (expression_statement "*(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;" (assignment_expression "*(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32" (pointer_expression "*(undefined4 *)PTR_shell_compatibility_level_00144898" * (cast_expression "(undefined4 *)PTR_shell_compatibility_level_00144898" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = number_literal) ;) (expression_statement "(*(code *)UNRECOVERED_JUMPTABLE_00)();" (call_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)" ( (pointer_expression "*(code *)UNRECOVERED_JUMPTABLE_00" * (cast_expression "(code *)UNRECOVERED_JUMPTABLE_00" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) * LIT)) )))) & LIT) )) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) + LIT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (return_statement return ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void sv_shcompat(undefined4 param_1)\n\n{\n  byte bVar1;\n  undefined *UNRECOVERED_JUMPTABLE_00;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 uVar5;\n  byte *pbVar6;\n  \n  iVar2 = find_variable();\n  if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;\n  bVar1 = *pbVar6;\n  iVar2 = (int)(char)bVar1;\n  if (iVar2 == 0) goto LAB_000562a4;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  iVar4 = *piVar3;\n  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }\nLAB_00056270:\n  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);\n  internal_error(uVar5,param_1,pbVar6);\nLAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;\n                    \n                    \n  (*(code *)UNRECOVERED_JUMPTABLE_00)();\n  return;\n}" (primitive_type "void") (function_declarator "sv_shcompat(undefined4 param_1)" (identifier "sv_shcompat") (parameter_list "(undefined4 param_1)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) () ")"))) (compound_statement "{\n  byte bVar1;\n  undefined *UNRECOVERED_JUMPTABLE_00;\n  int iVar2;\n  int *piVar3;\n  int iVar4;\n  undefined4 uVar5;\n  byte *pbVar6;\n  \n  iVar2 = find_variable();\n  if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;\n  bVar1 = *pbVar6;\n  iVar2 = (int)(char)bVar1;\n  if (iVar2 == 0) goto LAB_000562a4;\n  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  iVar4 = *piVar3;\n  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }\nLAB_00056270:\n  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);\n  internal_error(uVar5,param_1,pbVar6);\nLAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;\n  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;\n                    \n                    \n  (*(code *)UNRECOVERED_JUMPTABLE_00)();\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "undefined *UNRECOVERED_JUMPTABLE_00;" (type_identifier "undefined") (pointer_declarator "*UNRECOVERED_JUMPTABLE_00" (* "*") (identifier "UNRECOVERED_JUMPTABLE_00")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "byte *pbVar6;" (type_identifier "byte") (pointer_declarator "*pbVar6" (* "*") (identifier "pbVar6")) (; ";")) (expression_statement "iVar2 = find_variable();" (assignment_expression "iVar2 = find_variable()" (identifier "iVar2") (= "=") (call_expression "find_variable()" (identifier "find_variable") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;" (if "if") (parenthesized_expression "((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0))" (( "(") (binary_expression "(iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)" (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)" (( "(") (comma_expression "pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0" (assignment_expression "pbVar6 = *(byte **)(iVar2 + 4)" (identifier "pbVar6") (= "=") (pointer_expression "*(byte **)(iVar2 + 4)" (* "*") (cast_expression "(byte **)(iVar2 + 4)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")"))))) (, ",") (binary_expression "pbVar6 == (byte *)0x0" (identifier "pbVar6") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (goto_statement "goto LAB_000562a4;" (goto "goto") (statement_identifier "LAB_000562a4") (; ";"))) (expression_statement "bVar1 = *pbVar6;" (assignment_expression "bVar1 = *pbVar6" (identifier "bVar1") (= "=") (pointer_expression "*pbVar6" (* "*") (identifier "pbVar6"))) (; ";")) (expression_statement "iVar2 = (int)(char)bVar1;" (assignment_expression "iVar2 = (int)(char)bVar1" (identifier "iVar2") (= "=") (cast_expression "(int)(char)bVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_000562a4;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000562a4;" (goto "goto") (statement_identifier "LAB_000562a4") (; ";"))) (expression_statement "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();" (assignment_expression "piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)()" (identifier "piVar3") (= "=") (cast_expression "(int *)(*(code *)PTR___ctype_b_loc_001461fc)()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR___ctype_b_loc_001461fc)()" (parenthesized_expression "(*(code *)PTR___ctype_b_loc_001461fc)" (( "(") (pointer_expression "*(code *)PTR___ctype_b_loc_001461fc" (* "*") (cast_expression "(code *)PTR___ctype_b_loc_001461fc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___ctype_b_loc_001461fc"))) () ")")) (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (identifier "PTR_set_compatibility_opts_00144f58")) (; ";")) (expression_statement "iVar4 = *piVar3;" (assignment_expression "iVar4 = *piVar3" (identifier "iVar4") (= "=") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) (; ";")) (if_statement "if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }" (if "if") (parenthesized_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8)" (( "(") (binary_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2)" (* "*") (cast_expression "(ushort *)(iVar4 + (uint)bVar1 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + (uint)bVar1 * 2)" (( "(") (binary_expression "iVar4 + (uint)bVar1 * 2" (identifier "iVar4") (+ "+") (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    bVar1 = pbVar6[1];\n    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }\n    if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }\n  }" ({ "{") (expression_statement "bVar1 = pbVar6[1];" (assignment_expression "bVar1 = pbVar6[1]" (identifier "bVar1") (= "=") (subscript_expression "pbVar6[1]" (identifier "pbVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)) {\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }\n    else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" (if "if") (parenthesized_expression "((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0))" (( "(") (binary_expression "(((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&\n       (pbVar6[3] == 0)" (parenthesized_expression "(((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0))" (( "(") (binary_expression "((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)" (parenthesized_expression "((char)bVar1 == 0x2e)" (( "(") (binary_expression "(char)bVar1 == 0x2e" (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1")) (== "==") (number_literal "0x2e")) () ")")) (&& "&&") (parenthesized_expression "((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)" (( "(") (binary_expression "(*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8)" (( "(") (binary_expression "*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)pbVar6[2] * 2)" (* "*") (cast_expression "(ushort *)(iVar4 + (uint)pbVar6[2] * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + (uint)pbVar6[2] * 2)" (( "(") (binary_expression "iVar4 + (uint)pbVar6[2] * 2" (identifier "iVar4") (+ "+") (binary_expression "(uint)pbVar6[2] * 2" (cast_expression "(uint)pbVar6[2]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "pbVar6[2]" (identifier "pbVar6") ([ "[") (number_literal "2") (] "]"))) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "8")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar6[3] == 0)" (( "(") (binary_expression "pbVar6[3] == 0" (subscript_expression "pbVar6[3]" (identifier "pbVar6") ([ "[") (number_literal "3") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;\n    }" ({ "{") (expression_statement "iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;" (assignment_expression "iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30" (identifier "iVar2") (= "=") (binary_expression "(iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30" (binary_expression "(iVar2 + -0x30) * 10 + (char)pbVar6[2]" (binary_expression "(iVar2 + -0x30) * 10" (parenthesized_expression "(iVar2 + -0x30)" (( "(") (binary_expression "iVar2 + -0x30" (identifier "iVar2") (+ "+") (number_literal "-0x30")) () ")")) (* "*") (number_literal "10")) (+ "+") (cast_expression "(char)pbVar6[2]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "pbVar6[2]" (identifier "pbVar6") ([ "[") (number_literal "2") (] "]")))) (+ "+") (number_literal "-0x30"))) (; ";")) (} "}")) (else_clause "else {\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" (else "else") (compound_statement "{\n      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;\n      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;\n    }" ({ "{") (if_statement "if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;" (if "if") (parenthesized_expression "(((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0))" (( "(") (binary_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)" (parenthesized_expression "((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0" (parenthesized_expression "(*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8)" (( "(") (binary_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8" (pointer_expression "*(ushort *)(iVar4 + (uint)bVar1 * 2)" (* "*") (cast_expression "(ushort *)(iVar4 + (uint)bVar1 * 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + (uint)bVar1 * 2)" (( "(") (binary_expression "iVar4 + (uint)bVar1 * 2" (identifier "iVar4") (+ "+") (binary_expression "(uint)bVar1 * 2" (cast_expression "(uint)bVar1" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar1")) (* "*") (number_literal "2"))) () ")")))) (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pbVar6[2] != 0)" (( "(") (binary_expression "pbVar6[2] != 0" (subscript_expression "pbVar6[2]" (identifier "pbVar6") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00056270;" (goto "goto") (statement_identifier "LAB_00056270") (; ";"))) (expression_statement "iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;" (assignment_expression "iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30" (identifier "iVar2") (= "=") (binary_expression "(iVar2 + -0x30) * 10 + (char)bVar1 + -0x30" (binary_expression "(iVar2 + -0x30) * 10 + (char)bVar1" (binary_expression "(iVar2 + -0x30) * 10" (parenthesized_expression "(iVar2 + -0x30)" (( "(") (binary_expression "iVar2 + -0x30" (identifier "iVar2") (+ "+") (number_literal "-0x30")) () ")")) (* "*") (number_literal "10")) (+ "+") (cast_expression "(char)bVar1" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar1"))) (+ "+") (number_literal "-0x30"))) (; ";")) (} "}")))) (if_statement "if (iVar2 - 0x1fU < 0x14) {\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }" (if "if") (parenthesized_expression "(iVar2 - 0x1fU < 0x14)" (( "(") (binary_expression "iVar2 - 0x1fU < 0x14" (binary_expression "iVar2 - 0x1fU" (identifier "iVar2") (- "-") (number_literal "0x1fU")) (< "<") (number_literal "0x14")) () ")")) (compound_statement "{\n      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;\n                    \n                    \n      (*(code *)UNRECOVERED_JUMPTABLE_00)();\n      return;\n    }" ({ "{") (expression_statement "*(int *)PTR_shell_compatibility_level_00144898 = iVar2;" (assignment_expression "*(int *)PTR_shell_compatibility_level_00144898 = iVar2" (pointer_expression "*(int *)PTR_shell_compatibility_level_00144898" (* "*") (cast_expression "(int *)PTR_shell_compatibility_level_00144898" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_shell_compatibility_level_00144898"))) (= "=") (identifier "iVar2")) (; ";")) (expression_statement "(*(code *)UNRECOVERED_JUMPTABLE_00)();" (call_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)" (( "(") (pointer_expression "*(code *)UNRECOVERED_JUMPTABLE_00" (* "*") (cast_expression "(code *)UNRECOVERED_JUMPTABLE_00" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "UNRECOVERED_JUMPTABLE_00"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_00056270:\n  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);" (statement_identifier "LAB_00056270") (: ":") (expression_statement "uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);" (assignment_expression "uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5)" (identifier "uVar5") (= "=") (call_expression "(*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5)" (parenthesized_expression "(*(code *)PTR_dcgettext_00146498)" (( "(") (pointer_expression "*(code *)PTR_dcgettext_00146498" (* "*") (cast_expression "(code *)PTR_dcgettext_00146498" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_dcgettext_00146498"))) () ")")) (argument_list "(0,PTR_LAB_00144578 + 0x6d84,5)" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_LAB_00144578 + 0x6d84" (identifier "PTR_LAB_00144578") (+ "+") (number_literal "0x6d84")) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "internal_error(uVar5,param_1,pbVar6);" (call_expression "internal_error(uVar5,param_1,pbVar6)" (identifier "internal_error") (argument_list "(uVar5,param_1,pbVar6)" (( "(") (identifier "uVar5") (, ",") (identifier "param_1") (, ",") (identifier "pbVar6") () ")"))) (; ";")) (labeled_statement "LAB_000562a4:\n  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" (statement_identifier "LAB_000562a4") (: ":") (expression_statement "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;" (assignment_expression "UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58" (identifier "UNRECOVERED_JUMPTABLE_00") (= "=") (identifier "PTR_set_compatibility_opts_00144f58")) (; ";"))) (expression_statement "*(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;" (assignment_expression "*(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32" (pointer_expression "*(undefined4 *)PTR_shell_compatibility_level_00144898" (* "*") (cast_expression "(undefined4 *)PTR_shell_compatibility_level_00144898" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_shell_compatibility_level_00144898"))) (= "=") (number_literal "0x32")) (; ";")) (expression_statement "(*(code *)UNRECOVERED_JUMPTABLE_00)();" (call_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)()" (parenthesized_expression "(*(code *)UNRECOVERED_JUMPTABLE_00)" (( "(") (pointer_expression "*(code *)UNRECOVERED_JUMPTABLE_00" (* "*") (cast_expression "(code *)UNRECOVERED_JUMPTABLE_00" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "UNRECOVERED_JUMPTABLE_00"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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)))))) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal)))))) right: (number_literal))) right: (number_literal))))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))) right: (number_literal))) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (return_statement))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (number_literal) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (number_literal))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (return_statement))))

void MASKED(undefined4 param_1)

{
  byte bVar1;
  undefined *UNRECOVERED_JUMPTABLE_00;
  int iVar2;
  int *piVar3;
  int iVar4;
  undefined4 uVar5;
  byte *pbVar6;
  
  iVar2 = find_variable();
  if ((iVar2 == 0) || (pbVar6 = *(byte **)(iVar2 + 4), pbVar6 == (byte *)0x0)) goto LAB_000562a4;
  bVar1 = *pbVar6;
  iVar2 = (int)(char)bVar1;
  if (iVar2 == 0) goto LAB_000562a4;
  piVar3 = (int *)(*(code *)PTR___ctype_b_loc_001461fc)();
  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;
  iVar4 = *piVar3;
  if ((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) != 0) {
    bVar1 = pbVar6[1];
    if ((((char)bVar1 == 0x2e) && ((*(ushort *)(iVar4 + (uint)pbVar6[2] * 2) & 8) != 0)) &&
       (pbVar6[3] == 0)) {
      iVar2 = (iVar2 + -0x30) * 10 + (char)pbVar6[2] + -0x30;
    }
    else {
      if (((*(ushort *)(iVar4 + (uint)bVar1 * 2) & 8) == 0) || (pbVar6[2] != 0)) goto LAB_00056270;
      iVar2 = (iVar2 + -0x30) * 10 + (char)bVar1 + -0x30;
    }
    if (iVar2 - 0x1fU < 0x14) {
      *(int *)PTR_shell_compatibility_level_00144898 = iVar2;
                    /* WARNING: Could not recover jumptable at 0x00056264. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (*(code *)UNRECOVERED_JUMPTABLE_00)();
      return;
    }
  }
LAB_00056270:
  uVar5 = (*(code *)PTR_dcgettext_00146498)(0,PTR_LAB_00144578 + 0x6d84,5);
  internal_error(uVar5,param_1,pbVar6);
LAB_000562a4:
  UNRECOVERED_JUMPTABLE_00 = PTR_set_compatibility_opts_00144f58;
  *(undefined4 *)PTR_shell_compatibility_level_00144898 = 0x32;
                    /* WARNING: Could not recover jumptable at 0x000562c0. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)UNRECOVERED_JUMPTABLE_00)();
  return;
}

