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

void s_alpha_mask(int fp)

{
  alpha_elf_frame_data *paVar1;
  char cVar2;
  char *pcVar3;
  offsetT oVar4;
  undefined4 local_24;
  undefined4 local_20;
  long val;
  undefined4 uStack_8;
  
  uStack_8 = 0x4a526;
  if (0 < alpha_flag_mdebug) {
    if (fp == 0) {
      ecoff_directive_mask(0);
      return;
    }
    ecoff_directive_fmask(0);
    return;
  }
  if (cur_frame_data == (alpha_elf_frame_data *)0x0) {
    if (fp == 0) {
      pcVar3 = ".mask outside of .ent";
    }
    else {
      pcVar3 = ".fmask outside of .ent";
    }
    pcVar3 = (char *)dcgettext(0,pcVar3,5);
    as_warn(pcVar3);
  }
  else {
    cVar2 = get_absolute_expression_and_terminator(&val);
    if (cVar2 == ',') {
      oVar4 = get_absolute_expression();
      demand_empty_rest_of_line();
      paVar1 = cur_frame_data;
      local_20 = (undefined4)((ulonglong)oVar4 >> 0x20);
      local_24 = (undefined4)oVar4;
      if (fp != 0) {
        cur_frame_data->fmask = val;
        *(undefined4 *)&paVar1->fmask_offset = local_24;
        *(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;
        return;
      }
      cur_frame_data->mask = val;
      *(undefined4 *)&paVar1->mask_offset = local_24;
      *(undefined4 *)((int)&paVar1->mask_offset + 4) = local_20;
      return;
    }
    if (fp == 0) {
      pcVar3 = "bad .mask directive";
    }
    else {
      pcVar3 = "bad .fmask directive";
    }
    pcVar3 = (char *)dcgettext(0,pcVar3,5);
    as_warn(pcVar3);
    input_line_pointer = input_line_pointer + -1;
  }
  ignore_rest_of_line();
  return;
}



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

void FUN_0004a520(int param_1)

{
  int iVar1;
  char cVar2;
  char *pcVar3;
  undefined4 uVar4;
  undefined8 uVar5;
  undefined4 local_10 [2];
  undefined4 uStack_8;
  
  uStack_8 = 0x4a526;
  if (0 < DAT_00078510) {
    if (param_1 == 0) {
      FUN_00022ac0(0);
      return;
    }
    FUN_00022900(0);
    return;
  }
  if (DAT_00081124 == 0) {
    if (param_1 == 0) {
      pcVar3 = ".mask outside of .ent";
    }
    else {
      pcVar3 = ".fmask outside of .ent";
    }
    uVar4 = dcgettext(0,pcVar3,5);
    FUN_00031540(uVar4);
  }
  else {
    cVar2 = FUN_00039130(local_10);
    if (cVar2 == ',') {
      uVar5 = FUN_00032f30();
      FUN_00033c40();
      iVar1 = DAT_00081124;
      if (param_1 != 0) {
        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];
        *(undefined8 *)(iVar1 + 0x2c) = uVar5;
        return;
      }
      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];
      *(undefined8 *)(iVar1 + 0x24) = uVar5;
      return;
    }
    if (param_1 == 0) {
      pcVar3 = "bad .mask directive";
    }
    else {
      pcVar3 = "bad .fmask directive";
    }
    uVar4 = dcgettext(0,pcVar3,5);
    FUN_00031540(uVar4);
    DAT_00081578 = DAT_00081578 + -1;
  }
  FUN_000339c0();
  return;
}


PUSH EBX
CALL 0x00016070
ADD EBX,0x2dada
SUB ESP,0x28
MOV EAX,dword ptr [EBX + 0x510]
TEST EAX,EAX
JLE 0x0004a570
MOV EAX,dword ptr [ESP + 0x30]
TEST EAX,EAX
JNZ 0x0004a558
SUB ESP,0xc
PUSH 0x0
CALL 0x00022ac0
ADD ESP,0x10
ADD ESP,0x28
POP EBX
RET
SUB ESP,0xc
PUSH 0x0
CALL 0x00022900
ADD ESP,0x10
ADD ESP,0x28
POP EBX
RET
MOV EAX,dword ptr [EBX + 0x9124]
TEST EAX,EAX
JZ 0x0004a610
SUB ESP,0xc
LEA EAX,[ESP + 0x28]
PUSH EAX
CALL 0x00039130
ADD ESP,0x10
CMP AL,0x2c
JZ 0x0004a5d0
MOV EDX,dword ptr [ESP + 0x30]
TEST EDX,EDX
JZ 0x0004a640
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdfb96]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
MOV dword ptr [ESP],EAX
CALL 0x00031540
LEA EAX,[EBX + 0x9578]
ADD ESP,0x10
SUB dword ptr [EAX],0x1
CALL 0x000339c0
ADD ESP,0x28
POP EBX
RET
CALL 0x00032f30
MOV dword ptr [ESP + 0x8],EAX
MOV dword ptr [ESP + 0xc],EDX
CALL 0x00033c40
MOV EAX,dword ptr [ESP + 0x30]
MOV ECX,dword ptr [EBX + 0x9124]
MOV EDX,dword ptr [ESP + 0xc]
MOV EBX,dword ptr [ESP + 0x1c]
TEST EAX,EAX
MOV EAX,dword ptr [ESP + 0x8]
JZ 0x0004a660
MOV dword ptr [ECX + 0x10],EBX
MOV dword ptr [ECX + 0x2c],EAX
MOV dword ptr [ECX + 0x30],EDX
JMP 0x0004a54e
MOV ECX,dword ptr [ESP + 0x30]
TEST ECX,ECX
JZ 0x0004a650
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdfb7f]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141e0
MOV dword ptr [ESP],EAX
CALL 0x00031540
ADD ESP,0x10
JMP 0x0004a5c5
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdfbed]
PUSH 0x5
JMP 0x0004a5a9
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdfbd7]
PUSH 0x5
JMP 0x0004a623
MOV dword ptr [ECX + 0xc],EBX
MOV dword ptr [ECX + 0x24],EAX
MOV dword ptr [ECX + 0x28],EDX
JMP 0x0004a54e
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_0004a520(int param_1)\n\n{\n  int iVar1;\n  char cVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  undefined8 uVar5;\n  undefined4 local_10 [2];\n  undefined4 uStack_8;\n  \n  uStack_8 = 0x4a526;\n  if (0 < DAT_00078510) {\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }\n  if (DAT_00081124 == 0) {\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }\n  else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }\n  FUN_000339c0();\n  return;\n}\n\n" comment (function_definition "void FUN_0004a520(int param_1)\n\n{\n  int iVar1;\n  char cVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  undefined8 uVar5;\n  undefined4 local_10 [2];\n  undefined4 uStack_8;\n  \n  uStack_8 = 0x4a526;\n  if (0 < DAT_00078510) {\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }\n  if (DAT_00081124 == 0) {\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }\n  else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }\n  FUN_000339c0();\n  return;\n}" primitive_type (function_declarator "FUN_0004a520(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  undefined8 uVar5;\n  undefined4 local_10 [2];\n  undefined4 uStack_8;\n  \n  uStack_8 = 0x4a526;\n  if (0 < DAT_00078510) {\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }\n  if (DAT_00081124 == 0) {\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }\n  else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }\n  FUN_000339c0();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined4 local_10 [2];" type_identifier (array_declarator "local_10 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_8;" type_identifier identifier ;) (expression_statement "uStack_8 = 0x4a526;" (assignment_expression "uStack_8 = 0x4a526" identifier = number_literal) ;) (if_statement "if (0 < DAT_00078510) {\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }" if (parenthesized_expression "(0 < DAT_00078510)" ( (binary_expression "0 < DAT_00078510" number_literal < identifier) )) (compound_statement "{\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }" { (if_statement "if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00022ac0(0);\n      return;\n    }" { (expression_statement "FUN_00022ac0(0);" (call_expression "FUN_00022ac0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_00022900(0);" (call_expression "FUN_00022900(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (if_statement "if (DAT_00081124 == 0) {\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }\n  else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }" if (parenthesized_expression "(DAT_00081124 == 0)" ( (binary_expression "DAT_00081124 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }" { (if_statement "if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar3 = ".mask outside of .ent";\n    }" { (expression_statement "pcVar3 = ".mask outside of .ent";" (assignment_expression "pcVar3 = ".mask outside of .ent"" identifier = (string_literal "".mask outside of .ent"" " string_content ")) ;) }) (else_clause "else {\n      pcVar3 = ".fmask outside of .ent";\n    }" else (compound_statement "{\n      pcVar3 = ".fmask outside of .ent";\n    }" { (expression_statement "pcVar3 = ".fmask outside of .ent";" (assignment_expression "pcVar3 = ".fmask outside of .ent"" identifier = (string_literal "".fmask outside of .ent"" " string_content ")) ;) }))) (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" identifier = (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00031540(uVar4);" (call_expression "FUN_00031540(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) }) (else_clause "else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }" else (compound_statement "{\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }" { (expression_statement "cVar2 = FUN_00039130(local_10);" (assignment_expression "cVar2 = FUN_00039130(local_10)" identifier = (call_expression "FUN_00039130(local_10)" identifier (argument_list "(local_10)" ( identifier )))) ;) (if_statement "if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }" if (parenthesized_expression "(cVar2 == ',')" ( (binary_expression "cVar2 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }" { (expression_statement "uVar5 = FUN_00032f30();" (assignment_expression "uVar5 = FUN_00032f30()" identifier = (call_expression "FUN_00032f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = DAT_00081124;" (assignment_expression "iVar1 = DAT_00081124" identifier = identifier) ;) (if_statement "if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }" { (expression_statement "*(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];" (assignment_expression "*(undefined4 *)(DAT_00081124 + 0x10) = local_10[0]" (pointer_expression "*(undefined4 *)(DAT_00081124 + 0x10)" * (cast_expression "(undefined4 *)(DAT_00081124 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081124 + 0x10)" ( (binary_expression "DAT_00081124 + 0x10" identifier + number_literal) )))) = (subscript_expression "local_10[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)(iVar1 + 0x2c) = uVar5;" (assignment_expression "*(undefined8 *)(iVar1 + 0x2c) = uVar5" (pointer_expression "*(undefined8 *)(iVar1 + 0x2c)" * (cast_expression "(undefined8 *)(iVar1 + 0x2c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "*(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];" (assignment_expression "*(undefined4 *)(DAT_00081124 + 0xc) = local_10[0]" (pointer_expression "*(undefined4 *)(DAT_00081124 + 0xc)" * (cast_expression "(undefined4 *)(DAT_00081124 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081124 + 0xc)" ( (binary_expression "DAT_00081124 + 0xc" identifier + number_literal) )))) = (subscript_expression "local_10[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)(iVar1 + 0x24) = uVar5;" (assignment_expression "*(undefined8 *)(iVar1 + 0x24) = uVar5" (pointer_expression "*(undefined8 *)(iVar1 + 0x24)" * (cast_expression "(undefined8 *)(iVar1 + 0x24)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar3 = "bad .mask directive";\n    }" { (expression_statement "pcVar3 = "bad .mask directive";" (assignment_expression "pcVar3 = "bad .mask directive"" identifier = (string_literal ""bad .mask directive"" " string_content ")) ;) }) (else_clause "else {\n      pcVar3 = "bad .fmask directive";\n    }" else (compound_statement "{\n      pcVar3 = "bad .fmask directive";\n    }" { (expression_statement "pcVar3 = "bad .fmask directive";" (assignment_expression "pcVar3 = "bad .fmask directive"" identifier = (string_literal ""bad .fmask directive"" " string_content ")) ;) }))) (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" identifier = (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00031540(uVar4);" (call_expression "FUN_00031540(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "DAT_00081578 = DAT_00081578 + -1;" (assignment_expression "DAT_00081578 = DAT_00081578 + -1" identifier = (binary_expression "DAT_00081578 + -1" identifier + number_literal)) ;) }))) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid s_alpha_mask(int fp)\n\n{\n  alpha_elf_frame_data *paVar1;\n  char cVar2;\n  char *pcVar3;\n  offsetT oVar4;\n  undefined4 local_24;\n  undefined4 local_20;\n  long val;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0x4a526;\n  if (0 < alpha_flag_mdebug) {\n    if (fp == 0) {\n      ecoff_directive_mask(0);\n      return;\n    }\n    ecoff_directive_fmask(0);\n    return;\n  }\n  if (cur_frame_data == (alpha_elf_frame_data *)0x0) {\n    if (fp == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    as_warn(pcVar3);\n  }\n  else {\n    cVar2 = get_absolute_expression_and_terminator(&val);\n    if (cVar2 == ',') {\n      oVar4 = get_absolute_expression();\n      demand_empty_rest_of_line();\n      paVar1 = cur_frame_data;\n      local_20 = (undefined4)((ulonglong)oVar4 >> 0x20);\n      local_24 = (undefined4)oVar4;\n      if (fp != 0) {\n        cur_frame_data->fmask = val;\n        *(undefined4 *)&paVar1->fmask_offset = local_24;\n        *(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;\n        return;\n      }\n      cur_frame_data->mask = val;\n      *(undefined4 *)&paVar1->mask_offset = local_24;\n      *(undefined4 *)((int)&paVar1->mask_offset + 4) = local_20;\n      return;\n    }\n    if (fp == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    as_warn(pcVar3);\n    input_line_pointer = input_line_pointer + -1;\n  }\n  ignore_rest_of_line();\n  return;\n}\n\n" comment comment (function_definition "void s_alpha_mask(int fp)\n\n{\n  alpha_elf_frame_data *paVar1;\n  char cVar2;\n  char *pcVar3;\n  offsetT oVar4;\n  undefined4 local_24;\n  undefined4 local_20;\n  long val;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0x4a526;\n  if (0 < alpha_flag_mdebug) {\n    if (fp == 0) {\n      ecoff_directive_mask(0);\n      return;\n    }\n    ecoff_directive_fmask(0);\n    return;\n  }\n  if (cur_frame_data == (alpha_elf_frame_data *)0x0) {\n    if (fp == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    as_warn(pcVar3);\n  }\n  else {\n    cVar2 = get_absolute_expression_and_terminator(&val);\n    if (cVar2 == ',') {\n      oVar4 = get_absolute_expression();\n      demand_empty_rest_of_line();\n      paVar1 = cur_frame_data;\n      local_20 = (undefined4)((ulonglong)oVar4 >> 0x20);\n      local_24 = (undefined4)oVar4;\n      if (fp != 0) {\n        cur_frame_data->fmask = val;\n        *(undefined4 *)&paVar1->fmask_offset = local_24;\n        *(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;\n        return;\n      }\n      cur_frame_data->mask = val;\n      *(undefined4 *)&paVar1->mask_offset = local_24;\n      *(undefined4 *)((int)&paVar1->mask_offset + 4) = local_20;\n      return;\n    }\n    if (fp == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    as_warn(pcVar3);\n    input_line_pointer = input_line_pointer + -1;\n  }\n  ignore_rest_of_line();\n  return;\n}" primitive_type (function_declarator "s_alpha_mask(int fp)" identifier (parameter_list "(int fp)" ( (parameter_declaration "int fp" primitive_type identifier) ))) (compound_statement "{\n  alpha_elf_frame_data *paVar1;\n  char cVar2;\n  char *pcVar3;\n  offsetT oVar4;\n  undefined4 local_24;\n  undefined4 local_20;\n  long val;\n  undefined4 uStack_8;\n  \n  uStack_8 = 0x4a526;\n  if (0 < alpha_flag_mdebug) {\n    if (fp == 0) {\n      ecoff_directive_mask(0);\n      return;\n    }\n    ecoff_directive_fmask(0);\n    return;\n  }\n  if (cur_frame_data == (alpha_elf_frame_data *)0x0) {\n    if (fp == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    as_warn(pcVar3);\n  }\n  else {\n    cVar2 = get_absolute_expression_and_terminator(&val);\n    if (cVar2 == ',') {\n      oVar4 = get_absolute_expression();\n      demand_empty_rest_of_line();\n      paVar1 = cur_frame_data;\n      local_20 = (undefined4)((ulonglong)oVar4 >> 0x20);\n      local_24 = (undefined4)oVar4;\n      if (fp != 0) {\n        cur_frame_data->fmask = val;\n        *(undefined4 *)&paVar1->fmask_offset = local_24;\n        *(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;\n        return;\n      }\n      cur_frame_data->mask = val;\n      *(undefined4 *)&paVar1->mask_offset = local_24;\n      *(undefined4 *)((int)&paVar1->mask_offset + 4) = local_20;\n      return;\n    }\n    if (fp == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    as_warn(pcVar3);\n    input_line_pointer = input_line_pointer + -1;\n  }\n  ignore_rest_of_line();\n  return;\n}" { (declaration "alpha_elf_frame_data *paVar1;" type_identifier (pointer_declarator "*paVar1" * identifier) ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "offsetT oVar4;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "undefined4 local_20;" type_identifier identifier ;) (declaration "long val;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined4 uStack_8;" type_identifier identifier ;) (expression_statement "uStack_8 = 0x4a526;" (assignment_expression "uStack_8 = 0x4a526" identifier = number_literal) ;) (if_statement "if (0 < alpha_flag_mdebug) {\n    if (fp == 0) {\n      ecoff_directive_mask(0);\n      return;\n    }\n    ecoff_directive_fmask(0);\n    return;\n  }" if (parenthesized_expression "(0 < alpha_flag_mdebug)" ( (binary_expression "0 < alpha_flag_mdebug" number_literal < identifier) )) (compound_statement "{\n    if (fp == 0) {\n      ecoff_directive_mask(0);\n      return;\n    }\n    ecoff_directive_fmask(0);\n    return;\n  }" { (if_statement "if (fp == 0) {\n      ecoff_directive_mask(0);\n      return;\n    }" if (parenthesized_expression "(fp == 0)" ( (binary_expression "fp == 0" identifier == number_literal) )) (compound_statement "{\n      ecoff_directive_mask(0);\n      return;\n    }" { (expression_statement "ecoff_directive_mask(0);" (call_expression "ecoff_directive_mask(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "ecoff_directive_fmask(0);" (call_expression "ecoff_directive_fmask(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (if_statement "if (cur_frame_data == (alpha_elf_frame_data *)0x0) {\n    if (fp == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    as_warn(pcVar3);\n  }\n  else {\n    cVar2 = get_absolute_expression_and_terminator(&val);\n    if (cVar2 == ',') {\n      oVar4 = get_absolute_expression();\n      demand_empty_rest_of_line();\n      paVar1 = cur_frame_data;\n      local_20 = (undefined4)((ulonglong)oVar4 >> 0x20);\n      local_24 = (undefined4)oVar4;\n      if (fp != 0) {\n        cur_frame_data->fmask = val;\n        *(undefined4 *)&paVar1->fmask_offset = local_24;\n        *(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;\n        return;\n      }\n      cur_frame_data->mask = val;\n      *(undefined4 *)&paVar1->mask_offset = local_24;\n      *(undefined4 *)((int)&paVar1->mask_offset + 4) = local_20;\n      return;\n    }\n    if (fp == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    as_warn(pcVar3);\n    input_line_pointer = input_line_pointer + -1;\n  }" if (parenthesized_expression "(cur_frame_data == (alpha_elf_frame_data *)0x0)" ( (binary_expression "cur_frame_data == (alpha_elf_frame_data *)0x0" identifier == (cast_expression "(alpha_elf_frame_data *)0x0" ( (type_descriptor "alpha_elf_frame_data *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (fp == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    as_warn(pcVar3);\n  }" { (if_statement "if (fp == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }" if (parenthesized_expression "(fp == 0)" ( (binary_expression "fp == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar3 = ".mask outside of .ent";\n    }" { (expression_statement "pcVar3 = ".mask outside of .ent";" (assignment_expression "pcVar3 = ".mask outside of .ent"" identifier = (string_literal "".mask outside of .ent"" " string_content ")) ;) }) (else_clause "else {\n      pcVar3 = ".fmask outside of .ent";\n    }" else (compound_statement "{\n      pcVar3 = ".fmask outside of .ent";\n    }" { (expression_statement "pcVar3 = ".fmask outside of .ent";" (assignment_expression "pcVar3 = ".fmask outside of .ent"" identifier = (string_literal "".fmask outside of .ent"" " string_content ")) ;) }))) (expression_statement "pcVar3 = (char *)dcgettext(0,pcVar3,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,pcVar3,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar3,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "as_warn(pcVar3);" (call_expression "as_warn(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) }) (else_clause "else {\n    cVar2 = get_absolute_expression_and_terminator(&val);\n    if (cVar2 == ',') {\n      oVar4 = get_absolute_expression();\n      demand_empty_rest_of_line();\n      paVar1 = cur_frame_data;\n      local_20 = (undefined4)((ulonglong)oVar4 >> 0x20);\n      local_24 = (undefined4)oVar4;\n      if (fp != 0) {\n        cur_frame_data->fmask = val;\n        *(undefined4 *)&paVar1->fmask_offset = local_24;\n        *(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;\n        return;\n      }\n      cur_frame_data->mask = val;\n      *(undefined4 *)&paVar1->mask_offset = local_24;\n      *(undefined4 *)((int)&paVar1->mask_offset + 4) = local_20;\n      return;\n    }\n    if (fp == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    as_warn(pcVar3);\n    input_line_pointer = input_line_pointer + -1;\n  }" else (compound_statement "{\n    cVar2 = get_absolute_expression_and_terminator(&val);\n    if (cVar2 == ',') {\n      oVar4 = get_absolute_expression();\n      demand_empty_rest_of_line();\n      paVar1 = cur_frame_data;\n      local_20 = (undefined4)((ulonglong)oVar4 >> 0x20);\n      local_24 = (undefined4)oVar4;\n      if (fp != 0) {\n        cur_frame_data->fmask = val;\n        *(undefined4 *)&paVar1->fmask_offset = local_24;\n        *(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;\n        return;\n      }\n      cur_frame_data->mask = val;\n      *(undefined4 *)&paVar1->mask_offset = local_24;\n      *(undefined4 *)((int)&paVar1->mask_offset + 4) = local_20;\n      return;\n    }\n    if (fp == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    pcVar3 = (char *)dcgettext(0,pcVar3,5);\n    as_warn(pcVar3);\n    input_line_pointer = input_line_pointer + -1;\n  }" { (expression_statement "cVar2 = get_absolute_expression_and_terminator(&val);" (assignment_expression "cVar2 = get_absolute_expression_and_terminator(&val)" identifier = (call_expression "get_absolute_expression_and_terminator(&val)" identifier (argument_list "(&val)" ( (pointer_expression "&val" & identifier) )))) ;) (if_statement "if (cVar2 == ',') {\n      oVar4 = get_absolute_expression();\n      demand_empty_rest_of_line();\n      paVar1 = cur_frame_data;\n      local_20 = (undefined4)((ulonglong)oVar4 >> 0x20);\n      local_24 = (undefined4)oVar4;\n      if (fp != 0) {\n        cur_frame_data->fmask = val;\n        *(undefined4 *)&paVar1->fmask_offset = local_24;\n        *(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;\n        return;\n      }\n      cur_frame_data->mask = val;\n      *(undefined4 *)&paVar1->mask_offset = local_24;\n      *(undefined4 *)((int)&paVar1->mask_offset + 4) = local_20;\n      return;\n    }" if (parenthesized_expression "(cVar2 == ',')" ( (binary_expression "cVar2 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n      oVar4 = get_absolute_expression();\n      demand_empty_rest_of_line();\n      paVar1 = cur_frame_data;\n      local_20 = (undefined4)((ulonglong)oVar4 >> 0x20);\n      local_24 = (undefined4)oVar4;\n      if (fp != 0) {\n        cur_frame_data->fmask = val;\n        *(undefined4 *)&paVar1->fmask_offset = local_24;\n        *(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;\n        return;\n      }\n      cur_frame_data->mask = val;\n      *(undefined4 *)&paVar1->mask_offset = local_24;\n      *(undefined4 *)((int)&paVar1->mask_offset + 4) = local_20;\n      return;\n    }" { (expression_statement "oVar4 = get_absolute_expression();" (assignment_expression "oVar4 = get_absolute_expression()" identifier = (call_expression "get_absolute_expression()" identifier (argument_list "()" ( )))) ;) (expression_statement "demand_empty_rest_of_line();" (call_expression "demand_empty_rest_of_line()" identifier (argument_list "()" ( ))) ;) (expression_statement "paVar1 = cur_frame_data;" (assignment_expression "paVar1 = cur_frame_data" identifier = identifier) ;) (expression_statement "local_20 = (undefined4)((ulonglong)oVar4 >> 0x20);" (assignment_expression "local_20 = (undefined4)((ulonglong)oVar4 >> 0x20)" identifier = (call_expression "(undefined4)((ulonglong)oVar4 >> 0x20)" (parenthesized_expression "(undefined4)" ( identifier )) (argument_list "((ulonglong)oVar4 >> 0x20)" ( (binary_expression "(ulonglong)oVar4 >> 0x20" (cast_expression "(ulonglong)oVar4" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "local_24 = (undefined4)oVar4;" (assignment_expression "local_24 = (undefined4)oVar4" identifier = (cast_expression "(undefined4)oVar4" ( (type_descriptor "undefined4" type_identifier) ) identifier)) ;) (if_statement "if (fp != 0) {\n        cur_frame_data->fmask = val;\n        *(undefined4 *)&paVar1->fmask_offset = local_24;\n        *(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;\n        return;\n      }" if (parenthesized_expression "(fp != 0)" ( (binary_expression "fp != 0" identifier != number_literal) )) (compound_statement "{\n        cur_frame_data->fmask = val;\n        *(undefined4 *)&paVar1->fmask_offset = local_24;\n        *(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;\n        return;\n      }" { (expression_statement "cur_frame_data->fmask = val;" (assignment_expression "cur_frame_data->fmask = val" (field_expression "cur_frame_data->fmask" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&paVar1->fmask_offset = local_24;" (assignment_expression "*(undefined4 *)&paVar1->fmask_offset = local_24" (pointer_expression "*(undefined4 *)&paVar1->fmask_offset" * (cast_expression "(undefined4 *)&paVar1->fmask_offset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar1->fmask_offset" & (field_expression "paVar1->fmask_offset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20;" (assignment_expression "*(undefined4 *)((int)&paVar1->fmask_offset + 4) = local_20" (pointer_expression "*(undefined4 *)((int)&paVar1->fmask_offset + 4)" * (cast_expression "(undefined4 *)((int)&paVar1->fmask_offset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar1->fmask_offset + 4)" ( (binary_expression "(int)&paVar1->fmask_offset + 4" (cast_expression "(int)&paVar1->fmask_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar1->fmask_offset" & (field_expression "paVar1->fmask_offset" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "cur_frame_data->mask = val;" (assignment_expression "cur_frame_data->mask = val" (field_expression "cur_frame_data->mask" identifier -> field_identifier) = identifier) ;) (expression_statement "*(undefined4 *)&paVar1->mask_offset = local_24;" (assignment_expression "*(undefined4 *)&paVar1->mask_offset = local_24" (pointer_expression "*(undefined4 *)&paVar1->mask_offset" * (cast_expression "(undefined4 *)&paVar1->mask_offset" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&paVar1->mask_offset" & (field_expression "paVar1->mask_offset" identifier -> field_identifier)))) = identifier) ;) (expression_statement "*(undefined4 *)((int)&paVar1->mask_offset + 4) = local_20;" (assignment_expression "*(undefined4 *)((int)&paVar1->mask_offset + 4) = local_20" (pointer_expression "*(undefined4 *)((int)&paVar1->mask_offset + 4)" * (cast_expression "(undefined4 *)((int)&paVar1->mask_offset + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&paVar1->mask_offset + 4)" ( (binary_expression "(int)&paVar1->mask_offset + 4" (cast_expression "(int)&paVar1->mask_offset" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&paVar1->mask_offset" & (field_expression "paVar1->mask_offset" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (fp == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }" if (parenthesized_expression "(fp == 0)" ( (binary_expression "fp == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar3 = "bad .mask directive";\n    }" { (expression_statement "pcVar3 = "bad .mask directive";" (assignment_expression "pcVar3 = "bad .mask directive"" identifier = (string_literal ""bad .mask directive"" " string_content ")) ;) }) (else_clause "else {\n      pcVar3 = "bad .fmask directive";\n    }" else (compound_statement "{\n      pcVar3 = "bad .fmask directive";\n    }" { (expression_statement "pcVar3 = "bad .fmask directive";" (assignment_expression "pcVar3 = "bad .fmask directive"" identifier = (string_literal ""bad .fmask directive"" " string_content ")) ;) }))) (expression_statement "pcVar3 = (char *)dcgettext(0,pcVar3,5);" (assignment_expression "pcVar3 = (char *)dcgettext(0,pcVar3,5)" identifier = (cast_expression "(char *)dcgettext(0,pcVar3,5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal ))))) ;) (expression_statement "as_warn(pcVar3);" (call_expression "as_warn(pcVar3)" identifier (argument_list "(pcVar3)" ( identifier ))) ;) (expression_statement "input_line_pointer = input_line_pointer + -1;" (assignment_expression "input_line_pointer = input_line_pointer + -1" identifier = (binary_expression "input_line_pointer + -1" identifier + number_literal)) ;) }))) (expression_statement "ignore_rest_of_line();" (call_expression "ignore_rest_of_line()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0004a520(int param_1)\n\n{\n  int iVar1;\n  char cVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  undefined8 uVar5;\n  undefined4 local_10 [2];\n  undefined4 uStack_8;\n  \n  uStack_8 = 0x4a526;\n  if (0 < DAT_00078510) {\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }\n  if (DAT_00081124 == 0) {\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }\n  else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }\n  FUN_000339c0();\n  return;\n}\n\n" (function_definition "void FUN_0004a520(int param_1)\n\n{\n  int iVar1;\n  char cVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  undefined8 uVar5;\n  undefined4 local_10 [2];\n  undefined4 uStack_8;\n  \n  uStack_8 = 0x4a526;\n  if (0 < DAT_00078510) {\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }\n  if (DAT_00081124 == 0) {\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }\n  else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }\n  FUN_000339c0();\n  return;\n}" primitive_type (function_declarator "FUN_0004a520(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  undefined8 uVar5;\n  undefined4 local_10 [2];\n  undefined4 uStack_8;\n  \n  uStack_8 = 0x4a526;\n  if (0 < DAT_00078510) {\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }\n  if (DAT_00081124 == 0) {\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }\n  else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }\n  FUN_000339c0();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "char *pcVar3;" primitive_type (pointer_declarator "*pcVar3" * identifier) ;) (declaration "undefined4 uVar4;" type_identifier identifier ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "undefined4 local_10 [2];" type_identifier (array_declarator "local_10 [2]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_8;" type_identifier identifier ;) (expression_statement "uStack_8 = 0x4a526;" (assignment_expression "uStack_8 = 0x4a526" identifier = number_literal) ;) (if_statement "if (0 < DAT_00078510) {\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }" if (parenthesized_expression "(0 < DAT_00078510)" ( (binary_expression "0 < DAT_00078510" number_literal < identifier) )) (compound_statement "{\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }" { (if_statement "if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n      FUN_00022ac0(0);\n      return;\n    }" { (expression_statement "FUN_00022ac0(0);" (call_expression "FUN_00022ac0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_00022900(0);" (call_expression "FUN_00022900(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (return_statement "return;" return ;) })) (if_statement "if (DAT_00081124 == 0) {\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }\n  else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }" if (parenthesized_expression "(DAT_00081124 == 0)" ( (binary_expression "DAT_00081124 == 0" identifier == number_literal) )) (compound_statement "{\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }" { (if_statement "if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar3 = ".mask outside of .ent";\n    }" { (expression_statement "pcVar3 = ".mask outside of .ent";" (assignment_expression "pcVar3 = ".mask outside of .ent"" identifier = (string_literal "".mask outside of .ent"" " string_content ")) ;) }) (else_clause "else {\n      pcVar3 = ".fmask outside of .ent";\n    }" else (compound_statement "{\n      pcVar3 = ".fmask outside of .ent";\n    }" { (expression_statement "pcVar3 = ".fmask outside of .ent";" (assignment_expression "pcVar3 = ".fmask outside of .ent"" identifier = (string_literal "".fmask outside of .ent"" " string_content ")) ;) }))) (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" identifier = (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00031540(uVar4);" (call_expression "FUN_00031540(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) }) (else_clause "else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }" else (compound_statement "{\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }" { (expression_statement "cVar2 = FUN_00039130(local_10);" (assignment_expression "cVar2 = FUN_00039130(local_10)" identifier = (call_expression "FUN_00039130(local_10)" identifier (argument_list "(local_10)" ( identifier )))) ;) (if_statement "if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }" if (parenthesized_expression "(cVar2 == ',')" ( (binary_expression "cVar2 == ','" identifier == (char_literal "','" ' character ')) )) (compound_statement "{\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }" { (expression_statement "uVar5 = FUN_00032f30();" (assignment_expression "uVar5 = FUN_00032f30()" identifier = (call_expression "FUN_00032f30()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = DAT_00081124;" (assignment_expression "iVar1 = DAT_00081124" identifier = identifier) ;) (if_statement "if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }" if (parenthesized_expression "(param_1 != 0)" ( (binary_expression "param_1 != 0" identifier != number_literal) )) (compound_statement "{\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }" { (expression_statement "*(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];" (assignment_expression "*(undefined4 *)(DAT_00081124 + 0x10) = local_10[0]" (pointer_expression "*(undefined4 *)(DAT_00081124 + 0x10)" * (cast_expression "(undefined4 *)(DAT_00081124 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081124 + 0x10)" ( (binary_expression "DAT_00081124 + 0x10" identifier + number_literal) )))) = (subscript_expression "local_10[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)(iVar1 + 0x2c) = uVar5;" (assignment_expression "*(undefined8 *)(iVar1 + 0x2c) = uVar5" (pointer_expression "*(undefined8 *)(iVar1 + 0x2c)" * (cast_expression "(undefined8 *)(iVar1 + 0x2c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x2c)" ( (binary_expression "iVar1 + 0x2c" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (expression_statement "*(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];" (assignment_expression "*(undefined4 *)(DAT_00081124 + 0xc) = local_10[0]" (pointer_expression "*(undefined4 *)(DAT_00081124 + 0xc)" * (cast_expression "(undefined4 *)(DAT_00081124 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(DAT_00081124 + 0xc)" ( (binary_expression "DAT_00081124 + 0xc" identifier + number_literal) )))) = (subscript_expression "local_10[0]" identifier [ number_literal ])) ;) (expression_statement "*(undefined8 *)(iVar1 + 0x24) = uVar5;" (assignment_expression "*(undefined8 *)(iVar1 + 0x24) = uVar5" (pointer_expression "*(undefined8 *)(iVar1 + 0x24)" * (cast_expression "(undefined8 *)(iVar1 + 0x24)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x24)" ( (binary_expression "iVar1 + 0x24" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })) (if_statement "if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n      pcVar3 = "bad .mask directive";\n    }" { (expression_statement "pcVar3 = "bad .mask directive";" (assignment_expression "pcVar3 = "bad .mask directive"" identifier = (string_literal ""bad .mask directive"" " string_content ")) ;) }) (else_clause "else {\n      pcVar3 = "bad .fmask directive";\n    }" else (compound_statement "{\n      pcVar3 = "bad .fmask directive";\n    }" { (expression_statement "pcVar3 = "bad .fmask directive";" (assignment_expression "pcVar3 = "bad .fmask directive"" identifier = (string_literal ""bad .fmask directive"" " string_content ")) ;) }))) (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" identifier = (call_expression "dcgettext(0,pcVar3,5)" identifier (argument_list "(0,pcVar3,5)" ( number_literal , identifier , number_literal )))) ;) (expression_statement "FUN_00031540(uVar4);" (call_expression "FUN_00031540(uVar4)" identifier (argument_list "(uVar4)" ( identifier ))) ;) (expression_statement "DAT_00081578 = DAT_00081578 + -1;" (assignment_expression "DAT_00081578 = DAT_00081578 + -1" identifier = (binary_expression "DAT_00081578 + -1" identifier + number_literal)) ;) }))) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , IDENT , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0004a520(int param_1)\n\n{\n  int iVar1;\n  char cVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  undefined8 uVar5;\n  undefined4 local_10 [2];\n  undefined4 uStack_8;\n  \n  uStack_8 = 0x4a526;\n  if (0 < DAT_00078510) {\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }\n  if (DAT_00081124 == 0) {\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }\n  else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }\n  FUN_000339c0();\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0004a520(int param_1)" (identifier "FUN_0004a520") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  char cVar2;\n  char *pcVar3;\n  undefined4 uVar4;\n  undefined8 uVar5;\n  undefined4 local_10 [2];\n  undefined4 uStack_8;\n  \n  uStack_8 = 0x4a526;\n  if (0 < DAT_00078510) {\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }\n  if (DAT_00081124 == 0) {\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }\n  else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }\n  FUN_000339c0();\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "char cVar2;" (primitive_type "char") (identifier "cVar2") (; ";")) (declaration "char *pcVar3;" (primitive_type "char") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "undefined4 uVar4;" (type_identifier "undefined4") (identifier "uVar4") (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "undefined4 local_10 [2];" (type_identifier "undefined4") (array_declarator "local_10 [2]" (identifier "local_10") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "undefined4 uStack_8;" (type_identifier "undefined4") (identifier "uStack_8") (; ";")) (expression_statement "uStack_8 = 0x4a526;" (assignment_expression "uStack_8 = 0x4a526" (identifier "uStack_8") (= "=") (number_literal "0x4a526")) (; ";")) (if_statement "if (0 < DAT_00078510) {\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }" (if "if") (parenthesized_expression "(0 < DAT_00078510)" (( "(") (binary_expression "0 < DAT_00078510" (number_literal "0") (< "<") (identifier "DAT_00078510")) () ")")) (compound_statement "{\n    if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }\n    FUN_00022900(0);\n    return;\n  }" ({ "{") (if_statement "if (param_1 == 0) {\n      FUN_00022ac0(0);\n      return;\n    }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00022ac0(0);\n      return;\n    }" ({ "{") (expression_statement "FUN_00022ac0(0);" (call_expression "FUN_00022ac0(0)" (identifier "FUN_00022ac0") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00022900(0);" (call_expression "FUN_00022900(0)" (identifier "FUN_00022900") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (DAT_00081124 == 0) {\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }\n  else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }" (if "if") (parenthesized_expression "(DAT_00081124 == 0)" (( "(") (binary_expression "DAT_00081124 == 0" (identifier "DAT_00081124") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n  }" ({ "{") (if_statement "if (param_1 == 0) {\n      pcVar3 = ".mask outside of .ent";\n    }\n    else {\n      pcVar3 = ".fmask outside of .ent";\n    }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar3 = ".mask outside of .ent";\n    }" ({ "{") (expression_statement "pcVar3 = ".mask outside of .ent";" (assignment_expression "pcVar3 = ".mask outside of .ent"" (identifier "pcVar3") (= "=") (string_literal "".mask outside of .ent"" (" """) (string_content ".mask outside of .ent") (" """))) (; ";")) (} "}")) (else_clause "else {\n      pcVar3 = ".fmask outside of .ent";\n    }" (else "else") (compound_statement "{\n      pcVar3 = ".fmask outside of .ent";\n    }" ({ "{") (expression_statement "pcVar3 = ".fmask outside of .ent";" (assignment_expression "pcVar3 = ".fmask outside of .ent"" (identifier "pcVar3") (= "=") (string_literal "".fmask outside of .ent"" (" """) (string_content ".fmask outside of .ent") (" """))) (; ";")) (} "}")))) (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,pcVar3,5)" (identifier "dcgettext") (argument_list "(0,pcVar3,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar3") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031540(uVar4);" (call_expression "FUN_00031540(uVar4)" (identifier "FUN_00031540") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (} "}")) (else_clause "else {\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }" (else "else") (compound_statement "{\n    cVar2 = FUN_00039130(local_10);\n    if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }\n    if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }\n    uVar4 = dcgettext(0,pcVar3,5);\n    FUN_00031540(uVar4);\n    DAT_00081578 = DAT_00081578 + -1;\n  }" ({ "{") (expression_statement "cVar2 = FUN_00039130(local_10);" (assignment_expression "cVar2 = FUN_00039130(local_10)" (identifier "cVar2") (= "=") (call_expression "FUN_00039130(local_10)" (identifier "FUN_00039130") (argument_list "(local_10)" (( "(") (identifier "local_10") () ")")))) (; ";")) (if_statement "if (cVar2 == ',') {\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }" (if "if") (parenthesized_expression "(cVar2 == ',')" (( "(") (binary_expression "cVar2 == ','" (identifier "cVar2") (== "==") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n      uVar5 = FUN_00032f30();\n      FUN_00033c40();\n      iVar1 = DAT_00081124;\n      if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }\n      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];\n      *(undefined8 *)(iVar1 + 0x24) = uVar5;\n      return;\n    }" ({ "{") (expression_statement "uVar5 = FUN_00032f30();" (assignment_expression "uVar5 = FUN_00032f30()" (identifier "uVar5") (= "=") (call_expression "FUN_00032f30()" (identifier "FUN_00032f30") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_00033c40();" (call_expression "FUN_00033c40()" (identifier "FUN_00033c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = DAT_00081124;" (assignment_expression "iVar1 = DAT_00081124" (identifier "iVar1") (= "=") (identifier "DAT_00081124")) (; ";")) (if_statement "if (param_1 != 0) {\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }" (if "if") (parenthesized_expression "(param_1 != 0)" (( "(") (binary_expression "param_1 != 0" (identifier "param_1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];\n        *(undefined8 *)(iVar1 + 0x2c) = uVar5;\n        return;\n      }" ({ "{") (expression_statement "*(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];" (assignment_expression "*(undefined4 *)(DAT_00081124 + 0x10) = local_10[0]" (pointer_expression "*(undefined4 *)(DAT_00081124 + 0x10)" (* "*") (cast_expression "(undefined4 *)(DAT_00081124 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00081124 + 0x10)" (( "(") (binary_expression "DAT_00081124 + 0x10" (identifier "DAT_00081124") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)(iVar1 + 0x2c) = uVar5;" (assignment_expression "*(undefined8 *)(iVar1 + 0x2c) = uVar5" (pointer_expression "*(undefined8 *)(iVar1 + 0x2c)" (* "*") (cast_expression "(undefined8 *)(iVar1 + 0x2c)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x2c)" (( "(") (binary_expression "iVar1 + 0x2c" (identifier "iVar1") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];" (assignment_expression "*(undefined4 *)(DAT_00081124 + 0xc) = local_10[0]" (pointer_expression "*(undefined4 *)(DAT_00081124 + 0xc)" (* "*") (cast_expression "(undefined4 *)(DAT_00081124 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(DAT_00081124 + 0xc)" (( "(") (binary_expression "DAT_00081124 + 0xc" (identifier "DAT_00081124") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "*(undefined8 *)(iVar1 + 0x24) = uVar5;" (assignment_expression "*(undefined8 *)(iVar1 + 0x24) = uVar5" (pointer_expression "*(undefined8 *)(iVar1 + 0x24)" (* "*") (cast_expression "(undefined8 *)(iVar1 + 0x24)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x24)" (( "(") (binary_expression "iVar1 + 0x24" (identifier "iVar1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_1 == 0) {\n      pcVar3 = "bad .mask directive";\n    }\n    else {\n      pcVar3 = "bad .fmask directive";\n    }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar3 = "bad .mask directive";\n    }" ({ "{") (expression_statement "pcVar3 = "bad .mask directive";" (assignment_expression "pcVar3 = "bad .mask directive"" (identifier "pcVar3") (= "=") (string_literal ""bad .mask directive"" (" """) (string_content "bad .mask directive") (" """))) (; ";")) (} "}")) (else_clause "else {\n      pcVar3 = "bad .fmask directive";\n    }" (else "else") (compound_statement "{\n      pcVar3 = "bad .fmask directive";\n    }" ({ "{") (expression_statement "pcVar3 = "bad .fmask directive";" (assignment_expression "pcVar3 = "bad .fmask directive"" (identifier "pcVar3") (= "=") (string_literal ""bad .fmask directive"" (" """) (string_content "bad .fmask directive") (" """))) (; ";")) (} "}")))) (expression_statement "uVar4 = dcgettext(0,pcVar3,5);" (assignment_expression "uVar4 = dcgettext(0,pcVar3,5)" (identifier "uVar4") (= "=") (call_expression "dcgettext(0,pcVar3,5)" (identifier "dcgettext") (argument_list "(0,pcVar3,5)" (( "(") (number_literal "0") (, ",") (identifier "pcVar3") (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00031540(uVar4);" (call_expression "FUN_00031540(uVar4)" (identifier "FUN_00031540") (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")"))) (; ";")) (expression_statement "DAT_00081578 = DAT_00081578 + -1;" (assignment_expression "DAT_00081578 = DAT_00081578 + -1" (identifier "DAT_00081578") (= "=") (binary_expression "DAT_00081578 + -1" (identifier "DAT_00081578") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (expression_statement "FUN_000339c0();" (call_expression "FUN_000339c0()" (identifier "FUN_000339c0") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(int var_2)

{
  type_1 *paVar1;
  char var_9;
  char *pcVar3;
  type_2 oVar4;
  type_3 local_24;
  type_3 local_20;
  long val;
  type_3 uStack_8;
  
  uStack_8 = 0x4a526;
  if (0 < var_1) {
    if (var_2 == 0) {
      var_3(0);
      return;
    }
    var_4(0);
    return;
  }
  if (var_5 == (type_1 *)0x0) {
    if (var_2 == 0) {
      pcVar3 = ".mask outside of .ent";
    }
    else {
      pcVar3 = ".fmask outside of .ent";
    }
    pcVar3 = (char *)var_6(0,pcVar3,5);
    var_7(pcVar3);
  }
  else {
    var_9 = var_8(&val);
    if (var_9 == ',') {
      oVar4 = var_10();
      var_11();
      paVar1 = var_5;
      local_20 = (type_3)((type_4)oVar4 >> 0x20);
      local_24 = (type_3)oVar4;
      if (var_2 != 0) {
        var_5->fmask = val;
        *(type_3 *)&paVar1->fmask_offset = local_24;
        *(type_3 *)((int)&paVar1->fmask_offset + 4) = local_20;
        return;
      }
      var_5->mask = val;
      *(type_3 *)&paVar1->mask_offset = local_24;
      *(type_3 *)((int)&paVar1->mask_offset + 4) = local_20;
      return;
    }
    if (var_2 == 0) {
      pcVar3 = "bad .mask directive";
    }
    else {
      pcVar3 = "bad .fmask directive";
    }
    pcVar3 = (char *)var_6(0,pcVar3,5);
    var_7(pcVar3);
    var_12 = var_12 + -1;
  }
  var_13();
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator 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: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (character)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (return_statement))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (string_literal (string_content))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (identifier) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement))))

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

void MASKED(int param_1)

{
  int iVar1;
  char cVar2;
  char *pcVar3;
  undefined4 uVar4;
  undefined8 uVar5;
  undefined4 local_10 [2];
  undefined4 uStack_8;
  
  uStack_8 = 0x4a526;
  if (0 < DAT_00078510) {
    if (param_1 == 0) {
      FUN_00022ac0(0);
      return;
    }
    FUN_00022900(0);
    return;
  }
  if (DAT_00081124 == 0) {
    if (param_1 == 0) {
      pcVar3 = ".mask outside of .ent";
    }
    else {
      pcVar3 = ".fmask outside of .ent";
    }
    uVar4 = dcgettext(0,pcVar3,5);
    FUN_00031540(uVar4);
  }
  else {
    cVar2 = FUN_00039130(local_10);
    if (cVar2 == ',') {
      uVar5 = FUN_00032f30();
      FUN_00033c40();
      iVar1 = DAT_00081124;
      if (param_1 != 0) {
        *(undefined4 *)(DAT_00081124 + 0x10) = local_10[0];
        *(undefined8 *)(iVar1 + 0x2c) = uVar5;
        return;
      }
      *(undefined4 *)(DAT_00081124 + 0xc) = local_10[0];
      *(undefined8 *)(iVar1 + 0x24) = uVar5;
      return;
    }
    if (param_1 == 0) {
      pcVar3 = "bad .mask directive";
    }
    else {
      pcVar3 = "bad .fmask directive";
    }
    uVar4 = dcgettext(0,pcVar3,5);
    FUN_00031540(uVar4);
    DAT_00081578 = DAT_00081578 + -1;
  }
  FUN_000339c0();
  return;
}

