
_Bool is_char_class_member(Char_class char_class,uchar c)

{
  ushort uVar1;
  ushort **ppuVar2;
  
  switch(char_class) {
  case CC_ALNUM:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 8;
    break;
  case CC_ALPHA:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 0x400;
    break;
  case CC_BLANK:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 1;
    break;
  case CC_CNTRL:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 2;
    break;
  case CC_DIGIT:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 0x800;
    break;
  case CC_GRAPH:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 0x8000;
    break;
  case CC_LOWER:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 0x200;
    break;
  case CC_PRINT:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 0x4000;
    break;
  case CC_PUNCT:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 4;
    break;
  case CC_SPACE:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 0x2000;
    break;
  case CC_UPPER:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 0x100;
    break;
  case CC_XDIGIT:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (*ppuVar2)[c] & 0x1000;
    break;
  default:
                    /* WARNING: Subroutine does not return */
    abort();
  }
  return uVar1 != 0;
}



undefined8 FUN_00103131(undefined4 param_1,uint param_2)

{
  ulong uVar1;
  ushort **ppuVar2;
  
  switch(param_1) {
  case 0:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);
    break;
  case 1:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);
    break;
  case 2:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);
    break;
  case 3:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);
    break;
  case 4:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);
    break;
  case 5:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);
    break;
  case 6:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);
    break;
  case 7:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);
    break;
  case 8:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);
    break;
  case 9:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);
    break;
  case 10:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);
    break;
  case 0xb:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);
    break;
  default:
                    /* WARNING: Subroutine does not return */
    abort();
  }
  return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);
}


PUSH RBX
CMP EDI,0xb
JA 0x0010327f
MOV EBX,ESI
MOV EDI,EDI
LEA RDX,[0x109210]
MOVSXD RAX,dword ptr [RDX + RDI*0x4]
ADD RAX,RDX
JMP RAX
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND EAX,0x8
MOVZX EAX,AX
TEST EAX,EAX
SETNZ AL
POP RBX
RET
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND AX,0x400
MOVZX EAX,AX
JMP 0x00103164
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND EAX,0x1
JMP 0x00103164
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND EAX,0x2
MOVZX EAX,AX
JMP 0x00103164
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND AX,0x800
MOVZX EAX,AX
JMP 0x00103164
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND AX,0x8000
MOVZX EAX,AX
JMP 0x00103164
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND AX,0x200
MOVZX EAX,AX
JMP 0x00103164
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND AX,0x4000
MOVZX EAX,AX
JMP 0x00103164
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND EAX,0x4
MOVZX EAX,AX
JMP 0x00103164
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND AX,0x2000
MOVZX EAX,AX
JMP 0x00103164
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND AX,0x100
MOVZX EAX,AX
JMP 0x00103164
CALL 0x00102320
MOVZX ESI,BL
MOV RAX,qword ptr [RAX]
MOVZX EAX,word ptr [RAX + RSI*0x2]
AND AX,0x1000
MOVZX EAX,AX
JMP 0x00103164
CALL 0x00102050
(translation_unit "undefined8 FUN_00103131(undefined4 param_1,uint param_2)\n\n{\n  ulong uVar1;\n  ushort **ppuVar2;\n  \n  switch(param_1) {\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);\n}\n\n" (function_definition "undefined8 FUN_00103131(undefined4 param_1,uint param_2)\n\n{\n  ulong uVar1;\n  ushort **ppuVar2;\n  \n  switch(param_1) {\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);\n}" type_identifier (function_declarator "FUN_00103131(undefined4 param_1,uint param_2)" identifier (parameter_list "(undefined4 param_1,uint param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  ulong uVar1;\n  ushort **ppuVar2;\n  \n  switch(param_1) {\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "ushort **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (switch_statement "switch(param_1) {\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" switch (parenthesized_expression "(param_1)" ( identifier )) (compound_statement "{\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" { (case_statement "case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 8)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 8" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x400)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x400)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x400" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 1)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 1" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 2)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 2" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x800)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x800)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x800" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x8000)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x8000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x200)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x200)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x200" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x4000)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x4000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 4)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 4" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x2000)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x2000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x100)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x100)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x100" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x1000)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x1000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    abort();" default : comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) })) (return_statement "return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);" return (call_expression "CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0)" identifier (argument_list "((int7)(uVar1 >> 8),(int)uVar1 != 0)" ( (call_expression "(int7)(uVar1 >> 8)" (parenthesized_expression "(int7)" ( identifier )) (argument_list "(uVar1 >> 8)" ( (binary_expression "uVar1 >> 8" identifier >> number_literal) ))) , (binary_expression "(int)uVar1 != 0" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) ))) ;) })))
(translation_unit "_Bool is_char_class_member(Char_class char_class,uchar c)\n\n{\n  ushort uVar1;\n  ushort **ppuVar2;\n  \n  switch(char_class) {\n  case CC_ALNUM:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 8;\n    break;\n  case CC_ALPHA:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x400;\n    break;\n  case CC_BLANK:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 1;\n    break;\n  case CC_CNTRL:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 2;\n    break;\n  case CC_DIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x800;\n    break;\n  case CC_GRAPH:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x8000;\n    break;\n  case CC_LOWER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x200;\n    break;\n  case CC_PRINT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x4000;\n    break;\n  case CC_PUNCT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 4;\n    break;\n  case CC_SPACE:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x2000;\n    break;\n  case CC_UPPER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x100;\n    break;\n  case CC_XDIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x1000;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  return uVar1 != 0;\n}\n\n" (function_definition "_Bool is_char_class_member(Char_class char_class,uchar c)\n\n{\n  ushort uVar1;\n  ushort **ppuVar2;\n  \n  switch(char_class) {\n  case CC_ALNUM:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 8;\n    break;\n  case CC_ALPHA:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x400;\n    break;\n  case CC_BLANK:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 1;\n    break;\n  case CC_CNTRL:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 2;\n    break;\n  case CC_DIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x800;\n    break;\n  case CC_GRAPH:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x8000;\n    break;\n  case CC_LOWER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x200;\n    break;\n  case CC_PRINT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x4000;\n    break;\n  case CC_PUNCT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 4;\n    break;\n  case CC_SPACE:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x2000;\n    break;\n  case CC_UPPER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x100;\n    break;\n  case CC_XDIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x1000;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  return uVar1 != 0;\n}" type_identifier (function_declarator "is_char_class_member(Char_class char_class,uchar c)" identifier (parameter_list "(Char_class char_class,uchar c)" ( (parameter_declaration "Char_class char_class" type_identifier identifier) , (parameter_declaration "uchar c" type_identifier identifier) ))) (compound_statement "{\n  ushort uVar1;\n  ushort **ppuVar2;\n  \n  switch(char_class) {\n  case CC_ALNUM:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 8;\n    break;\n  case CC_ALPHA:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x400;\n    break;\n  case CC_BLANK:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 1;\n    break;\n  case CC_CNTRL:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 2;\n    break;\n  case CC_DIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x800;\n    break;\n  case CC_GRAPH:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x8000;\n    break;\n  case CC_LOWER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x200;\n    break;\n  case CC_PRINT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x4000;\n    break;\n  case CC_PUNCT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 4;\n    break;\n  case CC_SPACE:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x2000;\n    break;\n  case CC_UPPER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x100;\n    break;\n  case CC_XDIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x1000;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }\n  return uVar1 != 0;\n}" { (declaration "ushort uVar1;" type_identifier identifier ;) (declaration "ushort **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (switch_statement "switch(char_class) {\n  case CC_ALNUM:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 8;\n    break;\n  case CC_ALPHA:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x400;\n    break;\n  case CC_BLANK:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 1;\n    break;\n  case CC_CNTRL:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 2;\n    break;\n  case CC_DIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x800;\n    break;\n  case CC_GRAPH:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x8000;\n    break;\n  case CC_LOWER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x200;\n    break;\n  case CC_PRINT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x4000;\n    break;\n  case CC_PUNCT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 4;\n    break;\n  case CC_SPACE:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x2000;\n    break;\n  case CC_UPPER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x100;\n    break;\n  case CC_XDIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x1000;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" switch (parenthesized_expression "(char_class)" ( identifier )) (compound_statement "{\n  case CC_ALNUM:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 8;\n    break;\n  case CC_ALPHA:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x400;\n    break;\n  case CC_BLANK:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 1;\n    break;\n  case CC_CNTRL:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 2;\n    break;\n  case CC_DIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x800;\n    break;\n  case CC_GRAPH:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x8000;\n    break;\n  case CC_LOWER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x200;\n    break;\n  case CC_PRINT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x4000;\n    break;\n  case CC_PUNCT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 4;\n    break;\n  case CC_SPACE:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x2000;\n    break;\n  case CC_UPPER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x100;\n    break;\n  case CC_XDIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x1000;\n    break;\n  default:\n                    /* WARNING: Subroutine does not return */\n    abort();\n  }" { (case_statement "case CC_ALNUM:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 8;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 8;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 8" identifier = (binary_expression "(*ppuVar2)[c] & 8" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case CC_ALPHA:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x400;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 0x400;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 0x400" identifier = (binary_expression "(*ppuVar2)[c] & 0x400" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case CC_BLANK:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 1;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 1;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 1" identifier = (binary_expression "(*ppuVar2)[c] & 1" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case CC_CNTRL:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 2;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 2;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 2" identifier = (binary_expression "(*ppuVar2)[c] & 2" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case CC_DIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x800;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 0x800;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 0x800" identifier = (binary_expression "(*ppuVar2)[c] & 0x800" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case CC_GRAPH:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x8000;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 0x8000;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 0x8000" identifier = (binary_expression "(*ppuVar2)[c] & 0x8000" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case CC_LOWER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x200;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 0x200;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 0x200" identifier = (binary_expression "(*ppuVar2)[c] & 0x200" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case CC_PRINT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x4000;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 0x4000;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 0x4000" identifier = (binary_expression "(*ppuVar2)[c] & 0x4000" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case CC_PUNCT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 4;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 4;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 4" identifier = (binary_expression "(*ppuVar2)[c] & 4" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case CC_SPACE:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x2000;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 0x2000;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 0x2000" identifier = (binary_expression "(*ppuVar2)[c] & 0x2000" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case CC_UPPER:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x100;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 0x100;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 0x100" identifier = (binary_expression "(*ppuVar2)[c] & 0x100" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case CC_XDIGIT:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (*ppuVar2)[c] & 0x1000;\n    break;" case identifier : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (*ppuVar2)[c] & 0x1000;" (assignment_expression "uVar1 = (*ppuVar2)[c] & 0x1000" identifier = (binary_expression "(*ppuVar2)[c] & 0x1000" (subscript_expression "(*ppuVar2)[c]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ identifier ]) & number_literal)) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    /* WARNING: Subroutine does not return */\n    abort();" default : comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) })) (return_statement "return uVar1 != 0;" return (binary_expression "uVar1 != 0" identifier != number_literal) ;) })))
(translation_unit "undefined8 FUN_00103131(undefined4 param_1,uint param_2)\n\n{\n  ulong uVar1;\n  ushort **ppuVar2;\n  \n  switch(param_1) {\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    \n    abort();\n  }\n  return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);\n}\n\n" (function_definition "undefined8 FUN_00103131(undefined4 param_1,uint param_2)\n\n{\n  ulong uVar1;\n  ushort **ppuVar2;\n  \n  switch(param_1) {\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    \n    abort();\n  }\n  return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);\n}" type_identifier (function_declarator "FUN_00103131(undefined4 param_1,uint param_2)" identifier (parameter_list "(undefined4 param_1,uint param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  ulong uVar1;\n  ushort **ppuVar2;\n  \n  switch(param_1) {\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    \n    abort();\n  }\n  return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "ushort **ppuVar2;" type_identifier (pointer_declarator "**ppuVar2" * (pointer_declarator "*ppuVar2" * identifier)) ;) (switch_statement "switch(param_1) {\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    \n    abort();\n  }" switch (parenthesized_expression "(param_1)" ( identifier )) (compound_statement "{\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    \n    abort();\n  }" { (case_statement "case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 8)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 8)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 8" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x400)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x400)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x400" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 1)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 1" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 2)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 2" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x800)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x800)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x800" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x8000)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x8000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x200)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x200)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x200" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x4000)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x4000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 4)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 4)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 4" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x2000)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x2000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x100)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x100)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x100" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;" case number_literal : (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" identifier = (call_expression "__ctype_b_loc()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000)" identifier = (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x1000)" ( (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x1000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" ( (pointer_expression "*ppuVar2" * identifier) )) [ (binary_expression "param_2 & 0xff" identifier & number_literal) ]) & number_literal) )))) ;) (break_statement "break;" break ;)) (case_statement "default:\n                    \n    abort();" default : (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;)) })) (return_statement "return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);" return (call_expression "CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0)" identifier (argument_list "((int7)(uVar1 >> 8),(int)uVar1 != 0)" ( (call_expression "(int7)(uVar1 >> 8)" (parenthesized_expression "(int7)" ( identifier )) (argument_list "(uVar1 >> 8)" ( (binary_expression "uVar1 >> 8" identifier >> number_literal) ))) , (binary_expression "(int)uVar1 != 0" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal) ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression (parenthesized_expression ( (pointer_expression * IDENT) )) [ (binary_expression IDENT & LIT) ]) & LIT) )))) ;) (break_statement break ;)) (case_statement default : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (return_statement return (call_expression IDENT (argument_list ( (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT >> LIT) ))) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) ))) ;) })))
(function_definition "undefined8 FUN_00103131(undefined4 param_1,uint param_2)\n\n{\n  ulong uVar1;\n  ushort **ppuVar2;\n  \n  switch(param_1) {\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    \n    abort();\n  }\n  return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);\n}" (type_identifier "undefined8") (function_declarator "FUN_00103131(undefined4 param_1,uint param_2)" (identifier "FUN_00103131") (parameter_list "(undefined4 param_1,uint param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  ulong uVar1;\n  ushort **ppuVar2;\n  \n  switch(param_1) {\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    \n    abort();\n  }\n  return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "ushort **ppuVar2;" (type_identifier "ushort") (pointer_declarator "**ppuVar2" (* "*") (pointer_declarator "*ppuVar2" (* "*") (identifier "ppuVar2"))) (; ";")) (switch_statement "switch(param_1) {\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    \n    abort();\n  }" (switch "switch") (parenthesized_expression "(param_1)" (( "(") (identifier "param_1") () ")")) (compound_statement "{\n  case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;\n  case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;\n  case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;\n  case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;\n  case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;\n  case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;\n  case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;\n  case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;\n  case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;\n  case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;\n  case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;\n  case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;\n  default:\n                    \n    abort();\n  }" ({ "{") (case_statement "case 0:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);\n    break;" (case "case") (number_literal "0") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 8)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 8)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 8" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "8")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 1:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);\n    break;" (case "case") (number_literal "1") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x400)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x400)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x400" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "0x400")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 2:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);\n    break;" (case "case") (number_literal "2") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 1)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 1" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "1")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 3:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);\n    break;" (case "case") (number_literal "3") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 2)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 2" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "2")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 4:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);\n    break;" (case "case") (number_literal "4") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x800)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x800)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x800" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "0x800")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 5:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);\n    break;" (case "case") (number_literal "5") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x8000)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x8000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "0x8000")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 6:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);\n    break;" (case "case") (number_literal "6") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x200)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x200)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x200" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "0x200")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 7:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);\n    break;" (case "case") (number_literal "7") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x4000)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x4000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "0x4000")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 8:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);\n    break;" (case "case") (number_literal "8") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 4)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 4)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 4" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "4")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 9:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);\n    break;" (case "case") (number_literal "9") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x2000)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x2000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "0x2000")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 10:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);\n    break;" (case "case") (number_literal "10") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x100)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x100)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x100" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "0x100")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0xb:\n    ppuVar2 = __ctype_b_loc();\n    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);\n    break;" (case "case") (number_literal "0xb") (: ":") (expression_statement "ppuVar2 = __ctype_b_loc();" (assignment_expression "ppuVar2 = __ctype_b_loc()" (identifier "ppuVar2") (= "=") (call_expression "__ctype_b_loc()" (identifier "__ctype_b_loc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);" (assignment_expression "uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000)" (identifier "uVar1") (= "=") (call_expression "(ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((*ppuVar2)[param_2 & 0xff] & 0x1000)" (( "(") (binary_expression "(*ppuVar2)[param_2 & 0xff] & 0x1000" (subscript_expression "(*ppuVar2)[param_2 & 0xff]" (parenthesized_expression "(*ppuVar2)" (( "(") (pointer_expression "*ppuVar2" (* "*") (identifier "ppuVar2")) () ")")) ([ "[") (binary_expression "param_2 & 0xff" (identifier "param_2") (& "&") (number_literal "0xff")) (] "]")) (& "&") (number_literal "0x1000")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n                    \n    abort();" (default "default") (: ":") (expression_statement "abort();" (call_expression "abort()" (identifier "abort") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (return_statement "return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);" (return "return") (call_expression "CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0)" (identifier "CONCAT71") (argument_list "((int7)(uVar1 >> 8),(int)uVar1 != 0)" (( "(") (call_expression "(int7)(uVar1 >> 8)" (parenthesized_expression "(int7)" (( "(") (identifier "int7") () ")")) (argument_list "(uVar1 >> 8)" (( "(") (binary_expression "uVar1 >> 8" (identifier "uVar1") (>> ">>") (number_literal "8")) () ")"))) (, ",") (binary_expression "(int)uVar1 != 0" (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")) (!= "!=") (number_literal "0")) () ")"))) (; ";")) (} "}")))

type_1 function_1(type_2 char_class,type_3 c)

{
  type_4 var_3;
  type_4 **ppuVar2;
  
  switch(char_class) {
  case CC_ALNUM:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 8;
    break;
  case CC_ALPHA:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 0x400;
    break;
  case CC_BLANK:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 1;
    break;
  case CC_CNTRL:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 2;
    break;
  case CC_DIGIT:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 0x800;
    break;
  case CC_GRAPH:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 0x8000;
    break;
  case CC_LOWER:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 0x200;
    break;
  case CC_PRINT:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 0x4000;
    break;
  case CC_PUNCT:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 4;
    break;
  case CC_SPACE:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 0x2000;
    break;
  case CC_UPPER:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 0x100;
    break;
  case CC_XDIGIT:
    ppuVar2 = var_1();
    var_3 = (*ppuVar2)[c] & 0x1000;
    break;
  default:
                    /* WARNING: Subroutine does not return */
    var_2();
  }
  return var_3 != 0;
}


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

undefined8 MASKED(undefined4 param_1,uint param_2)

{
  ulong uVar1;
  ushort **ppuVar2;
  
  switch(param_1) {
  case 0:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 8);
    break;
  case 1:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x400);
    break;
  case 2:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 1);
    break;
  case 3:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 2);
    break;
  case 4:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x800);
    break;
  case 5:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x8000);
    break;
  case 6:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x200);
    break;
  case 7:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x4000);
    break;
  case 8:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 4);
    break;
  case 9:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x2000);
    break;
  case 10:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x100);
    break;
  case 0xb:
    ppuVar2 = __ctype_b_loc();
    uVar1 = (ulong)((*ppuVar2)[param_2 & 0xff] & 0x1000);
    break;
  default:
                    /* WARNING: Subroutine does not return */
    abort();
  }
  return CONCAT71((int7)(uVar1 >> 8),(int)uVar1 != 0);
}

