
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3 install_operand(int mode,int val)

{
  char *format;
  ushort uVar1;
  
  uVar1 = (ushort)val;
  switch(mode + -0x31) {
  case 0:
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 0xc);
    break;
  case 1:
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 6);
    break;
  case 3:
    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 0xc);
    break;
  case 4:
    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 6);
    break;
  case 5:
    the_ins.numo = the_ins.numo + 1;
    the_ins.opcode[2] = the_ins.opcode[2] | uVar1;
    break;
  case 6:
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 7);
    break;
  case 7:
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10);
    break;
  case 8:
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 5);
    break;
  default:
    format = (char *)dcgettext(0,"failed sanity check.",5,mode + -0x31);
                    /* WARNING: Subroutine does not return */
    as_fatal(format);
  case 0x13:
    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 | (ushort)(val << 0xc);
    break;
  case 0x14:
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 9);
    break;
  case 0x15:
    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0x600;
    break;
  case 0x16:
    if ((val & 1U) == 0) {
      the_ins.opcode[0] = the_ins.opcode[0] | 0x80;
    }
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);
    break;
  case 0x17:
    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 7) & 0xff;
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);
    break;
  case 0x18:
    val = (int)((ushort)(val << 9) & 0x600);
  case 2:
  case 0x12:
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)val;
    break;
  case 0x1b:
    the_ins.opcode[1] = (short)((uint)val >> 0x10);
    the_ins.opcode[2] = uVar1;
    break;
  case 0x1c:
    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xf;
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);
    break;
  case 0x1d:
    the_ins.opcode[1] = uVar1 & 0xf | the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);
    break;
  case 0x26:
  case 0x31:
  case 0x3b:
  case 0x46:
    break;
  case 0x2c:
    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 10) & 0x400;
    break;
  case 0x33:
  case 0x38:
    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9);
    break;
  case 0x34:
    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 6);
    break;
  case 0x35:
    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 3;
    break;
  case 0x36:
    the_ins.opcode[0] = the_ins.opcode[0] | 0xff;
    break;
  case 0x37:
    if (val != 1) {
      the_ins.opcode[1] = the_ins.opcode[1] | 0x400;
    }
    break;
  case 0x39:
    the_ins.numo = the_ins.numo + 1;
    the_ins.opcode[1] = the_ins.opcode[1] | uVar1;
    break;
  case 0x3a:
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 4);
    break;
  case 0x3c:
  case 0x3d:
    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0xe00 | uVar1 * 8 & 0x40;
    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 * 8 & 0x80;
    break;
  case 0x3e:
    the_ins.opcode[1] = (ushort)(val << 0xc) | the_ins.opcode[1] | (ushort)(val << 3) & 0x80;
    break;
  case 0x42:
    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xff;
    break;
  case 0x43:
    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10) | (ushort)(val << 7);
  }
  return;
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3 FUN_00042120(int param_1,uint param_2)

{
  undefined4 uVar1;
  ushort uVar2;
  
  uVar2 = (ushort)param_2;
  switch(param_1 + -0x31) {
  case 0:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);
    break;
  case 1:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);
    break;
  case 3:
    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);
    break;
  case 4:
    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);
    break;
  case 5:
    DAT_0008114c = DAT_0008114c + 1;
    uRam00081154 = uRam00081154 | uVar2;
    break;
  case 6:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);
    break;
  case 7:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);
    break;
  case 8:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);
    break;
  default:
    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);
                    /* WARNING: Subroutine does not return */
    FUN_0002c110(uVar1);
  case 0x13:
    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);
    break;
  case 0x14:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);
    break;
  case 0x15:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;
    break;
  case 0x16:
    if ((param_2 & 1) == 0) {
      DAT_00081150 = DAT_00081150 | 0x80;
    }
    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);
    break;
  case 0x17:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;
    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);
    break;
  case 0x18:
    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);
  case 2:
  case 0x12:
    DAT_00081152 = DAT_00081152 | (ushort)param_2;
    break;
  case 0x1b:
    DAT_00081152 = (ushort)(param_2 >> 0x10);
    uRam00081154 = uVar2;
    break;
  case 0x1c:
    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;
    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);
    break;
  case 0x1d:
    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);
    break;
  case 0x26:
  case 0x31:
  case 0x3b:
  case 0x46:
    break;
  case 0x2c:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;
    break;
  case 0x33:
  case 0x38:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);
    break;
  case 0x34:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);
    break;
  case 0x35:
    DAT_00081150 = DAT_00081150 | uVar2 & 3;
    break;
  case 0x36:
    DAT_00081150 = DAT_00081150 | 0xff;
    break;
  case 0x37:
    if (param_2 != 1) {
      DAT_00081152 = DAT_00081152 | 0x400;
    }
    break;
  case 0x39:
    DAT_0008114c = DAT_0008114c + 1;
    DAT_00081152 = DAT_00081152 | uVar2;
    break;
  case 0x3a:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);
    break;
  case 0x3c:
  case 0x3d:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;
    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;
    break;
  case 0x3e:
    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;
    break;
  case 0x42:
    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;
    break;
  case 0x43:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);
  }
  return;
}


PUSH EBX
SUB EAX,0x31
CALL 0x00017010
ADD EBX,0x35ed7
SUB ESP,0x8
CMP EAX,0x46
JA 0x00042423
MOV ECX,dword ptr [EBX + EAX*0x4 + 0xfffe4868]
ADD ECX,EBX
JMP ECX
PUSH EAX
LEA EAX,[EBX + 0xfffe3bc7]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000151a0
MOV dword ptr [ESP],EAX
CALL 0x0002c110
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_00042120(int param_1,uint param_2)\n\n{\n  undefined4 uVar1;\n  ushort uVar2;\n  \n  uVar2 = (ushort)param_2;\n  switch(param_1 + -0x31) {\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    /* WARNING: Subroutine does not return */\n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 FUN_00042120(int param_1,uint param_2)\n\n{\n  undefined4 uVar1;\n  ushort uVar2;\n  \n  uVar2 = (ushort)param_2;\n  switch(param_1 + -0x31) {\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    /* WARNING: Subroutine does not return */\n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00042120(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  ushort uVar2;\n  \n  uVar2 = (ushort)param_2;\n  switch(param_1 + -0x31) {\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    /* WARNING: Subroutine does not return */\n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (expression_statement "uVar2 = (ushort)param_2;" (assignment_expression "uVar2 = (ushort)param_2" identifier = (cast_expression "(ushort)param_2" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (switch_statement "switch(param_1 + -0x31) {\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    /* WARNING: Subroutine does not return */\n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }" switch (parenthesized_expression "(param_1 + -0x31)" ( (binary_expression "param_1 + -0x31" identifier + number_literal) )) (compound_statement "{\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    /* WARNING: Subroutine does not return */\n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }" { (case_statement "case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 0xc)" identifier | (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 0xc)" ( (binary_expression "param_2 << 0xc" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 6)" identifier | (call_expression "(ushort)(param_2 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 6)" ( (binary_expression "param_2 << 6" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;" case number_literal : (expression_statement "uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);" (assignment_expression "uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc)" identifier = (binary_expression "uRam00081154 | (ushort)(param_2 << 0xc)" identifier | (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 0xc)" ( (binary_expression "param_2 << 0xc" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;" case number_literal : (expression_statement "uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);" (assignment_expression "uRam00081154 = uRam00081154 | (ushort)(param_2 << 6)" identifier = (binary_expression "uRam00081154 | (ushort)(param_2 << 6)" identifier | (call_expression "(ushort)(param_2 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 6)" ( (binary_expression "param_2 << 6" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;" case number_literal : (expression_statement "DAT_0008114c = DAT_0008114c + 1;" (assignment_expression "DAT_0008114c = DAT_0008114c + 1" identifier = (binary_expression "DAT_0008114c + 1" identifier + number_literal)) ;) (expression_statement "uRam00081154 = uRam00081154 | uVar2;" (assignment_expression "uRam00081154 = uRam00081154 | uVar2" identifier = (binary_expression "uRam00081154 | uVar2" identifier | identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 7)" identifier | (call_expression "(ushort)(param_2 << 7)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 7)" ( (binary_expression "param_2 << 7" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 10)" identifier | (call_expression "(ushort)(param_2 << 10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 10)" ( (binary_expression "param_2 << 10" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 5)" identifier | (call_expression "(ushort)(param_2 << 5)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 5)" ( (binary_expression "param_2 << 5" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    /* WARNING: Subroutine does not return */\n    FUN_0002c110(uVar1);" default : (expression_statement "uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);" (assignment_expression "uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31)" identifier = (call_expression "dcgettext(0,"failed sanity check.",5,param_1 + -0x31)" identifier (argument_list "(0,"failed sanity check.",5,param_1 + -0x31)" ( number_literal , (string_literal ""failed sanity check."" " string_content ") , number_literal , (binary_expression "param_1 + -0x31" identifier + number_literal) )))) ;) comment (expression_statement "FUN_0002c110(uVar1);" (call_expression "FUN_0002c110(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;)) (case_statement "case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);" (assignment_expression "DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc)" identifier = (binary_expression "DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc)" (binary_expression "DAT_00081152 | uVar2" identifier | identifier) | (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 0xc)" ( (binary_expression "param_2 << 0xc" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 9)" identifier | (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 9)" ( (binary_expression "param_2 << 9" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 9) & 0x600" identifier | (binary_expression "(ushort)(param_2 << 9) & 0x600" (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 9)" ( (binary_expression "param_2 << 9" identifier << number_literal) ))) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;" case number_literal : (if_statement "if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }" if (parenthesized_expression "((param_2 & 1) == 0)" ( (binary_expression "(param_2 & 1) == 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }" { (expression_statement "DAT_00081150 = DAT_00081150 | 0x80;" (assignment_expression "DAT_00081150 = DAT_00081150 | 0x80" identifier = (binary_expression "DAT_00081150 | 0x80" identifier | number_literal)) ;) })) (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3)" identifier = (binary_expression "DAT_00081152 | (ushort)((param_2 & 2) << 3)" identifier | (call_expression "(ushort)((param_2 & 2) << 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((param_2 & 2) << 3)" ( (binary_expression "(param_2 & 2) << 3" (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 7) & 0xff" identifier | (binary_expression "(ushort)(param_2 << 7) & 0xff" (call_expression "(ushort)(param_2 << 7)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 7)" ( (binary_expression "param_2 << 7" identifier << number_literal) ))) & number_literal))) ;) (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3)" identifier = (binary_expression "DAT_00081152 | (ushort)((param_2 & 2) << 3)" identifier | (call_expression "(ushort)((param_2 & 2) << 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((param_2 & 2) << 3)" ( (binary_expression "(param_2 & 2) << 3" (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);" case number_literal : (expression_statement "param_2 = (uint)((ushort)(param_2 << 9) & 0x600);" (assignment_expression "param_2 = (uint)((ushort)(param_2 << 9) & 0x600)" identifier = (call_expression "(uint)((ushort)(param_2 << 9) & 0x600)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ushort)(param_2 << 9) & 0x600)" ( (binary_expression "(ushort)(param_2 << 9) & 0x600" (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 9)" ( (binary_expression "param_2 << 9" identifier << number_literal) ))) & number_literal) )))) ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)param_2;" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)param_2" identifier = (binary_expression "DAT_00081152 | (ushort)param_2" identifier | (cast_expression "(ushort)param_2" ( (type_descriptor "ushort" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;" case number_literal : (expression_statement "DAT_00081152 = (ushort)(param_2 >> 0x10);" (assignment_expression "DAT_00081152 = (ushort)(param_2 >> 0x10)" identifier = (call_expression "(ushort)(param_2 >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 >> 0x10)" ( (binary_expression "param_2 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uRam00081154 = uVar2;" (assignment_expression "uRam00081154 = uVar2" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | uVar2 & 0xf;" (assignment_expression "DAT_00081150 = DAT_00081150 | uVar2 & 0xf" identifier = (binary_expression "DAT_00081150 | uVar2 & 0xf" identifier | (binary_expression "uVar2 & 0xf" identifier & number_literal))) ;) (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" identifier = (binary_expression "DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" identifier | (call_expression "(ushort)((param_2 & 0x10) << 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((param_2 & 0x10) << 2)" ( (binary_expression "(param_2 & 0x10) << 2" (parenthesized_expression "(param_2 & 0x10)" ( (binary_expression "param_2 & 0x10" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;" case number_literal : (expression_statement "DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);" (assignment_expression "DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" identifier = (binary_expression "uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" (binary_expression "uVar2 & 0xf | DAT_00081152" (binary_expression "uVar2 & 0xf" identifier & number_literal) | identifier) | (call_expression "(ushort)((param_2 & 0x10) << 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((param_2 & 0x10) << 2)" ( (binary_expression "(param_2 & 0x10) << 2" (parenthesized_expression "(param_2 & 0x10)" ( (binary_expression "param_2 & 0x10" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x26:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x3b:" case number_literal :) (case_statement "case 0x46:\n    break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 10) & 0x400" identifier | (binary_expression "(ushort)(param_2 << 10) & 0x400" (call_expression "(ushort)(param_2 << 10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 10)" ( (binary_expression "param_2 << 10" identifier << number_literal) ))) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9)" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 9)" identifier | (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 9)" ( (binary_expression "param_2 << 9" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6)" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 6)" identifier | (call_expression "(ushort)(param_2 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 6)" ( (binary_expression "param_2 << 6" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | uVar2 & 3;" (assignment_expression "DAT_00081150 = DAT_00081150 | uVar2 & 3" identifier = (binary_expression "DAT_00081150 | uVar2 & 3" identifier | (binary_expression "uVar2 & 3" identifier & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | 0xff;" (assignment_expression "DAT_00081150 = DAT_00081150 | 0xff" identifier = (binary_expression "DAT_00081150 | 0xff" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;" case number_literal : (if_statement "if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }" if (parenthesized_expression "(param_2 != 1)" ( (binary_expression "param_2 != 1" identifier != number_literal) )) (compound_statement "{\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }" { (expression_statement "DAT_00081152 = DAT_00081152 | 0x400;" (assignment_expression "DAT_00081152 = DAT_00081152 | 0x400" identifier = (binary_expression "DAT_00081152 | 0x400" identifier | number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;" case number_literal : (expression_statement "DAT_0008114c = DAT_0008114c + 1;" (assignment_expression "DAT_0008114c = DAT_0008114c + 1" identifier = (binary_expression "DAT_0008114c + 1" identifier + number_literal)) ;) (expression_statement "DAT_00081152 = DAT_00081152 | uVar2;" (assignment_expression "DAT_00081152 = DAT_00081152 | uVar2" identifier = (binary_expression "DAT_00081152 | uVar2" identifier | identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 4)" identifier | (call_expression "(ushort)(param_2 << 4)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 4)" ( (binary_expression "param_2 << 4" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x3c:" case number_literal :) (case_statement "case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40" (binary_expression "DAT_00081150 | (ushort)(param_2 << 9) & 0xe00" identifier | (binary_expression "(ushort)(param_2 << 9) & 0xe00" (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 9)" ( (binary_expression "param_2 << 9" identifier << number_literal) ))) & number_literal)) | (binary_expression "uVar2 * 8 & 0x40" (binary_expression "uVar2 * 8" identifier * number_literal) & number_literal))) ;) (expression_statement "DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;" (assignment_expression "DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80" identifier = (binary_expression "DAT_00081152 | uVar2 * 8 & 0x80" identifier | (binary_expression "uVar2 * 8 & 0x80" (binary_expression "uVar2 * 8" identifier * number_literal) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;" case number_literal : (expression_statement "DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;" (assignment_expression "DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80" identifier = (binary_expression "(ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80" (binary_expression "(ushort)(param_2 << 0xc) | DAT_00081152" (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 0xc)" ( (binary_expression "param_2 << 0xc" identifier << number_literal) ))) | identifier) | (binary_expression "(ushort)(param_2 << 3) & 0x80" (call_expression "(ushort)(param_2 << 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 3)" ( (binary_expression "param_2 << 3" identifier << number_literal) ))) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | uVar2 & 0xff;" (assignment_expression "DAT_00081150 = DAT_00081150 | uVar2 & 0xff" identifier = (binary_expression "DAT_00081150 | uVar2 & 0xff" identifier | (binary_expression "uVar2 & 0xff" identifier & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7)" (binary_expression "DAT_00081152 | (ushort)(param_2 << 10)" identifier | (call_expression "(ushort)(param_2 << 10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 10)" ( (binary_expression "param_2 << 10" identifier << number_literal) )))) | (call_expression "(ushort)(param_2 << 7)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 7)" ( (binary_expression "param_2 << 7" identifier << number_literal) ))))) ;)) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 install_operand(int mode,int val)\n\n{\n  char *format;\n  ushort uVar1;\n  \n  uVar1 = (ushort)val;\n  switch(mode + -0x31) {\n  case 0:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 0xc);\n    break;\n  case 1:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 6);\n    break;\n  case 3:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 0xc);\n    break;\n  case 4:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 6);\n    break;\n  case 5:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[2] = the_ins.opcode[2] | uVar1;\n    break;\n  case 6:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 7);\n    break;\n  case 7:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10);\n    break;\n  case 8:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 5);\n    break;\n  default:\n    format = (char *)dcgettext(0,"failed sanity check.",5,mode + -0x31);\n                    /* WARNING: Subroutine does not return */\n    as_fatal(format);\n  case 0x13:\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 | (ushort)(val << 0xc);\n    break;\n  case 0x14:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 9);\n    break;\n  case 0x15:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((val & 1U) == 0) {\n      the_ins.opcode[0] = the_ins.opcode[0] | 0x80;\n    }\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;\n  case 0x17:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 7) & 0xff;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;\n  case 0x18:\n    val = (int)((ushort)(val << 9) & 0x600);\n  case 2:\n  case 0x12:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)val;\n    break;\n  case 0x1b:\n    the_ins.opcode[1] = (short)((uint)val >> 0x10);\n    the_ins.opcode[2] = uVar1;\n    break;\n  case 0x1c:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xf;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;\n  case 0x1d:\n    the_ins.opcode[1] = uVar1 & 0xf | the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9);\n    break;\n  case 0x34:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 6);\n    break;\n  case 0x35:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 3;\n    break;\n  case 0x36:\n    the_ins.opcode[0] = the_ins.opcode[0] | 0xff;\n    break;\n  case 0x37:\n    if (val != 1) {\n      the_ins.opcode[1] = the_ins.opcode[1] | 0x400;\n    }\n    break;\n  case 0x39:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1;\n    break;\n  case 0x3a:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0xe00 | uVar1 * 8 & 0x40;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 * 8 & 0x80;\n    break;\n  case 0x3e:\n    the_ins.opcode[1] = (ushort)(val << 0xc) | the_ins.opcode[1] | (ushort)(val << 3) & 0x80;\n    break;\n  case 0x42:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xff;\n    break;\n  case 0x43:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10) | (ushort)(val << 7);\n  }\n  return;\n}\n\n" comment (function_definition "void __regparm3 install_operand(int mode,int val)\n\n{\n  char *format;\n  ushort uVar1;\n  \n  uVar1 = (ushort)val;\n  switch(mode + -0x31) {\n  case 0:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 0xc);\n    break;\n  case 1:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 6);\n    break;\n  case 3:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 0xc);\n    break;\n  case 4:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 6);\n    break;\n  case 5:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[2] = the_ins.opcode[2] | uVar1;\n    break;\n  case 6:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 7);\n    break;\n  case 7:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10);\n    break;\n  case 8:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 5);\n    break;\n  default:\n    format = (char *)dcgettext(0,"failed sanity check.",5,mode + -0x31);\n                    /* WARNING: Subroutine does not return */\n    as_fatal(format);\n  case 0x13:\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 | (ushort)(val << 0xc);\n    break;\n  case 0x14:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 9);\n    break;\n  case 0x15:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((val & 1U) == 0) {\n      the_ins.opcode[0] = the_ins.opcode[0] | 0x80;\n    }\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;\n  case 0x17:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 7) & 0xff;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;\n  case 0x18:\n    val = (int)((ushort)(val << 9) & 0x600);\n  case 2:\n  case 0x12:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)val;\n    break;\n  case 0x1b:\n    the_ins.opcode[1] = (short)((uint)val >> 0x10);\n    the_ins.opcode[2] = uVar1;\n    break;\n  case 0x1c:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xf;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;\n  case 0x1d:\n    the_ins.opcode[1] = uVar1 & 0xf | the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9);\n    break;\n  case 0x34:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 6);\n    break;\n  case 0x35:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 3;\n    break;\n  case 0x36:\n    the_ins.opcode[0] = the_ins.opcode[0] | 0xff;\n    break;\n  case 0x37:\n    if (val != 1) {\n      the_ins.opcode[1] = the_ins.opcode[1] | 0x400;\n    }\n    break;\n  case 0x39:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1;\n    break;\n  case 0x3a:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0xe00 | uVar1 * 8 & 0x40;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 * 8 & 0x80;\n    break;\n  case 0x3e:\n    the_ins.opcode[1] = (ushort)(val << 0xc) | the_ins.opcode[1] | (ushort)(val << 3) & 0x80;\n    break;\n  case 0x42:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xff;\n    break;\n  case 0x43:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10) | (ushort)(val << 7);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "install_operand(int mode,int val)" identifier (parameter_list "(int mode,int val)" ( (parameter_declaration "int mode" primitive_type identifier) , (parameter_declaration "int val" primitive_type identifier) ))) (compound_statement "{\n  char *format;\n  ushort uVar1;\n  \n  uVar1 = (ushort)val;\n  switch(mode + -0x31) {\n  case 0:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 0xc);\n    break;\n  case 1:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 6);\n    break;\n  case 3:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 0xc);\n    break;\n  case 4:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 6);\n    break;\n  case 5:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[2] = the_ins.opcode[2] | uVar1;\n    break;\n  case 6:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 7);\n    break;\n  case 7:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10);\n    break;\n  case 8:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 5);\n    break;\n  default:\n    format = (char *)dcgettext(0,"failed sanity check.",5,mode + -0x31);\n                    /* WARNING: Subroutine does not return */\n    as_fatal(format);\n  case 0x13:\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 | (ushort)(val << 0xc);\n    break;\n  case 0x14:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 9);\n    break;\n  case 0x15:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((val & 1U) == 0) {\n      the_ins.opcode[0] = the_ins.opcode[0] | 0x80;\n    }\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;\n  case 0x17:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 7) & 0xff;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;\n  case 0x18:\n    val = (int)((ushort)(val << 9) & 0x600);\n  case 2:\n  case 0x12:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)val;\n    break;\n  case 0x1b:\n    the_ins.opcode[1] = (short)((uint)val >> 0x10);\n    the_ins.opcode[2] = uVar1;\n    break;\n  case 0x1c:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xf;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;\n  case 0x1d:\n    the_ins.opcode[1] = uVar1 & 0xf | the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9);\n    break;\n  case 0x34:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 6);\n    break;\n  case 0x35:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 3;\n    break;\n  case 0x36:\n    the_ins.opcode[0] = the_ins.opcode[0] | 0xff;\n    break;\n  case 0x37:\n    if (val != 1) {\n      the_ins.opcode[1] = the_ins.opcode[1] | 0x400;\n    }\n    break;\n  case 0x39:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1;\n    break;\n  case 0x3a:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0xe00 | uVar1 * 8 & 0x40;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 * 8 & 0x80;\n    break;\n  case 0x3e:\n    the_ins.opcode[1] = (ushort)(val << 0xc) | the_ins.opcode[1] | (ushort)(val << 3) & 0x80;\n    break;\n  case 0x42:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xff;\n    break;\n  case 0x43:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10) | (ushort)(val << 7);\n  }\n  return;\n}" { (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "ushort uVar1;" type_identifier identifier ;) (expression_statement "uVar1 = (ushort)val;" (assignment_expression "uVar1 = (ushort)val" identifier = (cast_expression "(ushort)val" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (switch_statement "switch(mode + -0x31) {\n  case 0:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 0xc);\n    break;\n  case 1:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 6);\n    break;\n  case 3:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 0xc);\n    break;\n  case 4:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 6);\n    break;\n  case 5:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[2] = the_ins.opcode[2] | uVar1;\n    break;\n  case 6:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 7);\n    break;\n  case 7:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10);\n    break;\n  case 8:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 5);\n    break;\n  default:\n    format = (char *)dcgettext(0,"failed sanity check.",5,mode + -0x31);\n                    /* WARNING: Subroutine does not return */\n    as_fatal(format);\n  case 0x13:\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 | (ushort)(val << 0xc);\n    break;\n  case 0x14:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 9);\n    break;\n  case 0x15:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((val & 1U) == 0) {\n      the_ins.opcode[0] = the_ins.opcode[0] | 0x80;\n    }\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;\n  case 0x17:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 7) & 0xff;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;\n  case 0x18:\n    val = (int)((ushort)(val << 9) & 0x600);\n  case 2:\n  case 0x12:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)val;\n    break;\n  case 0x1b:\n    the_ins.opcode[1] = (short)((uint)val >> 0x10);\n    the_ins.opcode[2] = uVar1;\n    break;\n  case 0x1c:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xf;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;\n  case 0x1d:\n    the_ins.opcode[1] = uVar1 & 0xf | the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9);\n    break;\n  case 0x34:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 6);\n    break;\n  case 0x35:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 3;\n    break;\n  case 0x36:\n    the_ins.opcode[0] = the_ins.opcode[0] | 0xff;\n    break;\n  case 0x37:\n    if (val != 1) {\n      the_ins.opcode[1] = the_ins.opcode[1] | 0x400;\n    }\n    break;\n  case 0x39:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1;\n    break;\n  case 0x3a:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0xe00 | uVar1 * 8 & 0x40;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 * 8 & 0x80;\n    break;\n  case 0x3e:\n    the_ins.opcode[1] = (ushort)(val << 0xc) | the_ins.opcode[1] | (ushort)(val << 3) & 0x80;\n    break;\n  case 0x42:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xff;\n    break;\n  case 0x43:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10) | (ushort)(val << 7);\n  }" switch (parenthesized_expression "(mode + -0x31)" ( (binary_expression "mode + -0x31" identifier + number_literal) )) (compound_statement "{\n  case 0:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 0xc);\n    break;\n  case 1:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 6);\n    break;\n  case 3:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 0xc);\n    break;\n  case 4:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 6);\n    break;\n  case 5:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[2] = the_ins.opcode[2] | uVar1;\n    break;\n  case 6:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 7);\n    break;\n  case 7:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10);\n    break;\n  case 8:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 5);\n    break;\n  default:\n    format = (char *)dcgettext(0,"failed sanity check.",5,mode + -0x31);\n                    /* WARNING: Subroutine does not return */\n    as_fatal(format);\n  case 0x13:\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 | (ushort)(val << 0xc);\n    break;\n  case 0x14:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 9);\n    break;\n  case 0x15:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((val & 1U) == 0) {\n      the_ins.opcode[0] = the_ins.opcode[0] | 0x80;\n    }\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;\n  case 0x17:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 7) & 0xff;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;\n  case 0x18:\n    val = (int)((ushort)(val << 9) & 0x600);\n  case 2:\n  case 0x12:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)val;\n    break;\n  case 0x1b:\n    the_ins.opcode[1] = (short)((uint)val >> 0x10);\n    the_ins.opcode[2] = uVar1;\n    break;\n  case 0x1c:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xf;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;\n  case 0x1d:\n    the_ins.opcode[1] = uVar1 & 0xf | the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9);\n    break;\n  case 0x34:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 6);\n    break;\n  case 0x35:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 3;\n    break;\n  case 0x36:\n    the_ins.opcode[0] = the_ins.opcode[0] | 0xff;\n    break;\n  case 0x37:\n    if (val != 1) {\n      the_ins.opcode[1] = the_ins.opcode[1] | 0x400;\n    }\n    break;\n  case 0x39:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1;\n    break;\n  case 0x3a:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0xe00 | uVar1 * 8 & 0x40;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 * 8 & 0x80;\n    break;\n  case 0x3e:\n    the_ins.opcode[1] = (ushort)(val << 0xc) | the_ins.opcode[1] | (ushort)(val << 3) & 0x80;\n    break;\n  case 0x42:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xff;\n    break;\n  case 0x43:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10) | (ushort)(val << 7);\n  }" { (case_statement "case 0:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 0xc);\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 0xc);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 0xc)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)(val << 0xc)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 0xc)" ( (binary_expression "val << 0xc" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 6);\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 6);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 6)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)(val << 6)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 6)" ( (binary_expression "val << 6" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 0xc);\n    break;" case number_literal : (expression_statement "the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 0xc);" (assignment_expression "the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 0xc)" (subscript_expression "the_ins.opcode[2]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[2] | (ushort)(val << 0xc)" (subscript_expression "the_ins.opcode[2]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 0xc)" ( (binary_expression "val << 0xc" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 6);\n    break;" case number_literal : (expression_statement "the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 6);" (assignment_expression "the_ins.opcode[2] = the_ins.opcode[2] | (ushort)(val << 6)" (subscript_expression "the_ins.opcode[2]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[2] | (ushort)(val << 6)" (subscript_expression "the_ins.opcode[2]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 6)" ( (binary_expression "val << 6" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[2] = the_ins.opcode[2] | uVar1;\n    break;" case number_literal : (expression_statement "the_ins.numo = the_ins.numo + 1;" (assignment_expression "the_ins.numo = the_ins.numo + 1" (field_expression "the_ins.numo" identifier . field_identifier) = (binary_expression "the_ins.numo + 1" (field_expression "the_ins.numo" identifier . field_identifier) + number_literal)) ;) (expression_statement "the_ins.opcode[2] = the_ins.opcode[2] | uVar1;" (assignment_expression "the_ins.opcode[2] = the_ins.opcode[2] | uVar1" (subscript_expression "the_ins.opcode[2]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[2] | uVar1" (subscript_expression "the_ins.opcode[2]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 7);\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 7);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 7)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)(val << 7)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 7)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 7)" ( (binary_expression "val << 7" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10);\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)(val << 10)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 10)" ( (binary_expression "val << 10" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 5);\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 5);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 5)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)(val << 5)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 5)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 5)" ( (binary_expression "val << 5" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    format = (char *)dcgettext(0,"failed sanity check.",5,mode + -0x31);\n                    /* WARNING: Subroutine does not return */\n    as_fatal(format);" default : (expression_statement "format = (char *)dcgettext(0,"failed sanity check.",5,mode + -0x31);" (assignment_expression "format = (char *)dcgettext(0,"failed sanity check.",5,mode + -0x31)" identifier = (cast_expression "(char *)dcgettext(0,"failed sanity check.",5,mode + -0x31)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"failed sanity check.",5,mode + -0x31)" identifier (argument_list "(0,"failed sanity check.",5,mode + -0x31)" ( number_literal , (string_literal ""failed sanity check."" " string_content ") , number_literal , (binary_expression "mode + -0x31" identifier + number_literal) ))))) ;) comment (expression_statement "as_fatal(format);" (call_expression "as_fatal(format)" identifier (argument_list "(format)" ( identifier ))) ;)) (case_statement "case 0x13:\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 | (ushort)(val << 0xc);\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | uVar1 | (ushort)(val << 0xc);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | uVar1 | (ushort)(val << 0xc)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | uVar1 | (ushort)(val << 0xc)" (binary_expression "the_ins.opcode[1] | uVar1" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | identifier) | (call_expression "(ushort)(val << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 0xc)" ( (binary_expression "val << 0xc" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x14:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 9);\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 9);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 9)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)(val << 9)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 9)" ( (binary_expression "val << 9" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x15:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0x600;\n    break;" case number_literal : (expression_statement "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0x600;" (assignment_expression "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0x600" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[0] | (ushort)(val << 9) & 0x600" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (binary_expression "(ushort)(val << 9) & 0x600" (call_expression "(ushort)(val << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 9)" ( (binary_expression "val << 9" identifier << number_literal) ))) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x16:\n    if ((val & 1U) == 0) {\n      the_ins.opcode[0] = the_ins.opcode[0] | 0x80;\n    }\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;" case number_literal : (if_statement "if ((val & 1U) == 0) {\n      the_ins.opcode[0] = the_ins.opcode[0] | 0x80;\n    }" if (parenthesized_expression "((val & 1U) == 0)" ( (binary_expression "(val & 1U) == 0" (parenthesized_expression "(val & 1U)" ( (binary_expression "val & 1U" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      the_ins.opcode[0] = the_ins.opcode[0] | 0x80;\n    }" { (expression_statement "the_ins.opcode[0] = the_ins.opcode[0] | 0x80;" (assignment_expression "the_ins.opcode[0] = the_ins.opcode[0] | 0x80" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[0] | 0x80" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | number_literal)) ;) })) (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)((val & 2U) << 3)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)((val & 2U) << 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((val & 2U) << 3)" ( (binary_expression "(val & 2U) << 3" (parenthesized_expression "(val & 2U)" ( (binary_expression "val & 2U" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x17:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 7) & 0xff;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);\n    break;" case number_literal : (expression_statement "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 7) & 0xff;" (assignment_expression "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 7) & 0xff" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[0] | (ushort)(val << 7) & 0xff" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (binary_expression "(ushort)(val << 7) & 0xff" (call_expression "(ushort)(val << 7)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 7)" ( (binary_expression "val << 7" identifier << number_literal) ))) & number_literal))) ;) (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 2U) << 3)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)((val & 2U) << 3)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)((val & 2U) << 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((val & 2U) << 3)" ( (binary_expression "(val & 2U) << 3" (parenthesized_expression "(val & 2U)" ( (binary_expression "val & 2U" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x18:\n    val = (int)((ushort)(val << 9) & 0x600);" case number_literal : (expression_statement "val = (int)((ushort)(val << 9) & 0x600);" (assignment_expression "val = (int)((ushort)(val << 9) & 0x600)" identifier = (cast_expression "(int)((ushort)(val << 9) & 0x600)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ushort)(val << 9) & 0x600)" ( (binary_expression "(ushort)(val << 9) & 0x600" (call_expression "(ushort)(val << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 9)" ( (binary_expression "val << 9" identifier << number_literal) ))) & number_literal) )))) ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 0x12:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)val;\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)val;" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)val" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)val" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (cast_expression "(ushort)val" ( (type_descriptor "ushort" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 0x1b:\n    the_ins.opcode[1] = (short)((uint)val >> 0x10);\n    the_ins.opcode[2] = uVar1;\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = (short)((uint)val >> 0x10);" (assignment_expression "the_ins.opcode[1] = (short)((uint)val >> 0x10)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (cast_expression "(short)((uint)val >> 0x10)" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (parenthesized_expression "((uint)val >> 0x10)" ( (binary_expression "(uint)val >> 0x10" (cast_expression "(uint)val" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "the_ins.opcode[2] = uVar1;" (assignment_expression "the_ins.opcode[2] = uVar1" (subscript_expression "the_ins.opcode[2]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x1c:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xf;\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;" case number_literal : (expression_statement "the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xf;" (assignment_expression "the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xf" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[0] | uVar1 & 0xf" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (binary_expression "uVar1 & 0xf" identifier & number_literal))) ;) (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)((val & 0x10U) << 2)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)((val & 0x10U) << 2)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)((val & 0x10U) << 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((val & 0x10U) << 2)" ( (binary_expression "(val & 0x10U) << 2" (parenthesized_expression "(val & 0x10U)" ( (binary_expression "val & 0x10U" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x1d:\n    the_ins.opcode[1] = uVar1 & 0xf | the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = uVar1 & 0xf | the_ins.opcode[1] | (ushort)((val & 0x10U) << 2);" (assignment_expression "the_ins.opcode[1] = uVar1 & 0xf | the_ins.opcode[1] | (ushort)((val & 0x10U) << 2)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "uVar1 & 0xf | the_ins.opcode[1] | (ushort)((val & 0x10U) << 2)" (binary_expression "uVar1 & 0xf | the_ins.opcode[1]" (binary_expression "uVar1 & 0xf" identifier & number_literal) | (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ])) | (call_expression "(ushort)((val & 0x10U) << 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((val & 0x10U) << 2)" ( (binary_expression "(val & 0x10U) << 2" (parenthesized_expression "(val & 0x10U)" ( (binary_expression "val & 0x10U" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x26:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x3b:" case number_literal :) (case_statement "case 0x46:\n    break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0x2c:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 10) & 0x400;\n    break;" case number_literal : (expression_statement "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 10) & 0x400;" (assignment_expression "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 10) & 0x400" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[0] | (ushort)(val << 10) & 0x400" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (binary_expression "(ushort)(val << 10) & 0x400" (call_expression "(ushort)(val << 10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 10)" ( (binary_expression "val << 10" identifier << number_literal) ))) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x38:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9);\n    break;" case number_literal : (expression_statement "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9);" (assignment_expression "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9)" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[0] | (ushort)(val << 9)" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 9)" ( (binary_expression "val << 9" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x34:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 6);\n    break;" case number_literal : (expression_statement "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 6);" (assignment_expression "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 6)" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[0] | (ushort)(val << 6)" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 6)" ( (binary_expression "val << 6" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x35:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 3;\n    break;" case number_literal : (expression_statement "the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 3;" (assignment_expression "the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 3" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[0] | uVar1 & 3" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (binary_expression "uVar1 & 3" identifier & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x36:\n    the_ins.opcode[0] = the_ins.opcode[0] | 0xff;\n    break;" case number_literal : (expression_statement "the_ins.opcode[0] = the_ins.opcode[0] | 0xff;" (assignment_expression "the_ins.opcode[0] = the_ins.opcode[0] | 0xff" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[0] | 0xff" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x37:\n    if (val != 1) {\n      the_ins.opcode[1] = the_ins.opcode[1] | 0x400;\n    }\n    break;" case number_literal : (if_statement "if (val != 1) {\n      the_ins.opcode[1] = the_ins.opcode[1] | 0x400;\n    }" if (parenthesized_expression "(val != 1)" ( (binary_expression "val != 1" identifier != number_literal) )) (compound_statement "{\n      the_ins.opcode[1] = the_ins.opcode[1] | 0x400;\n    }" { (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | 0x400;" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | 0x400" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | 0x400" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x39:\n    the_ins.numo = the_ins.numo + 1;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1;\n    break;" case number_literal : (expression_statement "the_ins.numo = the_ins.numo + 1;" (assignment_expression "the_ins.numo = the_ins.numo + 1" (field_expression "the_ins.numo" identifier . field_identifier) = (binary_expression "the_ins.numo + 1" (field_expression "the_ins.numo" identifier . field_identifier) + number_literal)) ;) (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | uVar1;" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | uVar1" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | uVar1" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x3a:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 4);\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 4);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 4)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)(val << 4)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 4)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 4)" ( (binary_expression "val << 4" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x3c:" case number_literal :) (case_statement "case 0x3d:\n    the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0xe00 | uVar1 * 8 & 0x40;\n    the_ins.opcode[1] = the_ins.opcode[1] | uVar1 * 8 & 0x80;\n    break;" case number_literal : (expression_statement "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0xe00 | uVar1 * 8 & 0x40;" (assignment_expression "the_ins.opcode[0] = the_ins.opcode[0] | (ushort)(val << 9) & 0xe00 | uVar1 * 8 & 0x40" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[0] | (ushort)(val << 9) & 0xe00 | uVar1 * 8 & 0x40" (binary_expression "the_ins.opcode[0] | (ushort)(val << 9) & 0xe00" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (binary_expression "(ushort)(val << 9) & 0xe00" (call_expression "(ushort)(val << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 9)" ( (binary_expression "val << 9" identifier << number_literal) ))) & number_literal)) | (binary_expression "uVar1 * 8 & 0x40" (binary_expression "uVar1 * 8" identifier * number_literal) & number_literal))) ;) (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | uVar1 * 8 & 0x80;" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | uVar1 * 8 & 0x80" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | uVar1 * 8 & 0x80" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (binary_expression "uVar1 * 8 & 0x80" (binary_expression "uVar1 * 8" identifier * number_literal) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x3e:\n    the_ins.opcode[1] = (ushort)(val << 0xc) | the_ins.opcode[1] | (ushort)(val << 3) & 0x80;\n    break;" case number_literal : (expression_statement "the_ins.opcode[1] = (ushort)(val << 0xc) | the_ins.opcode[1] | (ushort)(val << 3) & 0x80;" (assignment_expression "the_ins.opcode[1] = (ushort)(val << 0xc) | the_ins.opcode[1] | (ushort)(val << 3) & 0x80" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "(ushort)(val << 0xc) | the_ins.opcode[1] | (ushort)(val << 3) & 0x80" (binary_expression "(ushort)(val << 0xc) | the_ins.opcode[1]" (call_expression "(ushort)(val << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 0xc)" ( (binary_expression "val << 0xc" identifier << number_literal) ))) | (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ])) | (binary_expression "(ushort)(val << 3) & 0x80" (call_expression "(ushort)(val << 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 3)" ( (binary_expression "val << 3" identifier << number_literal) ))) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x42:\n    the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xff;\n    break;" case number_literal : (expression_statement "the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xff;" (assignment_expression "the_ins.opcode[0] = the_ins.opcode[0] | uVar1 & 0xff" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[0] | uVar1 & 0xff" (subscript_expression "the_ins.opcode[0]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (binary_expression "uVar1 & 0xff" identifier & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x43:\n    the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10) | (ushort)(val << 7);" case number_literal : (expression_statement "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10) | (ushort)(val << 7);" (assignment_expression "the_ins.opcode[1] = the_ins.opcode[1] | (ushort)(val << 10) | (ushort)(val << 7)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) = (binary_expression "the_ins.opcode[1] | (ushort)(val << 10) | (ushort)(val << 7)" (binary_expression "the_ins.opcode[1] | (ushort)(val << 10)" (subscript_expression "the_ins.opcode[1]" (field_expression "the_ins.opcode" identifier . field_identifier) [ number_literal ]) | (call_expression "(ushort)(val << 10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 10)" ( (binary_expression "val << 10" identifier << number_literal) )))) | (call_expression "(ushort)(val << 7)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(val << 7)" ( (binary_expression "val << 7" identifier << number_literal) ))))) ;)) })) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_00042120(int param_1,uint param_2)\n\n{\n  undefined4 uVar1;\n  ushort uVar2;\n  \n  uVar2 = (ushort)param_2;\n  switch(param_1 + -0x31) {\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    \n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_00042120(int param_1,uint param_2)\n\n{\n  undefined4 uVar1;\n  ushort uVar2;\n  \n  uVar2 = (ushort)param_2;\n  switch(param_1 + -0x31) {\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    \n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_00042120(int param_1,uint param_2)" identifier (parameter_list "(int param_1,uint param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  ushort uVar2;\n  \n  uVar2 = (ushort)param_2;\n  switch(param_1 + -0x31) {\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    \n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "ushort uVar2;" type_identifier identifier ;) (expression_statement "uVar2 = (ushort)param_2;" (assignment_expression "uVar2 = (ushort)param_2" identifier = (cast_expression "(ushort)param_2" ( (type_descriptor "ushort" type_identifier) ) identifier)) ;) (switch_statement "switch(param_1 + -0x31) {\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    \n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }" switch (parenthesized_expression "(param_1 + -0x31)" ( (binary_expression "param_1 + -0x31" identifier + number_literal) )) (compound_statement "{\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    \n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }" { (case_statement "case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 0xc)" identifier | (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 0xc)" ( (binary_expression "param_2 << 0xc" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 6)" identifier | (call_expression "(ushort)(param_2 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 6)" ( (binary_expression "param_2 << 6" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;" case number_literal : (expression_statement "uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);" (assignment_expression "uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc)" identifier = (binary_expression "uRam00081154 | (ushort)(param_2 << 0xc)" identifier | (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 0xc)" ( (binary_expression "param_2 << 0xc" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;" case number_literal : (expression_statement "uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);" (assignment_expression "uRam00081154 = uRam00081154 | (ushort)(param_2 << 6)" identifier = (binary_expression "uRam00081154 | (ushort)(param_2 << 6)" identifier | (call_expression "(ushort)(param_2 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 6)" ( (binary_expression "param_2 << 6" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;" case number_literal : (expression_statement "DAT_0008114c = DAT_0008114c + 1;" (assignment_expression "DAT_0008114c = DAT_0008114c + 1" identifier = (binary_expression "DAT_0008114c + 1" identifier + number_literal)) ;) (expression_statement "uRam00081154 = uRam00081154 | uVar2;" (assignment_expression "uRam00081154 = uRam00081154 | uVar2" identifier = (binary_expression "uRam00081154 | uVar2" identifier | identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 7)" identifier | (call_expression "(ushort)(param_2 << 7)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 7)" ( (binary_expression "param_2 << 7" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 10)" identifier | (call_expression "(ushort)(param_2 << 10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 10)" ( (binary_expression "param_2 << 10" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 5)" identifier | (call_expression "(ushort)(param_2 << 5)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 5)" ( (binary_expression "param_2 << 5" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    \n    FUN_0002c110(uVar1);" default : (expression_statement "uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);" (assignment_expression "uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31)" identifier = (call_expression "dcgettext(0,"failed sanity check.",5,param_1 + -0x31)" identifier (argument_list "(0,"failed sanity check.",5,param_1 + -0x31)" ( number_literal , (string_literal ""failed sanity check."" " string_content ") , number_literal , (binary_expression "param_1 + -0x31" identifier + number_literal) )))) ;) (expression_statement "FUN_0002c110(uVar1);" (call_expression "FUN_0002c110(uVar1)" identifier (argument_list "(uVar1)" ( identifier ))) ;)) (case_statement "case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);" (assignment_expression "DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc)" identifier = (binary_expression "DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc)" (binary_expression "DAT_00081152 | uVar2" identifier | identifier) | (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 0xc)" ( (binary_expression "param_2 << 0xc" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 9)" identifier | (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 9)" ( (binary_expression "param_2 << 9" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 9) & 0x600" identifier | (binary_expression "(ushort)(param_2 << 9) & 0x600" (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 9)" ( (binary_expression "param_2 << 9" identifier << number_literal) ))) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;" case number_literal : (if_statement "if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }" if (parenthesized_expression "((param_2 & 1) == 0)" ( (binary_expression "(param_2 & 1) == 0" (parenthesized_expression "(param_2 & 1)" ( (binary_expression "param_2 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }" { (expression_statement "DAT_00081150 = DAT_00081150 | 0x80;" (assignment_expression "DAT_00081150 = DAT_00081150 | 0x80" identifier = (binary_expression "DAT_00081150 | 0x80" identifier | number_literal)) ;) })) (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3)" identifier = (binary_expression "DAT_00081152 | (ushort)((param_2 & 2) << 3)" identifier | (call_expression "(ushort)((param_2 & 2) << 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((param_2 & 2) << 3)" ( (binary_expression "(param_2 & 2) << 3" (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 7) & 0xff" identifier | (binary_expression "(ushort)(param_2 << 7) & 0xff" (call_expression "(ushort)(param_2 << 7)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 7)" ( (binary_expression "param_2 << 7" identifier << number_literal) ))) & number_literal))) ;) (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3)" identifier = (binary_expression "DAT_00081152 | (ushort)((param_2 & 2) << 3)" identifier | (call_expression "(ushort)((param_2 & 2) << 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((param_2 & 2) << 3)" ( (binary_expression "(param_2 & 2) << 3" (parenthesized_expression "(param_2 & 2)" ( (binary_expression "param_2 & 2" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);" case number_literal : (expression_statement "param_2 = (uint)((ushort)(param_2 << 9) & 0x600);" (assignment_expression "param_2 = (uint)((ushort)(param_2 << 9) & 0x600)" identifier = (call_expression "(uint)((ushort)(param_2 << 9) & 0x600)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((ushort)(param_2 << 9) & 0x600)" ( (binary_expression "(ushort)(param_2 << 9) & 0x600" (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 9)" ( (binary_expression "param_2 << 9" identifier << number_literal) ))) & number_literal) )))) ;)) (case_statement "case 2:" case number_literal :) (case_statement "case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)param_2;" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)param_2" identifier = (binary_expression "DAT_00081152 | (ushort)param_2" identifier | (cast_expression "(ushort)param_2" ( (type_descriptor "ushort" type_identifier) ) identifier))) ;) (break_statement "break;" break ;)) (case_statement "case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;" case number_literal : (expression_statement "DAT_00081152 = (ushort)(param_2 >> 0x10);" (assignment_expression "DAT_00081152 = (ushort)(param_2 >> 0x10)" identifier = (call_expression "(ushort)(param_2 >> 0x10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 >> 0x10)" ( (binary_expression "param_2 >> 0x10" identifier >> number_literal) )))) ;) (expression_statement "uRam00081154 = uVar2;" (assignment_expression "uRam00081154 = uVar2" identifier = identifier) ;) (break_statement "break;" break ;)) (case_statement "case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | uVar2 & 0xf;" (assignment_expression "DAT_00081150 = DAT_00081150 | uVar2 & 0xf" identifier = (binary_expression "DAT_00081150 | uVar2 & 0xf" identifier | (binary_expression "uVar2 & 0xf" identifier & number_literal))) ;) (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" identifier = (binary_expression "DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" identifier | (call_expression "(ushort)((param_2 & 0x10) << 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((param_2 & 0x10) << 2)" ( (binary_expression "(param_2 & 0x10) << 2" (parenthesized_expression "(param_2 & 0x10)" ( (binary_expression "param_2 & 0x10" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;" case number_literal : (expression_statement "DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);" (assignment_expression "DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" identifier = (binary_expression "uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" (binary_expression "uVar2 & 0xf | DAT_00081152" (binary_expression "uVar2 & 0xf" identifier & number_literal) | identifier) | (call_expression "(ushort)((param_2 & 0x10) << 2)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "((param_2 & 0x10) << 2)" ( (binary_expression "(param_2 & 0x10) << 2" (parenthesized_expression "(param_2 & 0x10)" ( (binary_expression "param_2 & 0x10" identifier & number_literal) )) << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x26:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x3b:" case number_literal :) (case_statement "case 0x46:\n    break;" case number_literal : (break_statement "break;" break ;)) (case_statement "case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 10) & 0x400" identifier | (binary_expression "(ushort)(param_2 << 10) & 0x400" (call_expression "(ushort)(param_2 << 10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 10)" ( (binary_expression "param_2 << 10" identifier << number_literal) ))) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9)" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 9)" identifier | (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 9)" ( (binary_expression "param_2 << 9" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6)" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 6)" identifier | (call_expression "(ushort)(param_2 << 6)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 6)" ( (binary_expression "param_2 << 6" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | uVar2 & 3;" (assignment_expression "DAT_00081150 = DAT_00081150 | uVar2 & 3" identifier = (binary_expression "DAT_00081150 | uVar2 & 3" identifier | (binary_expression "uVar2 & 3" identifier & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | 0xff;" (assignment_expression "DAT_00081150 = DAT_00081150 | 0xff" identifier = (binary_expression "DAT_00081150 | 0xff" identifier | number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;" case number_literal : (if_statement "if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }" if (parenthesized_expression "(param_2 != 1)" ( (binary_expression "param_2 != 1" identifier != number_literal) )) (compound_statement "{\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }" { (expression_statement "DAT_00081152 = DAT_00081152 | 0x400;" (assignment_expression "DAT_00081152 = DAT_00081152 | 0x400" identifier = (binary_expression "DAT_00081152 | 0x400" identifier | number_literal)) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;" case number_literal : (expression_statement "DAT_0008114c = DAT_0008114c + 1;" (assignment_expression "DAT_0008114c = DAT_0008114c + 1" identifier = (binary_expression "DAT_0008114c + 1" identifier + number_literal)) ;) (expression_statement "DAT_00081152 = DAT_00081152 | uVar2;" (assignment_expression "DAT_00081152 = DAT_00081152 | uVar2" identifier = (binary_expression "DAT_00081152 | uVar2" identifier | identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 4)" identifier | (call_expression "(ushort)(param_2 << 4)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 4)" ( (binary_expression "param_2 << 4" identifier << number_literal) ))))) ;) (break_statement "break;" break ;)) (case_statement "case 0x3c:" case number_literal :) (case_statement "case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40" identifier = (binary_expression "DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40" (binary_expression "DAT_00081150 | (ushort)(param_2 << 9) & 0xe00" identifier | (binary_expression "(ushort)(param_2 << 9) & 0xe00" (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 9)" ( (binary_expression "param_2 << 9" identifier << number_literal) ))) & number_literal)) | (binary_expression "uVar2 * 8 & 0x40" (binary_expression "uVar2 * 8" identifier * number_literal) & number_literal))) ;) (expression_statement "DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;" (assignment_expression "DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80" identifier = (binary_expression "DAT_00081152 | uVar2 * 8 & 0x80" identifier | (binary_expression "uVar2 * 8 & 0x80" (binary_expression "uVar2 * 8" identifier * number_literal) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;" case number_literal : (expression_statement "DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;" (assignment_expression "DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80" identifier = (binary_expression "(ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80" (binary_expression "(ushort)(param_2 << 0xc) | DAT_00081152" (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 0xc)" ( (binary_expression "param_2 << 0xc" identifier << number_literal) ))) | identifier) | (binary_expression "(ushort)(param_2 << 3) & 0x80" (call_expression "(ushort)(param_2 << 3)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 3)" ( (binary_expression "param_2 << 3" identifier << number_literal) ))) & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;" case number_literal : (expression_statement "DAT_00081150 = DAT_00081150 | uVar2 & 0xff;" (assignment_expression "DAT_00081150 = DAT_00081150 | uVar2 & 0xff" identifier = (binary_expression "DAT_00081150 | uVar2 & 0xff" identifier | (binary_expression "uVar2 & 0xff" identifier & number_literal))) ;) (break_statement "break;" break ;)) (case_statement "case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);" case number_literal : (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7)" identifier = (binary_expression "DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7)" (binary_expression "DAT_00081152 | (ushort)(param_2 << 10)" identifier | (call_expression "(ushort)(param_2 << 10)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 10)" ( (binary_expression "param_2 << 10" identifier << number_literal) )))) | (call_expression "(ushort)(param_2 << 7)" (parenthesized_expression "(ushort)" ( identifier )) (argument_list "(param_2 << 7)" ( (binary_expression "param_2 << 7" identifier << number_literal) ))))) ;)) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (switch_statement switch (parenthesized_expression ( (binary_expression IDENT + LIT) )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT | IDENT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) & LIT))) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) & LIT) )))) ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression IDENT & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT & LIT) | IDENT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) & LIT))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression IDENT & LIT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT | LIT)) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | IDENT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) & LIT)) | (binary_expression (binary_expression IDENT * LIT) & LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (binary_expression IDENT * LIT) & LIT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) | IDENT) | (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))) & LIT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression IDENT & LIT))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) )))) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT << LIT) ))))) ;)) })) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_00042120(int param_1,uint param_2)\n\n{\n  undefined4 uVar1;\n  ushort uVar2;\n  \n  uVar2 = (ushort)param_2;\n  switch(param_1 + -0x31) {\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    \n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_00042120(int param_1,uint param_2)" (identifier "FUN_00042120") (parameter_list "(int param_1,uint param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  ushort uVar2;\n  \n  uVar2 = (ushort)param_2;\n  switch(param_1 + -0x31) {\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    \n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "ushort uVar2;" (type_identifier "ushort") (identifier "uVar2") (; ";")) (expression_statement "uVar2 = (ushort)param_2;" (assignment_expression "uVar2 = (ushort)param_2" (identifier "uVar2") (= "=") (cast_expression "(ushort)param_2" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "param_2"))) (; ";")) (switch_statement "switch(param_1 + -0x31) {\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    \n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }" (switch "switch") (parenthesized_expression "(param_1 + -0x31)" (( "(") (binary_expression "param_1 + -0x31" (identifier "param_1") (+ "+") (number_literal "-0x31")) () ")")) (compound_statement "{\n  case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;\n  case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;\n  case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;\n  case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;\n  case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;\n  case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;\n  case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;\n  case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;\n  default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    \n    FUN_0002c110(uVar1);\n  case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;\n  case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;\n  case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;\n  case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;\n  case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);\n  case 2:\n  case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;\n  case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;\n  case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;\n  case 0x26:\n  case 0x31:\n  case 0x3b:\n  case 0x46:\n    break;\n  case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;\n  case 0x33:\n  case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;\n  case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;\n  case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;\n  case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;\n  case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;\n  case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;\n  case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;\n  case 0x3c:\n  case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;\n  case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;\n  case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;\n  case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);\n  }" ({ "{") (case_statement "case 0:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);\n    break;" (case "case") (number_literal "0") (: ":") (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)(param_2 << 0xc)" (identifier "DAT_00081152") (| "|") (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 0xc)" (( "(") (binary_expression "param_2 << 0xc" (identifier "param_2") (<< "<<") (number_literal "0xc")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);\n    break;" (case "case") (number_literal "1") (: ":") (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)(param_2 << 6)" (identifier "DAT_00081152") (| "|") (call_expression "(ushort)(param_2 << 6)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 6)" (( "(") (binary_expression "param_2 << 6" (identifier "param_2") (<< "<<") (number_literal "6")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);\n    break;" (case "case") (number_literal "3") (: ":") (expression_statement "uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);" (assignment_expression "uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc)" (identifier "uRam00081154") (= "=") (binary_expression "uRam00081154 | (ushort)(param_2 << 0xc)" (identifier "uRam00081154") (| "|") (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 0xc)" (( "(") (binary_expression "param_2 << 0xc" (identifier "param_2") (<< "<<") (number_literal "0xc")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);\n    break;" (case "case") (number_literal "4") (: ":") (expression_statement "uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);" (assignment_expression "uRam00081154 = uRam00081154 | (ushort)(param_2 << 6)" (identifier "uRam00081154") (= "=") (binary_expression "uRam00081154 | (ushort)(param_2 << 6)" (identifier "uRam00081154") (| "|") (call_expression "(ushort)(param_2 << 6)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 6)" (( "(") (binary_expression "param_2 << 6" (identifier "param_2") (<< "<<") (number_literal "6")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n    DAT_0008114c = DAT_0008114c + 1;\n    uRam00081154 = uRam00081154 | uVar2;\n    break;" (case "case") (number_literal "5") (: ":") (expression_statement "DAT_0008114c = DAT_0008114c + 1;" (assignment_expression "DAT_0008114c = DAT_0008114c + 1" (identifier "DAT_0008114c") (= "=") (binary_expression "DAT_0008114c + 1" (identifier "DAT_0008114c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uRam00081154 = uRam00081154 | uVar2;" (assignment_expression "uRam00081154 = uRam00081154 | uVar2" (identifier "uRam00081154") (= "=") (binary_expression "uRam00081154 | uVar2" (identifier "uRam00081154") (| "|") (identifier "uVar2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);\n    break;" (case "case") (number_literal "6") (: ":") (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)(param_2 << 7)" (identifier "DAT_00081152") (| "|") (call_expression "(ushort)(param_2 << 7)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 7)" (( "(") (binary_expression "param_2 << 7" (identifier "param_2") (<< "<<") (number_literal "7")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 7:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);\n    break;" (case "case") (number_literal "7") (: ":") (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)(param_2 << 10)" (identifier "DAT_00081152") (| "|") (call_expression "(ushort)(param_2 << 10)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 10)" (( "(") (binary_expression "param_2 << 10" (identifier "param_2") (<< "<<") (number_literal "10")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);\n    break;" (case "case") (number_literal "8") (: ":") (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)(param_2 << 5)" (identifier "DAT_00081152") (| "|") (call_expression "(ushort)(param_2 << 5)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 5)" (( "(") (binary_expression "param_2 << 5" (identifier "param_2") (<< "<<") (number_literal "5")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);\n                    \n    FUN_0002c110(uVar1);" (default "default") (: ":") (expression_statement "uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);" (assignment_expression "uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"failed sanity check.",5,param_1 + -0x31)" (identifier "dcgettext") (argument_list "(0,"failed sanity check.",5,param_1 + -0x31)" (( "(") (number_literal "0") (, ",") (string_literal ""failed sanity check."" (" """) (string_content "failed sanity check.") (" """)) (, ",") (number_literal "5") (, ",") (binary_expression "param_1 + -0x31" (identifier "param_1") (+ "+") (number_literal "-0x31")) () ")")))) (; ";")) (expression_statement "FUN_0002c110(uVar1);" (call_expression "FUN_0002c110(uVar1)" (identifier "FUN_0002c110") (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";"))) (case_statement "case 0x13:\n    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);\n    break;" (case "case") (number_literal "0x13") (: ":") (expression_statement "DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);" (assignment_expression "DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc)" (binary_expression "DAT_00081152 | uVar2" (identifier "DAT_00081152") (| "|") (identifier "uVar2")) (| "|") (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 0xc)" (( "(") (binary_expression "param_2 << 0xc" (identifier "param_2") (<< "<<") (number_literal "0xc")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x14:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);\n    break;" (case "case") (number_literal "0x14") (: ":") (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)(param_2 << 9)" (identifier "DAT_00081152") (| "|") (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 9)" (( "(") (binary_expression "param_2 << 9" (identifier "param_2") (<< "<<") (number_literal "9")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x15:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;\n    break;" (case "case") (number_literal "0x15") (: ":") (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600" (identifier "DAT_00081150") (= "=") (binary_expression "DAT_00081150 | (ushort)(param_2 << 9) & 0x600" (identifier "DAT_00081150") (| "|") (binary_expression "(ushort)(param_2 << 9) & 0x600" (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 9)" (( "(") (binary_expression "param_2 << 9" (identifier "param_2") (<< "<<") (number_literal "9")) () ")"))) (& "&") (number_literal "0x600")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x16:\n    if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;" (case "case") (number_literal "0x16") (: ":") (if_statement "if ((param_2 & 1) == 0) {\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }" (if "if") (parenthesized_expression "((param_2 & 1) == 0)" (( "(") (binary_expression "(param_2 & 1) == 0" (parenthesized_expression "(param_2 & 1)" (( "(") (binary_expression "param_2 & 1" (identifier "param_2") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      DAT_00081150 = DAT_00081150 | 0x80;\n    }" ({ "{") (expression_statement "DAT_00081150 = DAT_00081150 | 0x80;" (assignment_expression "DAT_00081150 = DAT_00081150 | 0x80" (identifier "DAT_00081150") (= "=") (binary_expression "DAT_00081150 | 0x80" (identifier "DAT_00081150") (| "|") (number_literal "0x80"))) (; ";")) (} "}"))) (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)((param_2 & 2) << 3)" (identifier "DAT_00081152") (| "|") (call_expression "(ushort)((param_2 & 2) << 3)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((param_2 & 2) << 3)" (( "(") (binary_expression "(param_2 & 2) << 3" (parenthesized_expression "(param_2 & 2)" (( "(") (binary_expression "param_2 & 2" (identifier "param_2") (& "&") (number_literal "2")) () ")")) (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x17:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);\n    break;" (case "case") (number_literal "0x17") (: ":") (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff" (identifier "DAT_00081150") (= "=") (binary_expression "DAT_00081150 | (ushort)(param_2 << 7) & 0xff" (identifier "DAT_00081150") (| "|") (binary_expression "(ushort)(param_2 << 7) & 0xff" (call_expression "(ushort)(param_2 << 7)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 7)" (( "(") (binary_expression "param_2 << 7" (identifier "param_2") (<< "<<") (number_literal "7")) () ")"))) (& "&") (number_literal "0xff")))) (; ";")) (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)((param_2 & 2) << 3)" (identifier "DAT_00081152") (| "|") (call_expression "(ushort)((param_2 & 2) << 3)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((param_2 & 2) << 3)" (( "(") (binary_expression "(param_2 & 2) << 3" (parenthesized_expression "(param_2 & 2)" (( "(") (binary_expression "param_2 & 2" (identifier "param_2") (& "&") (number_literal "2")) () ")")) (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x18:\n    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);" (case "case") (number_literal "0x18") (: ":") (expression_statement "param_2 = (uint)((ushort)(param_2 << 9) & 0x600);" (assignment_expression "param_2 = (uint)((ushort)(param_2 << 9) & 0x600)" (identifier "param_2") (= "=") (call_expression "(uint)((ushort)(param_2 << 9) & 0x600)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((ushort)(param_2 << 9) & 0x600)" (( "(") (binary_expression "(ushort)(param_2 << 9) & 0x600" (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 9)" (( "(") (binary_expression "param_2 << 9" (identifier "param_2") (<< "<<") (number_literal "9")) () ")"))) (& "&") (number_literal "0x600")) () ")")))) (; ";"))) (case_statement "case 2:" (case "case") (number_literal "2") (: ":")) (case_statement "case 0x12:\n    DAT_00081152 = DAT_00081152 | (ushort)param_2;\n    break;" (case "case") (number_literal "0x12") (: ":") (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)param_2;" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)param_2" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)param_2" (identifier "DAT_00081152") (| "|") (cast_expression "(ushort)param_2" (( "(") (type_descriptor "ushort" (type_identifier "ushort")) () ")") (identifier "param_2")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1b:\n    DAT_00081152 = (ushort)(param_2 >> 0x10);\n    uRam00081154 = uVar2;\n    break;" (case "case") (number_literal "0x1b") (: ":") (expression_statement "DAT_00081152 = (ushort)(param_2 >> 0x10);" (assignment_expression "DAT_00081152 = (ushort)(param_2 >> 0x10)" (identifier "DAT_00081152") (= "=") (call_expression "(ushort)(param_2 >> 0x10)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 >> 0x10)" (( "(") (binary_expression "param_2 >> 0x10" (identifier "param_2") (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uRam00081154 = uVar2;" (assignment_expression "uRam00081154 = uVar2" (identifier "uRam00081154") (= "=") (identifier "uVar2")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1c:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;\n    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;" (case "case") (number_literal "0x1c") (: ":") (expression_statement "DAT_00081150 = DAT_00081150 | uVar2 & 0xf;" (assignment_expression "DAT_00081150 = DAT_00081150 | uVar2 & 0xf" (identifier "DAT_00081150") (= "=") (binary_expression "DAT_00081150 | uVar2 & 0xf" (identifier "DAT_00081150") (| "|") (binary_expression "uVar2 & 0xf" (identifier "uVar2") (& "&") (number_literal "0xf")))) (; ";")) (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" (identifier "DAT_00081152") (| "|") (call_expression "(ushort)((param_2 & 0x10) << 2)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((param_2 & 0x10) << 2)" (( "(") (binary_expression "(param_2 & 0x10) << 2" (parenthesized_expression "(param_2 & 0x10)" (( "(") (binary_expression "param_2 & 0x10" (identifier "param_2") (& "&") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x1d:\n    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);\n    break;" (case "case") (number_literal "0x1d") (: ":") (expression_statement "DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);" (assignment_expression "DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" (identifier "DAT_00081152") (= "=") (binary_expression "uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2)" (binary_expression "uVar2 & 0xf | DAT_00081152" (binary_expression "uVar2 & 0xf" (identifier "uVar2") (& "&") (number_literal "0xf")) (| "|") (identifier "DAT_00081152")) (| "|") (call_expression "(ushort)((param_2 & 0x10) << 2)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "((param_2 & 0x10) << 2)" (( "(") (binary_expression "(param_2 & 0x10) << 2" (parenthesized_expression "(param_2 & 0x10)" (( "(") (binary_expression "param_2 & 0x10" (identifier "param_2") (& "&") (number_literal "0x10")) () ")")) (<< "<<") (number_literal "2")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x26:" (case "case") (number_literal "0x26") (: ":")) (case_statement "case 0x31:" (case "case") (number_literal "0x31") (: ":")) (case_statement "case 0x3b:" (case "case") (number_literal "0x3b") (: ":")) (case_statement "case 0x46:\n    break;" (case "case") (number_literal "0x46") (: ":") (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x2c:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;\n    break;" (case "case") (number_literal "0x2c") (: ":") (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400" (identifier "DAT_00081150") (= "=") (binary_expression "DAT_00081150 | (ushort)(param_2 << 10) & 0x400" (identifier "DAT_00081150") (| "|") (binary_expression "(ushort)(param_2 << 10) & 0x400" (call_expression "(ushort)(param_2 << 10)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 10)" (( "(") (binary_expression "param_2 << 10" (identifier "param_2") (<< "<<") (number_literal "10")) () ")"))) (& "&") (number_literal "0x400")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x33:" (case "case") (number_literal "0x33") (: ":")) (case_statement "case 0x38:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);\n    break;" (case "case") (number_literal "0x38") (: ":") (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9)" (identifier "DAT_00081150") (= "=") (binary_expression "DAT_00081150 | (ushort)(param_2 << 9)" (identifier "DAT_00081150") (| "|") (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 9)" (( "(") (binary_expression "param_2 << 9" (identifier "param_2") (<< "<<") (number_literal "9")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x34:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);\n    break;" (case "case") (number_literal "0x34") (: ":") (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6)" (identifier "DAT_00081150") (= "=") (binary_expression "DAT_00081150 | (ushort)(param_2 << 6)" (identifier "DAT_00081150") (| "|") (call_expression "(ushort)(param_2 << 6)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 6)" (( "(") (binary_expression "param_2 << 6" (identifier "param_2") (<< "<<") (number_literal "6")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x35:\n    DAT_00081150 = DAT_00081150 | uVar2 & 3;\n    break;" (case "case") (number_literal "0x35") (: ":") (expression_statement "DAT_00081150 = DAT_00081150 | uVar2 & 3;" (assignment_expression "DAT_00081150 = DAT_00081150 | uVar2 & 3" (identifier "DAT_00081150") (= "=") (binary_expression "DAT_00081150 | uVar2 & 3" (identifier "DAT_00081150") (| "|") (binary_expression "uVar2 & 3" (identifier "uVar2") (& "&") (number_literal "3")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x36:\n    DAT_00081150 = DAT_00081150 | 0xff;\n    break;" (case "case") (number_literal "0x36") (: ":") (expression_statement "DAT_00081150 = DAT_00081150 | 0xff;" (assignment_expression "DAT_00081150 = DAT_00081150 | 0xff" (identifier "DAT_00081150") (= "=") (binary_expression "DAT_00081150 | 0xff" (identifier "DAT_00081150") (| "|") (number_literal "0xff"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x37:\n    if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }\n    break;" (case "case") (number_literal "0x37") (: ":") (if_statement "if (param_2 != 1) {\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }" (if "if") (parenthesized_expression "(param_2 != 1)" (( "(") (binary_expression "param_2 != 1" (identifier "param_2") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n      DAT_00081152 = DAT_00081152 | 0x400;\n    }" ({ "{") (expression_statement "DAT_00081152 = DAT_00081152 | 0x400;" (assignment_expression "DAT_00081152 = DAT_00081152 | 0x400" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | 0x400" (identifier "DAT_00081152") (| "|") (number_literal "0x400"))) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x39:\n    DAT_0008114c = DAT_0008114c + 1;\n    DAT_00081152 = DAT_00081152 | uVar2;\n    break;" (case "case") (number_literal "0x39") (: ":") (expression_statement "DAT_0008114c = DAT_0008114c + 1;" (assignment_expression "DAT_0008114c = DAT_0008114c + 1" (identifier "DAT_0008114c") (= "=") (binary_expression "DAT_0008114c + 1" (identifier "DAT_0008114c") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "DAT_00081152 = DAT_00081152 | uVar2;" (assignment_expression "DAT_00081152 = DAT_00081152 | uVar2" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | uVar2" (identifier "DAT_00081152") (| "|") (identifier "uVar2"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x3a:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);\n    break;" (case "case") (number_literal "0x3a") (: ":") (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)(param_2 << 4)" (identifier "DAT_00081152") (| "|") (call_expression "(ushort)(param_2 << 4)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 4)" (( "(") (binary_expression "param_2 << 4" (identifier "param_2") (<< "<<") (number_literal "4")) () ")"))))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x3c:" (case "case") (number_literal "0x3c") (: ":")) (case_statement "case 0x3d:\n    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;\n    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;\n    break;" (case "case") (number_literal "0x3d") (: ":") (expression_statement "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;" (assignment_expression "DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40" (identifier "DAT_00081150") (= "=") (binary_expression "DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40" (binary_expression "DAT_00081150 | (ushort)(param_2 << 9) & 0xe00" (identifier "DAT_00081150") (| "|") (binary_expression "(ushort)(param_2 << 9) & 0xe00" (call_expression "(ushort)(param_2 << 9)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 9)" (( "(") (binary_expression "param_2 << 9" (identifier "param_2") (<< "<<") (number_literal "9")) () ")"))) (& "&") (number_literal "0xe00"))) (| "|") (binary_expression "uVar2 * 8 & 0x40" (binary_expression "uVar2 * 8" (identifier "uVar2") (* "*") (number_literal "8")) (& "&") (number_literal "0x40")))) (; ";")) (expression_statement "DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;" (assignment_expression "DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | uVar2 * 8 & 0x80" (identifier "DAT_00081152") (| "|") (binary_expression "uVar2 * 8 & 0x80" (binary_expression "uVar2 * 8" (identifier "uVar2") (* "*") (number_literal "8")) (& "&") (number_literal "0x80")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x3e:\n    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;\n    break;" (case "case") (number_literal "0x3e") (: ":") (expression_statement "DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;" (assignment_expression "DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80" (identifier "DAT_00081152") (= "=") (binary_expression "(ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80" (binary_expression "(ushort)(param_2 << 0xc) | DAT_00081152" (call_expression "(ushort)(param_2 << 0xc)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 0xc)" (( "(") (binary_expression "param_2 << 0xc" (identifier "param_2") (<< "<<") (number_literal "0xc")) () ")"))) (| "|") (identifier "DAT_00081152")) (| "|") (binary_expression "(ushort)(param_2 << 3) & 0x80" (call_expression "(ushort)(param_2 << 3)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 3)" (( "(") (binary_expression "param_2 << 3" (identifier "param_2") (<< "<<") (number_literal "3")) () ")"))) (& "&") (number_literal "0x80")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x42:\n    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;\n    break;" (case "case") (number_literal "0x42") (: ":") (expression_statement "DAT_00081150 = DAT_00081150 | uVar2 & 0xff;" (assignment_expression "DAT_00081150 = DAT_00081150 | uVar2 & 0xff" (identifier "DAT_00081150") (= "=") (binary_expression "DAT_00081150 | uVar2 & 0xff" (identifier "DAT_00081150") (| "|") (binary_expression "uVar2 & 0xff" (identifier "uVar2") (& "&") (number_literal "0xff")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x43:\n    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);" (case "case") (number_literal "0x43") (: ":") (expression_statement "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);" (assignment_expression "DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7)" (identifier "DAT_00081152") (= "=") (binary_expression "DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7)" (binary_expression "DAT_00081152 | (ushort)(param_2 << 10)" (identifier "DAT_00081152") (| "|") (call_expression "(ushort)(param_2 << 10)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 10)" (( "(") (binary_expression "param_2 << 10" (identifier "param_2") (<< "<<") (number_literal "10")) () ")")))) (| "|") (call_expression "(ushort)(param_2 << 7)" (parenthesized_expression "(ushort)" (( "(") (identifier "ushort") () ")")) (argument_list "(param_2 << 7)" (( "(") (binary_expression "param_2 << 7" (identifier "param_2") (<< "<<") (number_literal "7")) () ")"))))) (; ";"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3 function_1(int var_1,int var_2)

{
  char *format;
  type_1 var_3;
  
  var_3 = (type_1)var_2;
  switch(var_1 + -0x31) {
  case 0:
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)(var_2 << 0xc);
    break;
  case 1:
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)(var_2 << 6);
    break;
  case 3:
    the_ins.opcode[2] = the_ins.opcode[2] | (type_1)(var_2 << 0xc);
    break;
  case 4:
    the_ins.opcode[2] = the_ins.opcode[2] | (type_1)(var_2 << 6);
    break;
  case 5:
    the_ins.numo = the_ins.numo + 1;
    the_ins.opcode[2] = the_ins.opcode[2] | var_3;
    break;
  case 6:
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)(var_2 << 7);
    break;
  case 7:
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)(var_2 << 10);
    break;
  case 8:
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)(var_2 << 5);
    break;
  default:
    format = (char *)var_4(0,"failed sanity check.",5,var_1 + -0x31);
                    /* WARNING: Subroutine does not return */
    var_5(format);
  case 0x13:
    the_ins.opcode[1] = the_ins.opcode[1] | var_3 | (type_1)(var_2 << 0xc);
    break;
  case 0x14:
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)(var_2 << 9);
    break;
  case 0x15:
    the_ins.opcode[0] = the_ins.opcode[0] | (type_1)(var_2 << 9) & 0x600;
    break;
  case 0x16:
    if ((var_2 & 1U) == 0) {
      the_ins.opcode[0] = the_ins.opcode[0] | 0x80;
    }
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)((var_2 & 2U) << 3);
    break;
  case 0x17:
    the_ins.opcode[0] = the_ins.opcode[0] | (type_1)(var_2 << 7) & 0xff;
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)((var_2 & 2U) << 3);
    break;
  case 0x18:
    var_2 = (int)((type_1)(var_2 << 9) & 0x600);
  case 2:
  case 0x12:
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)var_2;
    break;
  case 0x1b:
    the_ins.opcode[1] = (short)((type_2)var_2 >> 0x10);
    the_ins.opcode[2] = var_3;
    break;
  case 0x1c:
    the_ins.opcode[0] = the_ins.opcode[0] | var_3 & 0xf;
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)((var_2 & 0x10U) << 2);
    break;
  case 0x1d:
    the_ins.opcode[1] = var_3 & 0xf | the_ins.opcode[1] | (type_1)((var_2 & 0x10U) << 2);
    break;
  case 0x26:
  case 0x31:
  case 0x3b:
  case 0x46:
    break;
  case 0x2c:
    the_ins.opcode[0] = the_ins.opcode[0] | (type_1)(var_2 << 10) & 0x400;
    break;
  case 0x33:
  case 0x38:
    the_ins.opcode[0] = the_ins.opcode[0] | (type_1)(var_2 << 9);
    break;
  case 0x34:
    the_ins.opcode[0] = the_ins.opcode[0] | (type_1)(var_2 << 6);
    break;
  case 0x35:
    the_ins.opcode[0] = the_ins.opcode[0] | var_3 & 3;
    break;
  case 0x36:
    the_ins.opcode[0] = the_ins.opcode[0] | 0xff;
    break;
  case 0x37:
    if (var_2 != 1) {
      the_ins.opcode[1] = the_ins.opcode[1] | 0x400;
    }
    break;
  case 0x39:
    the_ins.numo = the_ins.numo + 1;
    the_ins.opcode[1] = the_ins.opcode[1] | var_3;
    break;
  case 0x3a:
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)(var_2 << 4);
    break;
  case 0x3c:
  case 0x3d:
    the_ins.opcode[0] = the_ins.opcode[0] | (type_1)(var_2 << 9) & 0xe00 | var_3 * 8 & 0x40;
    the_ins.opcode[1] = the_ins.opcode[1] | var_3 * 8 & 0x80;
    break;
  case 0x3e:
    the_ins.opcode[1] = (type_1)(var_2 << 0xc) | the_ins.opcode[1] | (type_1)(var_2 << 3) & 0x80;
    break;
  case 0x42:
    the_ins.opcode[0] = the_ins.opcode[0] | var_3 & 0xff;
    break;
  case 0x43:
    the_ins.opcode[1] = the_ins.opcode[1] | (type_1)(var_2 << 10) | (type_1)(var_2 << 7);
  }
  return;
}


(translation_unit (function_definition type: (primitive_type) (ERROR (identifier)) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))) (switch_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))))) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (break_statement)) (case_statement value: (number_literal) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (break_statement)) (case_statement value: (number_literal)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (identifier)) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (break_statement)) (case_statement value: (number_literal) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))))))) (return_statement))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3 MASKED(int param_1,uint param_2)

{
  undefined4 uVar1;
  ushort uVar2;
  
  uVar2 = (ushort)param_2;
  switch(param_1 + -0x31) {
  case 0:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 0xc);
    break;
  case 1:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 6);
    break;
  case 3:
    uRam00081154 = uRam00081154 | (ushort)(param_2 << 0xc);
    break;
  case 4:
    uRam00081154 = uRam00081154 | (ushort)(param_2 << 6);
    break;
  case 5:
    DAT_0008114c = DAT_0008114c + 1;
    uRam00081154 = uRam00081154 | uVar2;
    break;
  case 6:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 7);
    break;
  case 7:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10);
    break;
  case 8:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 5);
    break;
  default:
    uVar1 = dcgettext(0,"failed sanity check.",5,param_1 + -0x31);
                    /* WARNING: Subroutine does not return */
    FUN_0002c110(uVar1);
  case 0x13:
    DAT_00081152 = DAT_00081152 | uVar2 | (ushort)(param_2 << 0xc);
    break;
  case 0x14:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 9);
    break;
  case 0x15:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0x600;
    break;
  case 0x16:
    if ((param_2 & 1) == 0) {
      DAT_00081150 = DAT_00081150 | 0x80;
    }
    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);
    break;
  case 0x17:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 7) & 0xff;
    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 2) << 3);
    break;
  case 0x18:
    param_2 = (uint)((ushort)(param_2 << 9) & 0x600);
  case 2:
  case 0x12:
    DAT_00081152 = DAT_00081152 | (ushort)param_2;
    break;
  case 0x1b:
    DAT_00081152 = (ushort)(param_2 >> 0x10);
    uRam00081154 = uVar2;
    break;
  case 0x1c:
    DAT_00081150 = DAT_00081150 | uVar2 & 0xf;
    DAT_00081152 = DAT_00081152 | (ushort)((param_2 & 0x10) << 2);
    break;
  case 0x1d:
    DAT_00081152 = uVar2 & 0xf | DAT_00081152 | (ushort)((param_2 & 0x10) << 2);
    break;
  case 0x26:
  case 0x31:
  case 0x3b:
  case 0x46:
    break;
  case 0x2c:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 10) & 0x400;
    break;
  case 0x33:
  case 0x38:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9);
    break;
  case 0x34:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 6);
    break;
  case 0x35:
    DAT_00081150 = DAT_00081150 | uVar2 & 3;
    break;
  case 0x36:
    DAT_00081150 = DAT_00081150 | 0xff;
    break;
  case 0x37:
    if (param_2 != 1) {
      DAT_00081152 = DAT_00081152 | 0x400;
    }
    break;
  case 0x39:
    DAT_0008114c = DAT_0008114c + 1;
    DAT_00081152 = DAT_00081152 | uVar2;
    break;
  case 0x3a:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 4);
    break;
  case 0x3c:
  case 0x3d:
    DAT_00081150 = DAT_00081150 | (ushort)(param_2 << 9) & 0xe00 | uVar2 * 8 & 0x40;
    DAT_00081152 = DAT_00081152 | uVar2 * 8 & 0x80;
    break;
  case 0x3e:
    DAT_00081152 = (ushort)(param_2 << 0xc) | DAT_00081152 | (ushort)(param_2 << 3) & 0x80;
    break;
  case 0x42:
    DAT_00081150 = DAT_00081150 | uVar2 & 0xff;
    break;
  case 0x43:
    DAT_00081152 = DAT_00081152 | (ushort)(param_2 << 10) | (ushort)(param_2 << 7);
  }
  return;
}

