
void emit_sextX(expressionS *tok,int ntok,void *vlgsize)

{
  expressionS *peVar1;
  long lgsize;
  expressionS newtok [3];
  
  if ((alpha_target._1_1_ & 1) != 0) {
    assemble_tokens(sextX_op[(long)vlgsize],tok,ntok,0);
    return;
  }
  newtok[0].X_add_symbol = tok->X_add_symbol;
  newtok[0].X_op_symbol = tok->X_op_symbol;
  newtok[0].X_add_number = tok->X_add_number;
  newtok[0]._24_2_ = *(undefined2 *)&tok->field_0x18;
  newtok[0].X_md = tok->X_md;
  newtok[0]._28_4_ = *(undefined4 *)&tok->field_0x1c;
  newtok[2].X_add_symbol = tok[(long)ntok + -1].X_add_symbol;
  newtok[2].X_op_symbol = tok[(long)ntok + -1].X_op_symbol;
  newtok[2].X_add_number = tok[(long)ntok + -1].X_add_number;
  peVar1 = tok + (long)ntok + -1;
  newtok[2]._24_2_ = *(undefined2 *)&peVar1->field_0x18;
  newtok[2].X_md = peVar1->X_md;
  newtok[2]._28_4_ = *(undefined4 *)&peVar1->field_0x1c;
  newtok[1].X_add_symbol = (symbolS *)0x0;
  newtok[1].X_op_symbol = (symbolS *)0x0;
  newtok[1]._24_1_ = 2;
  newtok[1].X_add_number = (long)(0x40 - (8 << ((byte)vlgsize & 0x1f)));
  newtok[1]._25_7_ = 0;
  assemble_tokens("sll",newtok,3,1);
  newtok[0].X_add_symbol = newtok[2].X_add_symbol;
  newtok[0].X_op_symbol = newtok[2].X_op_symbol;
  newtok[0].X_add_number = newtok[2].X_add_number;
  newtok[0]._24_2_ = newtok[2]._24_2_;
  newtok[0].X_md = newtok[2].X_md;
  newtok[0]._28_4_ = newtok[2]._28_4_;
  assemble_tokens("sra",newtok,3,1);
  return;
}



void FUN_001398d0(undefined8 *param_1,int param_2,long param_3)

{
  undefined8 local_68;
  undefined8 uStack_60;
  undefined8 local_58;
  undefined8 uStack_50;
  undefined1 local_48 [16];
  undefined1 local_38 [16];
  undefined8 local_28;
  undefined8 uStack_20;
  undefined8 local_18;
  undefined8 uStack_10;
  
  if ((DAT_001647a4._1_1_ & 1) != 0) {
    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);
    return;
  }
  local_68 = *param_1;
  uStack_60 = param_1[1];
  local_58 = param_1[2];
  uStack_50 = param_1[3];
  local_28 = param_1[(long)param_2 * 4 + -4];
  uStack_20 = param_1[(long)param_2 * 4 + -3];
  local_18 = param_1[(long)param_2 * 4 + -2];
  uStack_10 = param_1[(long)param_2 * 4 + -1];
  local_48 = (undefined1  [16])0x0;
  local_38[8] = 2;
  local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));
  local_38._9_7_ = 0;
  FUN_00139040("sll",&local_68,3,1);
  local_68 = local_28;
  uStack_60 = uStack_20;
  local_58 = local_18;
  uStack_50 = uStack_10;
  FUN_00139040(&DAT_0014c20b,&local_68,3,1);
  return;
}


PUSH RBX
SUB RSP,0x60
TEST byte ptr [0x001647a5],0x1
JZ 0x00139900
LEA RAX,[0x15b720]
XOR ECX,ECX
MOV RAX,qword ptr [RAX + RDX*0x8]
MOV EDX,ESI
MOV RSI,RDI
MOV RDI,RAX
CALL 0x00139040
ADD RSP,0x60
POP RBX
RET
MOV ECX,EDX
MOV EAX,0x8
MOVSXD RSI,ESI
MOVDQU XMM1,xmmword ptr [RDI]
SHL EAX,CL
SHL RSI,0x5
MOVDQU XMM2,xmmword ptr [RDI + 0x10]
MOV RBX,RSP
ADD RDI,RSI
MOV EDX,EAX
MOV EAX,0x40
MOV RSI,RBX
MOVDQU XMM3,xmmword ptr [RDI + -0x20]
MOVDQU XMM4,xmmword ptr [RDI + -0x10]
SUB EAX,EDX
PXOR XMM0,XMM0
CDQE
MOV ECX,0x1
MOV EDX,0x3
MOVAPS xmmword ptr [RSP],XMM1
LEA RDI,[0x14c550]
MOVAPS xmmword ptr [RSP + 0x10],XMM2
MOVAPS xmmword ptr [RSP + 0x20],XMM0
MOVAPS xmmword ptr [RSP + 0x50],XMM4
MOVAPS xmmword ptr [RBX + 0x30],XMM0
MOV qword ptr [RSP + 0x30],RAX
MOVAPS xmmword ptr [RSP + 0x40],XMM3
MOV byte ptr [RSP + 0x38],0x2
CALL 0x00139040
MOVDQA XMM5,xmmword ptr [RSP + 0x40]
MOVDQA XMM6,xmmword ptr [RSP + 0x50]
MOV RSI,RBX
MOV ECX,0x1
MOV EDX,0x3
LEA RDI,[0x14c20b]
MOVAPS xmmword ptr [RSP],XMM5
MOVAPS xmmword ptr [RSP + 0x10],XMM6
CALL 0x00139040
ADD RSP,0x60
POP RBX
RET
(translation_unit "void FUN_001398d0(undefined8 *param_1,int param_2,long param_3)\n\n{\n  undefined8 local_68;\n  undefined8 uStack_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined1 local_48 [16];\n  undefined1 local_38 [16];\n  undefined8 local_28;\n  undefined8 uStack_20;\n  undefined8 local_18;\n  undefined8 uStack_10;\n  \n  if ((DAT_001647a4._1_1_ & 1) != 0) {\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }\n  local_68 = *param_1;\n  uStack_60 = param_1[1];\n  local_58 = param_1[2];\n  uStack_50 = param_1[3];\n  local_28 = param_1[(long)param_2 * 4 + -4];\n  uStack_20 = param_1[(long)param_2 * 4 + -3];\n  local_18 = param_1[(long)param_2 * 4 + -2];\n  uStack_10 = param_1[(long)param_2 * 4 + -1];\n  local_48 = (undefined1  [16])0x0;\n  local_38[8] = 2;\n  local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));\n  local_38._9_7_ = 0;\n  FUN_00139040("sll",&local_68,3,1);\n  local_68 = local_28;\n  uStack_60 = uStack_20;\n  local_58 = local_18;\n  uStack_50 = uStack_10;\n  FUN_00139040(&DAT_0014c20b,&local_68,3,1);\n  return;\n}\n\n" (function_definition "void FUN_001398d0(undefined8 *param_1,int param_2,long param_3)\n\n{\n  undefined8 local_68;\n  undefined8 uStack_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined1 local_48 [16];\n  undefined1 local_38 [16];\n  undefined8 local_28;\n  undefined8 uStack_20;\n  undefined8 local_18;\n  undefined8 uStack_10;\n  \n  if ((DAT_001647a4._1_1_ & 1) != 0) {\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }\n  local_68 = *param_1;\n  uStack_60 = param_1[1];\n  local_58 = param_1[2];\n  uStack_50 = param_1[3];\n  local_28 = param_1[(long)param_2 * 4 + -4];\n  uStack_20 = param_1[(long)param_2 * 4 + -3];\n  local_18 = param_1[(long)param_2 * 4 + -2];\n  uStack_10 = param_1[(long)param_2 * 4 + -1];\n  local_48 = (undefined1  [16])0x0;\n  local_38[8] = 2;\n  local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));\n  local_38._9_7_ = 0;\n  FUN_00139040("sll",&local_68,3,1);\n  local_68 = local_28;\n  uStack_60 = uStack_20;\n  local_58 = local_18;\n  uStack_50 = uStack_10;\n  FUN_00139040(&DAT_0014c20b,&local_68,3,1);\n  return;\n}" primitive_type (function_declarator "FUN_001398d0(undefined8 *param_1,int param_2,long param_3)" identifier (parameter_list "(undefined8 *param_1,int param_2,long param_3)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined8 local_68;\n  undefined8 uStack_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined1 local_48 [16];\n  undefined1 local_38 [16];\n  undefined8 local_28;\n  undefined8 uStack_20;\n  undefined8 local_18;\n  undefined8 uStack_10;\n  \n  if ((DAT_001647a4._1_1_ & 1) != 0) {\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }\n  local_68 = *param_1;\n  uStack_60 = param_1[1];\n  local_58 = param_1[2];\n  uStack_50 = param_1[3];\n  local_28 = param_1[(long)param_2 * 4 + -4];\n  uStack_20 = param_1[(long)param_2 * 4 + -3];\n  local_18 = param_1[(long)param_2 * 4 + -2];\n  uStack_10 = param_1[(long)param_2 * 4 + -1];\n  local_48 = (undefined1  [16])0x0;\n  local_38[8] = 2;\n  local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));\n  local_38._9_7_ = 0;\n  FUN_00139040("sll",&local_68,3,1);\n  local_68 = local_28;\n  uStack_60 = uStack_20;\n  local_58 = local_18;\n  uStack_50 = uStack_10;\n  FUN_00139040(&DAT_0014c20b,&local_68,3,1);\n  return;\n}" { (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 uStack_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 uStack_50;" type_identifier identifier ;) (declaration "undefined1 local_48 [16];" type_identifier (array_declarator "local_48 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 local_38 [16];" type_identifier (array_declarator "local_38 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "undefined8 uStack_20;" type_identifier identifier ;) (declaration "undefined8 local_18;" type_identifier identifier ;) (declaration "undefined8 uStack_10;" type_identifier identifier ;) (if_statement "if ((DAT_001647a4._1_1_ & 1) != 0) {\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }" if (parenthesized_expression "((DAT_001647a4._1_1_ & 1) != 0)" ( (binary_expression "(DAT_001647a4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001647a4._1_1_ & 1)" ( (binary_expression "DAT_001647a4._1_1_ & 1" (field_expression "DAT_001647a4._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }" { (expression_statement "FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);" (call_expression "FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0)" identifier (argument_list "((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0)" ( (subscript_expression "(&PTR_s_sextb_0015b720)[param_3]" (parenthesized_expression "(&PTR_s_sextb_0015b720)" ( (pointer_expression "&PTR_s_sextb_0015b720" & identifier) )) [ identifier ]) , identifier , identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_68 = *param_1;" (assignment_expression "local_68 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uStack_60 = param_1[1];" (assignment_expression "uStack_60 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_58 = param_1[2];" (assignment_expression "local_58 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uStack_50 = param_1[3];" (assignment_expression "uStack_50 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "local_28 = param_1[(long)param_2 * 4 + -4];" (assignment_expression "local_28 = param_1[(long)param_2 * 4 + -4]" identifier = (subscript_expression "param_1[(long)param_2 * 4 + -4]" identifier [ (binary_expression "(long)param_2 * 4 + -4" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) ])) ;) (expression_statement "uStack_20 = param_1[(long)param_2 * 4 + -3];" (assignment_expression "uStack_20 = param_1[(long)param_2 * 4 + -3]" identifier = (subscript_expression "param_1[(long)param_2 * 4 + -3]" identifier [ (binary_expression "(long)param_2 * 4 + -3" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) ])) ;) (expression_statement "local_18 = param_1[(long)param_2 * 4 + -2];" (assignment_expression "local_18 = param_1[(long)param_2 * 4 + -2]" identifier = (subscript_expression "param_1[(long)param_2 * 4 + -2]" identifier [ (binary_expression "(long)param_2 * 4 + -2" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) ])) ;) (expression_statement "uStack_10 = param_1[(long)param_2 * 4 + -1];" (assignment_expression "uStack_10 = param_1[(long)param_2 * 4 + -1]" identifier = (subscript_expression "param_1[(long)param_2 * 4 + -1]" identifier [ (binary_expression "(long)param_2 * 4 + -1" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) ])) ;) (expression_statement "local_48 = (undefined1  [16])0x0;" (assignment_expression "local_48 = (undefined1  [16])0x0" identifier = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "local_38[8] = 2;" (assignment_expression "local_38[8] = 2" (subscript_expression "local_38[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));" (assignment_expression "local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)))" (field_expression "local_38._0_8_" identifier . field_identifier) = (cast_expression "(long)(0x40 - (8 << ((byte)param_3 & 0x1f)))" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(0x40 - (8 << ((byte)param_3 & 0x1f)))" ( (binary_expression "0x40 - (8 << ((byte)param_3 & 0x1f))" number_literal - (parenthesized_expression "(8 << ((byte)param_3 & 0x1f))" ( (binary_expression "8 << ((byte)param_3 & 0x1f)" number_literal << (parenthesized_expression "((byte)param_3 & 0x1f)" ( (binary_expression "(byte)param_3 & 0x1f" (cast_expression "(byte)param_3" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (expression_statement "local_38._9_7_ = 0;" (assignment_expression "local_38._9_7_ = 0" (field_expression "local_38._9_7_" identifier . field_identifier) = number_literal) ;) (expression_statement "FUN_00139040("sll",&local_68,3,1);" (call_expression "FUN_00139040("sll",&local_68,3,1)" identifier (argument_list "("sll",&local_68,3,1)" ( (string_literal ""sll"" " string_content ") , (pointer_expression "&local_68" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_68 = local_28;" (assignment_expression "local_68 = local_28" identifier = identifier) ;) (expression_statement "uStack_60 = uStack_20;" (assignment_expression "uStack_60 = uStack_20" identifier = identifier) ;) (expression_statement "local_58 = local_18;" (assignment_expression "local_58 = local_18" identifier = identifier) ;) (expression_statement "uStack_50 = uStack_10;" (assignment_expression "uStack_50 = uStack_10" identifier = identifier) ;) (expression_statement "FUN_00139040(&DAT_0014c20b,&local_68,3,1);" (call_expression "FUN_00139040(&DAT_0014c20b,&local_68,3,1)" identifier (argument_list "(&DAT_0014c20b,&local_68,3,1)" ( (pointer_expression "&DAT_0014c20b" & identifier) , (pointer_expression "&local_68" & identifier) , number_literal , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void emit_sextX(expressionS *tok,int ntok,void *vlgsize)\n\n{\n  expressionS *peVar1;\n  long lgsize;\n  expressionS newtok [3];\n  \n  if ((alpha_target._1_1_ & 1) != 0) {\n    assemble_tokens(sextX_op[(long)vlgsize],tok,ntok,0);\n    return;\n  }\n  newtok[0].X_add_symbol = tok->X_add_symbol;\n  newtok[0].X_op_symbol = tok->X_op_symbol;\n  newtok[0].X_add_number = tok->X_add_number;\n  newtok[0]._24_2_ = *(undefined2 *)&tok->field_0x18;\n  newtok[0].X_md = tok->X_md;\n  newtok[0]._28_4_ = *(undefined4 *)&tok->field_0x1c;\n  newtok[2].X_add_symbol = tok[(long)ntok + -1].X_add_symbol;\n  newtok[2].X_op_symbol = tok[(long)ntok + -1].X_op_symbol;\n  newtok[2].X_add_number = tok[(long)ntok + -1].X_add_number;\n  peVar1 = tok + (long)ntok + -1;\n  newtok[2]._24_2_ = *(undefined2 *)&peVar1->field_0x18;\n  newtok[2].X_md = peVar1->X_md;\n  newtok[2]._28_4_ = *(undefined4 *)&peVar1->field_0x1c;\n  newtok[1].X_add_symbol = (symbolS *)0x0;\n  newtok[1].X_op_symbol = (symbolS *)0x0;\n  newtok[1]._24_1_ = 2;\n  newtok[1].X_add_number = (long)(0x40 - (8 << ((byte)vlgsize & 0x1f)));\n  newtok[1]._25_7_ = 0;\n  assemble_tokens("sll",newtok,3,1);\n  newtok[0].X_add_symbol = newtok[2].X_add_symbol;\n  newtok[0].X_op_symbol = newtok[2].X_op_symbol;\n  newtok[0].X_add_number = newtok[2].X_add_number;\n  newtok[0]._24_2_ = newtok[2]._24_2_;\n  newtok[0].X_md = newtok[2].X_md;\n  newtok[0]._28_4_ = newtok[2]._28_4_;\n  assemble_tokens("sra",newtok,3,1);\n  return;\n}\n\n" (function_definition "void emit_sextX(expressionS *tok,int ntok,void *vlgsize)\n\n{\n  expressionS *peVar1;\n  long lgsize;\n  expressionS newtok [3];\n  \n  if ((alpha_target._1_1_ & 1) != 0) {\n    assemble_tokens(sextX_op[(long)vlgsize],tok,ntok,0);\n    return;\n  }\n  newtok[0].X_add_symbol = tok->X_add_symbol;\n  newtok[0].X_op_symbol = tok->X_op_symbol;\n  newtok[0].X_add_number = tok->X_add_number;\n  newtok[0]._24_2_ = *(undefined2 *)&tok->field_0x18;\n  newtok[0].X_md = tok->X_md;\n  newtok[0]._28_4_ = *(undefined4 *)&tok->field_0x1c;\n  newtok[2].X_add_symbol = tok[(long)ntok + -1].X_add_symbol;\n  newtok[2].X_op_symbol = tok[(long)ntok + -1].X_op_symbol;\n  newtok[2].X_add_number = tok[(long)ntok + -1].X_add_number;\n  peVar1 = tok + (long)ntok + -1;\n  newtok[2]._24_2_ = *(undefined2 *)&peVar1->field_0x18;\n  newtok[2].X_md = peVar1->X_md;\n  newtok[2]._28_4_ = *(undefined4 *)&peVar1->field_0x1c;\n  newtok[1].X_add_symbol = (symbolS *)0x0;\n  newtok[1].X_op_symbol = (symbolS *)0x0;\n  newtok[1]._24_1_ = 2;\n  newtok[1].X_add_number = (long)(0x40 - (8 << ((byte)vlgsize & 0x1f)));\n  newtok[1]._25_7_ = 0;\n  assemble_tokens("sll",newtok,3,1);\n  newtok[0].X_add_symbol = newtok[2].X_add_symbol;\n  newtok[0].X_op_symbol = newtok[2].X_op_symbol;\n  newtok[0].X_add_number = newtok[2].X_add_number;\n  newtok[0]._24_2_ = newtok[2]._24_2_;\n  newtok[0].X_md = newtok[2].X_md;\n  newtok[0]._28_4_ = newtok[2]._28_4_;\n  assemble_tokens("sra",newtok,3,1);\n  return;\n}" primitive_type (function_declarator "emit_sextX(expressionS *tok,int ntok,void *vlgsize)" identifier (parameter_list "(expressionS *tok,int ntok,void *vlgsize)" ( (parameter_declaration "expressionS *tok" type_identifier (pointer_declarator "*tok" * identifier)) , (parameter_declaration "int ntok" primitive_type identifier) , (parameter_declaration "void *vlgsize" primitive_type (pointer_declarator "*vlgsize" * identifier)) ))) (compound_statement "{\n  expressionS *peVar1;\n  long lgsize;\n  expressionS newtok [3];\n  \n  if ((alpha_target._1_1_ & 1) != 0) {\n    assemble_tokens(sextX_op[(long)vlgsize],tok,ntok,0);\n    return;\n  }\n  newtok[0].X_add_symbol = tok->X_add_symbol;\n  newtok[0].X_op_symbol = tok->X_op_symbol;\n  newtok[0].X_add_number = tok->X_add_number;\n  newtok[0]._24_2_ = *(undefined2 *)&tok->field_0x18;\n  newtok[0].X_md = tok->X_md;\n  newtok[0]._28_4_ = *(undefined4 *)&tok->field_0x1c;\n  newtok[2].X_add_symbol = tok[(long)ntok + -1].X_add_symbol;\n  newtok[2].X_op_symbol = tok[(long)ntok + -1].X_op_symbol;\n  newtok[2].X_add_number = tok[(long)ntok + -1].X_add_number;\n  peVar1 = tok + (long)ntok + -1;\n  newtok[2]._24_2_ = *(undefined2 *)&peVar1->field_0x18;\n  newtok[2].X_md = peVar1->X_md;\n  newtok[2]._28_4_ = *(undefined4 *)&peVar1->field_0x1c;\n  newtok[1].X_add_symbol = (symbolS *)0x0;\n  newtok[1].X_op_symbol = (symbolS *)0x0;\n  newtok[1]._24_1_ = 2;\n  newtok[1].X_add_number = (long)(0x40 - (8 << ((byte)vlgsize & 0x1f)));\n  newtok[1]._25_7_ = 0;\n  assemble_tokens("sll",newtok,3,1);\n  newtok[0].X_add_symbol = newtok[2].X_add_symbol;\n  newtok[0].X_op_symbol = newtok[2].X_op_symbol;\n  newtok[0].X_add_number = newtok[2].X_add_number;\n  newtok[0]._24_2_ = newtok[2]._24_2_;\n  newtok[0].X_md = newtok[2].X_md;\n  newtok[0]._28_4_ = newtok[2]._28_4_;\n  assemble_tokens("sra",newtok,3,1);\n  return;\n}" { (declaration "expressionS *peVar1;" type_identifier (pointer_declarator "*peVar1" * identifier) ;) (declaration "long lgsize;" (sized_type_specifier "long" long) identifier ;) (declaration "expressionS newtok [3];" type_identifier (array_declarator "newtok [3]" identifier [ number_literal ]) ;) (if_statement "if ((alpha_target._1_1_ & 1) != 0) {\n    assemble_tokens(sextX_op[(long)vlgsize],tok,ntok,0);\n    return;\n  }" if (parenthesized_expression "((alpha_target._1_1_ & 1) != 0)" ( (binary_expression "(alpha_target._1_1_ & 1) != 0" (parenthesized_expression "(alpha_target._1_1_ & 1)" ( (binary_expression "alpha_target._1_1_ & 1" (field_expression "alpha_target._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    assemble_tokens(sextX_op[(long)vlgsize],tok,ntok,0);\n    return;\n  }" { (expression_statement "assemble_tokens(sextX_op[(long)vlgsize],tok,ntok,0);" (call_expression "assemble_tokens(sextX_op[(long)vlgsize],tok,ntok,0)" identifier (argument_list "(sextX_op[(long)vlgsize],tok,ntok,0)" ( (subscript_expression "sextX_op[(long)vlgsize]" identifier [ (cast_expression "(long)vlgsize" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) ]) , identifier , identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "newtok[0].X_add_symbol = tok->X_add_symbol;" (assignment_expression "newtok[0].X_add_symbol = tok->X_add_symbol" (field_expression "newtok[0].X_add_symbol" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "tok->X_add_symbol" identifier -> field_identifier)) ;) (expression_statement "newtok[0].X_op_symbol = tok->X_op_symbol;" (assignment_expression "newtok[0].X_op_symbol = tok->X_op_symbol" (field_expression "newtok[0].X_op_symbol" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "tok->X_op_symbol" identifier -> field_identifier)) ;) (expression_statement "newtok[0].X_add_number = tok->X_add_number;" (assignment_expression "newtok[0].X_add_number = tok->X_add_number" (field_expression "newtok[0].X_add_number" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "tok->X_add_number" identifier -> field_identifier)) ;) (expression_statement "newtok[0]._24_2_ = *(undefined2 *)&tok->field_0x18;" (assignment_expression "newtok[0]._24_2_ = *(undefined2 *)&tok->field_0x18" (field_expression "newtok[0]._24_2_" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "*(undefined2 *)&tok->field_0x18" * (cast_expression "(undefined2 *)&tok->field_0x18" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&tok->field_0x18" & (field_expression "tok->field_0x18" identifier -> field_identifier))))) ;) (expression_statement "newtok[0].X_md = tok->X_md;" (assignment_expression "newtok[0].X_md = tok->X_md" (field_expression "newtok[0].X_md" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "tok->X_md" identifier -> field_identifier)) ;) (expression_statement "newtok[0]._28_4_ = *(undefined4 *)&tok->field_0x1c;" (assignment_expression "newtok[0]._28_4_ = *(undefined4 *)&tok->field_0x1c" (field_expression "newtok[0]._28_4_" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "*(undefined4 *)&tok->field_0x1c" * (cast_expression "(undefined4 *)&tok->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&tok->field_0x1c" & (field_expression "tok->field_0x1c" identifier -> field_identifier))))) ;) (expression_statement "newtok[2].X_add_symbol = tok[(long)ntok + -1].X_add_symbol;" (assignment_expression "newtok[2].X_add_symbol = tok[(long)ntok + -1].X_add_symbol" (field_expression "newtok[2].X_add_symbol" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier) = (field_expression "tok[(long)ntok + -1].X_add_symbol" (subscript_expression "tok[(long)ntok + -1]" identifier [ (binary_expression "(long)ntok + -1" (cast_expression "(long)ntok" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) . field_identifier)) ;) (expression_statement "newtok[2].X_op_symbol = tok[(long)ntok + -1].X_op_symbol;" (assignment_expression "newtok[2].X_op_symbol = tok[(long)ntok + -1].X_op_symbol" (field_expression "newtok[2].X_op_symbol" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier) = (field_expression "tok[(long)ntok + -1].X_op_symbol" (subscript_expression "tok[(long)ntok + -1]" identifier [ (binary_expression "(long)ntok + -1" (cast_expression "(long)ntok" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) . field_identifier)) ;) (expression_statement "newtok[2].X_add_number = tok[(long)ntok + -1].X_add_number;" (assignment_expression "newtok[2].X_add_number = tok[(long)ntok + -1].X_add_number" (field_expression "newtok[2].X_add_number" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier) = (field_expression "tok[(long)ntok + -1].X_add_number" (subscript_expression "tok[(long)ntok + -1]" identifier [ (binary_expression "(long)ntok + -1" (cast_expression "(long)ntok" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) ]) . field_identifier)) ;) (expression_statement "peVar1 = tok + (long)ntok + -1;" (assignment_expression "peVar1 = tok + (long)ntok + -1" identifier = (binary_expression "tok + (long)ntok + -1" (binary_expression "tok + (long)ntok" identifier + (cast_expression "(long)ntok" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) + number_literal)) ;) (expression_statement "newtok[2]._24_2_ = *(undefined2 *)&peVar1->field_0x18;" (assignment_expression "newtok[2]._24_2_ = *(undefined2 *)&peVar1->field_0x18" (field_expression "newtok[2]._24_2_" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "*(undefined2 *)&peVar1->field_0x18" * (cast_expression "(undefined2 *)&peVar1->field_0x18" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&peVar1->field_0x18" & (field_expression "peVar1->field_0x18" identifier -> field_identifier))))) ;) (expression_statement "newtok[2].X_md = peVar1->X_md;" (assignment_expression "newtok[2].X_md = peVar1->X_md" (field_expression "newtok[2].X_md" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier) = (field_expression "peVar1->X_md" identifier -> field_identifier)) ;) (expression_statement "newtok[2]._28_4_ = *(undefined4 *)&peVar1->field_0x1c;" (assignment_expression "newtok[2]._28_4_ = *(undefined4 *)&peVar1->field_0x1c" (field_expression "newtok[2]._28_4_" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier) = (pointer_expression "*(undefined4 *)&peVar1->field_0x1c" * (cast_expression "(undefined4 *)&peVar1->field_0x1c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&peVar1->field_0x1c" & (field_expression "peVar1->field_0x1c" identifier -> field_identifier))))) ;) (expression_statement "newtok[1].X_add_symbol = (symbolS *)0x0;" (assignment_expression "newtok[1].X_add_symbol = (symbolS *)0x0" (field_expression "newtok[1].X_add_symbol" (subscript_expression "newtok[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "newtok[1].X_op_symbol = (symbolS *)0x0;" (assignment_expression "newtok[1].X_op_symbol = (symbolS *)0x0" (field_expression "newtok[1].X_op_symbol" (subscript_expression "newtok[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(symbolS *)0x0" ( (type_descriptor "symbolS *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "newtok[1]._24_1_ = 2;" (assignment_expression "newtok[1]._24_1_ = 2" (field_expression "newtok[1]._24_1_" (subscript_expression "newtok[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "newtok[1].X_add_number = (long)(0x40 - (8 << ((byte)vlgsize & 0x1f)));" (assignment_expression "newtok[1].X_add_number = (long)(0x40 - (8 << ((byte)vlgsize & 0x1f)))" (field_expression "newtok[1].X_add_number" (subscript_expression "newtok[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(long)(0x40 - (8 << ((byte)vlgsize & 0x1f)))" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(0x40 - (8 << ((byte)vlgsize & 0x1f)))" ( (binary_expression "0x40 - (8 << ((byte)vlgsize & 0x1f))" number_literal - (parenthesized_expression "(8 << ((byte)vlgsize & 0x1f))" ( (binary_expression "8 << ((byte)vlgsize & 0x1f)" number_literal << (parenthesized_expression "((byte)vlgsize & 0x1f)" ( (binary_expression "(byte)vlgsize & 0x1f" (cast_expression "(byte)vlgsize" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (expression_statement "newtok[1]._25_7_ = 0;" (assignment_expression "newtok[1]._25_7_ = 0" (field_expression "newtok[1]._25_7_" (subscript_expression "newtok[1]" identifier [ number_literal ]) . field_identifier) = number_literal) ;) (expression_statement "assemble_tokens("sll",newtok,3,1);" (call_expression "assemble_tokens("sll",newtok,3,1)" identifier (argument_list "("sll",newtok,3,1)" ( (string_literal ""sll"" " string_content ") , identifier , number_literal , number_literal ))) ;) (expression_statement "newtok[0].X_add_symbol = newtok[2].X_add_symbol;" (assignment_expression "newtok[0].X_add_symbol = newtok[2].X_add_symbol" (field_expression "newtok[0].X_add_symbol" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "newtok[2].X_add_symbol" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "newtok[0].X_op_symbol = newtok[2].X_op_symbol;" (assignment_expression "newtok[0].X_op_symbol = newtok[2].X_op_symbol" (field_expression "newtok[0].X_op_symbol" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "newtok[2].X_op_symbol" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "newtok[0].X_add_number = newtok[2].X_add_number;" (assignment_expression "newtok[0].X_add_number = newtok[2].X_add_number" (field_expression "newtok[0].X_add_number" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "newtok[2].X_add_number" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "newtok[0]._24_2_ = newtok[2]._24_2_;" (assignment_expression "newtok[0]._24_2_ = newtok[2]._24_2_" (field_expression "newtok[0]._24_2_" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "newtok[2]._24_2_" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "newtok[0].X_md = newtok[2].X_md;" (assignment_expression "newtok[0].X_md = newtok[2].X_md" (field_expression "newtok[0].X_md" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "newtok[2].X_md" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "newtok[0]._28_4_ = newtok[2]._28_4_;" (assignment_expression "newtok[0]._28_4_ = newtok[2]._28_4_" (field_expression "newtok[0]._28_4_" (subscript_expression "newtok[0]" identifier [ number_literal ]) . field_identifier) = (field_expression "newtok[2]._28_4_" (subscript_expression "newtok[2]" identifier [ number_literal ]) . field_identifier)) ;) (expression_statement "assemble_tokens("sra",newtok,3,1);" (call_expression "assemble_tokens("sra",newtok,3,1)" identifier (argument_list "("sra",newtok,3,1)" ( (string_literal ""sra"" " string_content ") , identifier , number_literal , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001398d0(undefined8 *param_1,int param_2,long param_3)\n\n{\n  undefined8 local_68;\n  undefined8 uStack_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined1 local_48 [16];\n  undefined1 local_38 [16];\n  undefined8 local_28;\n  undefined8 uStack_20;\n  undefined8 local_18;\n  undefined8 uStack_10;\n  \n  if ((DAT_001647a4._1_1_ & 1) != 0) {\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }\n  local_68 = *param_1;\n  uStack_60 = param_1[1];\n  local_58 = param_1[2];\n  uStack_50 = param_1[3];\n  local_28 = param_1[(long)param_2 * 4 + -4];\n  uStack_20 = param_1[(long)param_2 * 4 + -3];\n  local_18 = param_1[(long)param_2 * 4 + -2];\n  uStack_10 = param_1[(long)param_2 * 4 + -1];\n  local_48 = (undefined1  [16])0x0;\n  local_38[8] = 2;\n  local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));\n  local_38._9_7_ = 0;\n  FUN_00139040("sll",&local_68,3,1);\n  local_68 = local_28;\n  uStack_60 = uStack_20;\n  local_58 = local_18;\n  uStack_50 = uStack_10;\n  FUN_00139040(&DAT_0014c20b,&local_68,3,1);\n  return;\n}\n\n" (function_definition "void FUN_001398d0(undefined8 *param_1,int param_2,long param_3)\n\n{\n  undefined8 local_68;\n  undefined8 uStack_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined1 local_48 [16];\n  undefined1 local_38 [16];\n  undefined8 local_28;\n  undefined8 uStack_20;\n  undefined8 local_18;\n  undefined8 uStack_10;\n  \n  if ((DAT_001647a4._1_1_ & 1) != 0) {\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }\n  local_68 = *param_1;\n  uStack_60 = param_1[1];\n  local_58 = param_1[2];\n  uStack_50 = param_1[3];\n  local_28 = param_1[(long)param_2 * 4 + -4];\n  uStack_20 = param_1[(long)param_2 * 4 + -3];\n  local_18 = param_1[(long)param_2 * 4 + -2];\n  uStack_10 = param_1[(long)param_2 * 4 + -1];\n  local_48 = (undefined1  [16])0x0;\n  local_38[8] = 2;\n  local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));\n  local_38._9_7_ = 0;\n  FUN_00139040("sll",&local_68,3,1);\n  local_68 = local_28;\n  uStack_60 = uStack_20;\n  local_58 = local_18;\n  uStack_50 = uStack_10;\n  FUN_00139040(&DAT_0014c20b,&local_68,3,1);\n  return;\n}" primitive_type (function_declarator "FUN_001398d0(undefined8 *param_1,int param_2,long param_3)" identifier (parameter_list "(undefined8 *param_1,int param_2,long param_3)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined8 local_68;\n  undefined8 uStack_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined1 local_48 [16];\n  undefined1 local_38 [16];\n  undefined8 local_28;\n  undefined8 uStack_20;\n  undefined8 local_18;\n  undefined8 uStack_10;\n  \n  if ((DAT_001647a4._1_1_ & 1) != 0) {\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }\n  local_68 = *param_1;\n  uStack_60 = param_1[1];\n  local_58 = param_1[2];\n  uStack_50 = param_1[3];\n  local_28 = param_1[(long)param_2 * 4 + -4];\n  uStack_20 = param_1[(long)param_2 * 4 + -3];\n  local_18 = param_1[(long)param_2 * 4 + -2];\n  uStack_10 = param_1[(long)param_2 * 4 + -1];\n  local_48 = (undefined1  [16])0x0;\n  local_38[8] = 2;\n  local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));\n  local_38._9_7_ = 0;\n  FUN_00139040("sll",&local_68,3,1);\n  local_68 = local_28;\n  uStack_60 = uStack_20;\n  local_58 = local_18;\n  uStack_50 = uStack_10;\n  FUN_00139040(&DAT_0014c20b,&local_68,3,1);\n  return;\n}" { (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "undefined8 uStack_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "undefined8 uStack_50;" type_identifier identifier ;) (declaration "undefined1 local_48 [16];" type_identifier (array_declarator "local_48 [16]" identifier [ number_literal ]) ;) (declaration "undefined1 local_38 [16];" type_identifier (array_declarator "local_38 [16]" identifier [ number_literal ]) ;) (declaration "undefined8 local_28;" type_identifier identifier ;) (declaration "undefined8 uStack_20;" type_identifier identifier ;) (declaration "undefined8 local_18;" type_identifier identifier ;) (declaration "undefined8 uStack_10;" type_identifier identifier ;) (if_statement "if ((DAT_001647a4._1_1_ & 1) != 0) {\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }" if (parenthesized_expression "((DAT_001647a4._1_1_ & 1) != 0)" ( (binary_expression "(DAT_001647a4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001647a4._1_1_ & 1)" ( (binary_expression "DAT_001647a4._1_1_ & 1" (field_expression "DAT_001647a4._1_1_" identifier . field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }" { (expression_statement "FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);" (call_expression "FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0)" identifier (argument_list "((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0)" ( (subscript_expression "(&PTR_s_sextb_0015b720)[param_3]" (parenthesized_expression "(&PTR_s_sextb_0015b720)" ( (pointer_expression "&PTR_s_sextb_0015b720" & identifier) )) [ identifier ]) , identifier , identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "local_68 = *param_1;" (assignment_expression "local_68 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uStack_60 = param_1[1];" (assignment_expression "uStack_60 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_58 = param_1[2];" (assignment_expression "local_58 = param_1[2]" identifier = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "uStack_50 = param_1[3];" (assignment_expression "uStack_50 = param_1[3]" identifier = (subscript_expression "param_1[3]" identifier [ number_literal ])) ;) (expression_statement "local_28 = param_1[(long)param_2 * 4 + -4];" (assignment_expression "local_28 = param_1[(long)param_2 * 4 + -4]" identifier = (subscript_expression "param_1[(long)param_2 * 4 + -4]" identifier [ (binary_expression "(long)param_2 * 4 + -4" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) ])) ;) (expression_statement "uStack_20 = param_1[(long)param_2 * 4 + -3];" (assignment_expression "uStack_20 = param_1[(long)param_2 * 4 + -3]" identifier = (subscript_expression "param_1[(long)param_2 * 4 + -3]" identifier [ (binary_expression "(long)param_2 * 4 + -3" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) ])) ;) (expression_statement "local_18 = param_1[(long)param_2 * 4 + -2];" (assignment_expression "local_18 = param_1[(long)param_2 * 4 + -2]" identifier = (subscript_expression "param_1[(long)param_2 * 4 + -2]" identifier [ (binary_expression "(long)param_2 * 4 + -2" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) ])) ;) (expression_statement "uStack_10 = param_1[(long)param_2 * 4 + -1];" (assignment_expression "uStack_10 = param_1[(long)param_2 * 4 + -1]" identifier = (subscript_expression "param_1[(long)param_2 * 4 + -1]" identifier [ (binary_expression "(long)param_2 * 4 + -1" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) + number_literal) ])) ;) (expression_statement "local_48 = (undefined1  [16])0x0;" (assignment_expression "local_48 = (undefined1  [16])0x0" identifier = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "local_38[8] = 2;" (assignment_expression "local_38[8] = 2" (subscript_expression "local_38[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));" (assignment_expression "local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)))" (field_expression "local_38._0_8_" identifier . field_identifier) = (cast_expression "(long)(0x40 - (8 << ((byte)param_3 & 0x1f)))" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(0x40 - (8 << ((byte)param_3 & 0x1f)))" ( (binary_expression "0x40 - (8 << ((byte)param_3 & 0x1f))" number_literal - (parenthesized_expression "(8 << ((byte)param_3 & 0x1f))" ( (binary_expression "8 << ((byte)param_3 & 0x1f)" number_literal << (parenthesized_expression "((byte)param_3 & 0x1f)" ( (binary_expression "(byte)param_3 & 0x1f" (cast_expression "(byte)param_3" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) ))) ))) )))) ;) (expression_statement "local_38._9_7_ = 0;" (assignment_expression "local_38._9_7_ = 0" (field_expression "local_38._9_7_" identifier . field_identifier) = number_literal) ;) (expression_statement "FUN_00139040("sll",&local_68,3,1);" (call_expression "FUN_00139040("sll",&local_68,3,1)" identifier (argument_list "("sll",&local_68,3,1)" ( (string_literal ""sll"" " string_content ") , (pointer_expression "&local_68" & identifier) , number_literal , number_literal ))) ;) (expression_statement "local_68 = local_28;" (assignment_expression "local_68 = local_28" identifier = identifier) ;) (expression_statement "uStack_60 = uStack_20;" (assignment_expression "uStack_60 = uStack_20" identifier = identifier) ;) (expression_statement "local_58 = local_18;" (assignment_expression "local_58 = local_18" identifier = identifier) ;) (expression_statement "uStack_50 = uStack_10;" (assignment_expression "uStack_50 = uStack_10" identifier = identifier) ;) (expression_statement "FUN_00139040(&DAT_0014c20b,&local_68,3,1);" (call_expression "FUN_00139040(&DAT_0014c20b,&local_68,3,1)" identifier (argument_list "(&DAT_0014c20b,&local_68,3,1)" ( (pointer_expression "&DAT_0014c20b" & identifier) , (pointer_expression "&local_68" & identifier) , number_literal , number_literal ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression (parenthesized_expression ( (pointer_expression & IDENT) )) [ IDENT ]) , IDENT , IDENT , LIT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT) + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression LIT - (parenthesized_expression ( (binary_expression LIT << (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) ))) ))) )))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (pointer_expression & IDENT) , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT , LIT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_001398d0(undefined8 *param_1,int param_2,long param_3)\n\n{\n  undefined8 local_68;\n  undefined8 uStack_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined1 local_48 [16];\n  undefined1 local_38 [16];\n  undefined8 local_28;\n  undefined8 uStack_20;\n  undefined8 local_18;\n  undefined8 uStack_10;\n  \n  if ((DAT_001647a4._1_1_ & 1) != 0) {\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }\n  local_68 = *param_1;\n  uStack_60 = param_1[1];\n  local_58 = param_1[2];\n  uStack_50 = param_1[3];\n  local_28 = param_1[(long)param_2 * 4 + -4];\n  uStack_20 = param_1[(long)param_2 * 4 + -3];\n  local_18 = param_1[(long)param_2 * 4 + -2];\n  uStack_10 = param_1[(long)param_2 * 4 + -1];\n  local_48 = (undefined1  [16])0x0;\n  local_38[8] = 2;\n  local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));\n  local_38._9_7_ = 0;\n  FUN_00139040("sll",&local_68,3,1);\n  local_68 = local_28;\n  uStack_60 = uStack_20;\n  local_58 = local_18;\n  uStack_50 = uStack_10;\n  FUN_00139040(&DAT_0014c20b,&local_68,3,1);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001398d0(undefined8 *param_1,int param_2,long param_3)" (identifier "FUN_001398d0") (parameter_list "(undefined8 *param_1,int param_2,long param_3)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  undefined8 local_68;\n  undefined8 uStack_60;\n  undefined8 local_58;\n  undefined8 uStack_50;\n  undefined1 local_48 [16];\n  undefined1 local_38 [16];\n  undefined8 local_28;\n  undefined8 uStack_20;\n  undefined8 local_18;\n  undefined8 uStack_10;\n  \n  if ((DAT_001647a4._1_1_ & 1) != 0) {\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }\n  local_68 = *param_1;\n  uStack_60 = param_1[1];\n  local_58 = param_1[2];\n  uStack_50 = param_1[3];\n  local_28 = param_1[(long)param_2 * 4 + -4];\n  uStack_20 = param_1[(long)param_2 * 4 + -3];\n  local_18 = param_1[(long)param_2 * 4 + -2];\n  uStack_10 = param_1[(long)param_2 * 4 + -1];\n  local_48 = (undefined1  [16])0x0;\n  local_38[8] = 2;\n  local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));\n  local_38._9_7_ = 0;\n  FUN_00139040("sll",&local_68,3,1);\n  local_68 = local_28;\n  uStack_60 = uStack_20;\n  local_58 = local_18;\n  uStack_50 = uStack_10;\n  FUN_00139040(&DAT_0014c20b,&local_68,3,1);\n  return;\n}" ({ "{") (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "undefined8 uStack_60;" (type_identifier "undefined8") (identifier "uStack_60") (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "undefined8 uStack_50;" (type_identifier "undefined8") (identifier "uStack_50") (; ";")) (declaration "undefined1 local_48 [16];" (type_identifier "undefined1") (array_declarator "local_48 [16]" (identifier "local_48") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined1 local_38 [16];" (type_identifier "undefined1") (array_declarator "local_38 [16]" (identifier "local_38") ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined8 local_28;" (type_identifier "undefined8") (identifier "local_28") (; ";")) (declaration "undefined8 uStack_20;" (type_identifier "undefined8") (identifier "uStack_20") (; ";")) (declaration "undefined8 local_18;" (type_identifier "undefined8") (identifier "local_18") (; ";")) (declaration "undefined8 uStack_10;" (type_identifier "undefined8") (identifier "uStack_10") (; ";")) (if_statement "if ((DAT_001647a4._1_1_ & 1) != 0) {\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }" (if "if") (parenthesized_expression "((DAT_001647a4._1_1_ & 1) != 0)" (( "(") (binary_expression "(DAT_001647a4._1_1_ & 1) != 0" (parenthesized_expression "(DAT_001647a4._1_1_ & 1)" (( "(") (binary_expression "DAT_001647a4._1_1_ & 1" (field_expression "DAT_001647a4._1_1_" (identifier "DAT_001647a4") (. ".") (field_identifier "_1_1_")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);\n    return;\n  }" ({ "{") (expression_statement "FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);" (call_expression "FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0)" (identifier "FUN_00139040") (argument_list "((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0)" (( "(") (subscript_expression "(&PTR_s_sextb_0015b720)[param_3]" (parenthesized_expression "(&PTR_s_sextb_0015b720)" (( "(") (pointer_expression "&PTR_s_sextb_0015b720" (& "&") (identifier "PTR_s_sextb_0015b720")) () ")")) ([ "[") (identifier "param_3") (] "]")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "local_68 = *param_1;" (assignment_expression "local_68 = *param_1" (identifier "local_68") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uStack_60 = param_1[1];" (assignment_expression "uStack_60 = param_1[1]" (identifier "uStack_60") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_58 = param_1[2];" (assignment_expression "local_58 = param_1[2]" (identifier "local_58") (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uStack_50 = param_1[3];" (assignment_expression "uStack_50 = param_1[3]" (identifier "uStack_50") (= "=") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_28 = param_1[(long)param_2 * 4 + -4];" (assignment_expression "local_28 = param_1[(long)param_2 * 4 + -4]" (identifier "local_28") (= "=") (subscript_expression "param_1[(long)param_2 * 4 + -4]" (identifier "param_1") ([ "[") (binary_expression "(long)param_2 * 4 + -4" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (* "*") (number_literal "4")) (+ "+") (number_literal "-4")) (] "]"))) (; ";")) (expression_statement "uStack_20 = param_1[(long)param_2 * 4 + -3];" (assignment_expression "uStack_20 = param_1[(long)param_2 * 4 + -3]" (identifier "uStack_20") (= "=") (subscript_expression "param_1[(long)param_2 * 4 + -3]" (identifier "param_1") ([ "[") (binary_expression "(long)param_2 * 4 + -3" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (* "*") (number_literal "4")) (+ "+") (number_literal "-3")) (] "]"))) (; ";")) (expression_statement "local_18 = param_1[(long)param_2 * 4 + -2];" (assignment_expression "local_18 = param_1[(long)param_2 * 4 + -2]" (identifier "local_18") (= "=") (subscript_expression "param_1[(long)param_2 * 4 + -2]" (identifier "param_1") ([ "[") (binary_expression "(long)param_2 * 4 + -2" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (* "*") (number_literal "4")) (+ "+") (number_literal "-2")) (] "]"))) (; ";")) (expression_statement "uStack_10 = param_1[(long)param_2 * 4 + -1];" (assignment_expression "uStack_10 = param_1[(long)param_2 * 4 + -1]" (identifier "uStack_10") (= "=") (subscript_expression "param_1[(long)param_2 * 4 + -1]" (identifier "param_1") ([ "[") (binary_expression "(long)param_2 * 4 + -1" (binary_expression "(long)param_2 * 4" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (* "*") (number_literal "4")) (+ "+") (number_literal "-1")) (] "]"))) (; ";")) (expression_statement "local_48 = (undefined1  [16])0x0;" (assignment_expression "local_48 = (undefined1  [16])0x0" (identifier "local_48") (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_38[8] = 2;" (assignment_expression "local_38[8] = 2" (subscript_expression "local_38[8]" (identifier "local_38") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));" (assignment_expression "local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)))" (field_expression "local_38._0_8_" (identifier "local_38") (. ".") (field_identifier "_0_8_")) (= "=") (cast_expression "(long)(0x40 - (8 << ((byte)param_3 & 0x1f)))" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(0x40 - (8 << ((byte)param_3 & 0x1f)))" (( "(") (binary_expression "0x40 - (8 << ((byte)param_3 & 0x1f))" (number_literal "0x40") (- "-") (parenthesized_expression "(8 << ((byte)param_3 & 0x1f))" (( "(") (binary_expression "8 << ((byte)param_3 & 0x1f)" (number_literal "8") (<< "<<") (parenthesized_expression "((byte)param_3 & 0x1f)" (( "(") (binary_expression "(byte)param_3 & 0x1f" (cast_expression "(byte)param_3" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "param_3")) (& "&") (number_literal "0x1f")) () ")"))) () ")"))) () ")")))) (; ";")) (expression_statement "local_38._9_7_ = 0;" (assignment_expression "local_38._9_7_ = 0" (field_expression "local_38._9_7_" (identifier "local_38") (. ".") (field_identifier "_9_7_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00139040("sll",&local_68,3,1);" (call_expression "FUN_00139040("sll",&local_68,3,1)" (identifier "FUN_00139040") (argument_list "("sll",&local_68,3,1)" (( "(") (string_literal ""sll"" (" """) (string_content "sll") (" """)) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (number_literal "3") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "local_68 = local_28;" (assignment_expression "local_68 = local_28" (identifier "local_68") (= "=") (identifier "local_28")) (; ";")) (expression_statement "uStack_60 = uStack_20;" (assignment_expression "uStack_60 = uStack_20" (identifier "uStack_60") (= "=") (identifier "uStack_20")) (; ";")) (expression_statement "local_58 = local_18;" (assignment_expression "local_58 = local_18" (identifier "local_58") (= "=") (identifier "local_18")) (; ";")) (expression_statement "uStack_50 = uStack_10;" (assignment_expression "uStack_50 = uStack_10" (identifier "uStack_50") (= "=") (identifier "uStack_10")) (; ";")) (expression_statement "FUN_00139040(&DAT_0014c20b,&local_68,3,1);" (call_expression "FUN_00139040(&DAT_0014c20b,&local_68,3,1)" (identifier "FUN_00139040") (argument_list "(&DAT_0014c20b,&local_68,3,1)" (( "(") (pointer_expression "&DAT_0014c20b" (& "&") (identifier "DAT_0014c20b")) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (number_literal "3") (, ",") (number_literal "1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *var_2,int ntok,void *vlgsize)

{
  type_1 *peVar1;
  long lgsize;
  type_1 newtok [3];
  
  if ((alpha_target._1_1_ & 1) != 0) {
    var_1(sextX_op[(long)vlgsize],var_2,ntok,0);
    return;
  }
  newtok[0].X_add_symbol = var_2->X_add_symbol;
  newtok[0].X_op_symbol = var_2->X_op_symbol;
  newtok[0].X_add_number = var_2->X_add_number;
  newtok[0]._24_2_ = *(type_2 *)&var_2->field_0x18;
  newtok[0].X_md = var_2->X_md;
  newtok[0]._28_4_ = *(type_3 *)&var_2->field_0x1c;
  newtok[2].X_add_symbol = var_2[(long)ntok + -1].X_add_symbol;
  newtok[2].X_op_symbol = var_2[(long)ntok + -1].X_op_symbol;
  newtok[2].X_add_number = var_2[(long)ntok + -1].X_add_number;
  peVar1 = var_2 + (long)ntok + -1;
  newtok[2]._24_2_ = *(type_2 *)&peVar1->field_0x18;
  newtok[2].X_md = peVar1->X_md;
  newtok[2]._28_4_ = *(type_3 *)&peVar1->field_0x1c;
  newtok[1].X_add_symbol = (type_4 *)0x0;
  newtok[1].X_op_symbol = (type_4 *)0x0;
  newtok[1]._24_1_ = 2;
  newtok[1].X_add_number = (long)(0x40 - (8 << ((type_5)vlgsize & 0x1f)));
  newtok[1]._25_7_ = 0;
  var_1("sll",newtok,3,1);
  newtok[0].X_add_symbol = newtok[2].X_add_symbol;
  newtok[0].X_op_symbol = newtok[2].X_op_symbol;
  newtok[0].X_add_number = newtok[2].X_add_number;
  newtok[0]._24_2_ = newtok[2]._24_2_;
  newtok[0].X_md = newtok[2].X_md;
  newtok[0]._28_4_ = newtok[2]._28_4_;
  var_1("sra",newtok,3,1);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (parenthesized_expression (pointer_expression argument: (identifier))) index: (identifier)) (identifier) (identifier) (number_literal)))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (identifier)) right: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (pointer_expression argument: (identifier)) (number_literal) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (pointer_expression argument: (identifier)) (number_literal) (number_literal)))) (return_statement))))

void MASKED(undefined8 *param_1,int param_2,long param_3)

{
  undefined8 local_68;
  undefined8 uStack_60;
  undefined8 local_58;
  undefined8 uStack_50;
  undefined1 local_48 [16];
  undefined1 local_38 [16];
  undefined8 local_28;
  undefined8 uStack_20;
  undefined8 local_18;
  undefined8 uStack_10;
  
  if ((DAT_001647a4._1_1_ & 1) != 0) {
    FUN_00139040((&PTR_s_sextb_0015b720)[param_3],param_1,param_2,0);
    return;
  }
  local_68 = *param_1;
  uStack_60 = param_1[1];
  local_58 = param_1[2];
  uStack_50 = param_1[3];
  local_28 = param_1[(long)param_2 * 4 + -4];
  uStack_20 = param_1[(long)param_2 * 4 + -3];
  local_18 = param_1[(long)param_2 * 4 + -2];
  uStack_10 = param_1[(long)param_2 * 4 + -1];
  local_48 = (undefined1  [16])0x0;
  local_38[8] = 2;
  local_38._0_8_ = (long)(0x40 - (8 << ((byte)param_3 & 0x1f)));
  local_38._9_7_ = 0;
  FUN_00139040("sll",&local_68,3,1);
  local_68 = local_28;
  uStack_60 = uStack_20;
  local_58 = local_18;
  uStack_50 = uStack_10;
  FUN_00139040(&DAT_0014c20b,&local_68,3,1);
  return;
}

