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

void __regparm3
as_internal_value_out_of_range
          (char *prefix,offsetT val,offsetT min,offsetT max,char *file,uint line,int bad)

{
  char *format;
  char *pcVar1;
  char val_buf [14];
  char min_buf [14];
  char max_buf [14];
  
  if (prefix == (char *)0x0) {
    prefix = "";
  }
  if ((val < min) || (max < val)) {
    if ((min + 0x3ffU < 0x7ff) && ((val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff)))) {
      format = (char *)dcgettext(0,"%s out of range (%d is not between %d and %d)",5);
    }
    else {
      sprintf(val_buf,"%08lx",val);
      sprintf(min_buf,"%08lx",min);
      sprintf(max_buf,"%08lx",max);
      format = (char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);
      val = (offsetT)val_buf;
      min = (offsetT)min_buf;
      max = (offsetT)max_buf;
    }
  }
  else {
    if (max < 2) {
                    /* WARNING: Subroutine does not return */
      as_abort("../../gas/messages.c",0x18d,"as_internal_value_out_of_range");
    }
    pcVar1 = (char *)0x5;
    format = (char *)dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);
    min = (offsetT)(-max & max);
    max = (offsetT)pcVar1;
  }
  if (bad == 0) {
    as_warn_where(file,line,format,prefix,val,min,max);
    return;
  }
  as_bad_where(file,line,format,prefix,val,min,max);
  return;
}



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

void __regparm3
FUN_0002a9f0(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,
            undefined4 param_6,int param_7)

{
  undefined4 uVar1;
  char *pcVar2;
  char local_46 [14];
  char local_38 [14];
  char local_2a [22];
  undefined4 uStack_14;
  
  uStack_14 = 0x2a9ff;
  if (param_1 == (undefined *)0x0) {
    param_1 = &DAT_00051b45;
  }
  if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {
    if ((param_3 + 0x3ff < (char *)0x7ff) &&
       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {
      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);
    }
    else {
      sprintf(local_46,"%08lx",param_2);
      sprintf(local_38,"%08lx",param_3);
      sprintf(local_2a,"%08lx",param_4);
      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);
      param_2 = local_46;
      param_3 = local_38;
      param_4 = local_2a;
    }
  }
  else {
    if ((int)param_4 < 2) {
                    /* WARNING: Subroutine does not return */
      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);
    }
    pcVar2 = (char *)0x5;
    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);
    param_3 = (char *)(-(int)param_4 & (uint)param_4);
    param_4 = pcVar2;
  }
  if (param_7 == 0) {
    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);
    return;
  }
  FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);
  return;
}


PUSH EBP
MOV EBP,ECX
PUSH EDI
MOV EDI,EDX
PUSH ESI
MOV ESI,EAX
PUSH EBX
CALL 0x00016030
ADD EBX,0x49601
SUB ESP,0x4c
TEST EAX,EAX
MOV EDX,dword ptr [ESP + 0x60]
LEA EAX,[EBX + 0xfffddb45]
CMOVZ ESI,EAX
CMP EDI,ECX
JL 0x0002aa78
CMP EDI,EDX
JG 0x0002aa78
MOV EBP,EDX
NEG EBP
AND EBP,EDX
CMP EDX,0x1
JLE 0x0002ab88
SUB ESP,0x4
LEA EAX,[EBX + 0xfffdf4e8]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
ADD ESP,0x10
MOV EBX,dword ptr [ESP + 0x6c]
TEST EBX,EBX
JZ 0x0002ab48
SUB ESP,0x8
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x80]
PUSH dword ptr [ESP + 0x80]
CALL 0x0002a800
ADD ESP,0x20
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA EAX,[EBP + 0x3ff]
CMP EAX,0x7fe
JA 0x0002aad8
LEA EAX,[EDI + 0x3ff]
CMP EAX,0x7fe
JA 0x0002aad8
LEA EAX,[EDX + 0x3ff]
CMP EAX,0x7fe
JA 0x0002aad8
MOV dword ptr [ESP + 0x60],EDX
LEA EAX,[EBX + 0xfffdf518]
SUB ESP,0x4
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x6c]
MOV EDX,dword ptr [ESP + 0x60]
TEST ECX,ECX
JZ 0x0002ab80
SUB ESP,0x4
PUSH EDX
PUSH EBP
PUSH EDI
JMP 0x0002aa55
MOV dword ptr [ESP + 0x60],EDX
SUB ESP,0x4
PUSH EDI
LEA EDI,[EBX + 0xfffdedc7]
PUSH EDI
LEA ECX,[ESP + 0x22]
PUSH ECX
MOV dword ptr [ESP + 0x1c],ECX
CALL 0x00014650
ADD ESP,0xc
PUSH EBP
PUSH EDI
LEA EBP,[ESP + 0x30]
PUSH EBP
CALL 0x00014650
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0x64]
PUSH EDX
PUSH EDI
LEA EDI,[ESP + 0x3e]
PUSH EDI
CALL 0x00014650
ADD ESP,0xc
LEA EAX,[EBX + 0xfffdf548]
PUSH 0x5
PUSH EAX
PUSH 0x0
CALL 0x000141a0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x6c]
MOV ECX,dword ptr [ESP + 0xc]
TEST EDX,EDX
JZ 0x0002ab70
SUB ESP,0x4
PUSH EDI
PUSH EBP
PUSH ECX
JMP 0x0002aa55
SUB ESP,0x8
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EAX
PUSH dword ptr [ESP + 0x80]
PUSH dword ptr [ESP + 0x80]
CALL 0x0002a740
ADD ESP,0x20
ADD ESP,0x4c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0x4
PUSH EDI
PUSH EBP
PUSH ECX
JMP 0x0002ab4d
SUB ESP,0x4
PUSH EDX
PUSH EBP
PUSH EDI
JMP 0x0002ab4d
LEA EAX,[EBX + 0xfffdf57c]
PUSH ESI
PUSH EAX
LEA EAX,[EBX + 0xfffdf4b0]
PUSH 0x18d
PUSH EAX
CALL 0x0002a8d0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3\nFUN_0002a9f0(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,\n            undefined4 param_6,int param_7)\n\n{\n  undefined4 uVar1;\n  char *pcVar2;\n  char local_46 [14];\n  char local_38 [14];\n  char local_2a [22];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a9ff;\n  if (param_1 == (undefined *)0x0) {\n    param_1 = &DAT_00051b45;\n  }\n  if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }\n  else {\n    if ((int)param_4 < 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }\n  if (param_7 == 0) {\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }\n  FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n  return;\n}\n\n" comment (function_definition "void __regparm3\nFUN_0002a9f0(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,\n            undefined4 param_6,int param_7)\n\n{\n  undefined4 uVar1;\n  char *pcVar2;\n  char local_46 [14];\n  char local_38 [14];\n  char local_2a [22];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a9ff;\n  if (param_1 == (undefined *)0x0) {\n    param_1 = &DAT_00051b45;\n  }\n  if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }\n  else {\n    if ((int)param_4 < 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }\n  if (param_7 == 0) {\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }\n  FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0002a9f0(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,\n            undefined4 param_6,int param_7)" identifier (parameter_list "(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,\n            undefined4 param_6,int param_7)" ( (parameter_declaration "undefined *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "int param_7" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  char *pcVar2;\n  char local_46 [14];\n  char local_38 [14];\n  char local_2a [22];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a9ff;\n  if (param_1 == (undefined *)0x0) {\n    param_1 = &DAT_00051b45;\n  }\n  if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }\n  else {\n    if ((int)param_4 < 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }\n  if (param_7 == 0) {\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }\n  FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char local_46 [14];" primitive_type (array_declarator "local_46 [14]" identifier [ number_literal ]) ;) (declaration "char local_38 [14];" primitive_type (array_declarator "local_38 [14]" identifier [ number_literal ]) ;) (declaration "char local_2a [22];" primitive_type (array_declarator "local_2a [22]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2a9ff;" (assignment_expression "uStack_14 = 0x2a9ff" identifier = number_literal) ;) (if_statement "if (param_1 == (undefined *)0x0) {\n    param_1 = &DAT_00051b45;\n  }" if (parenthesized_expression "(param_1 == (undefined *)0x0)" ( (binary_expression "param_1 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1 = &DAT_00051b45;\n  }" { (expression_statement "param_1 = &DAT_00051b45;" (assignment_expression "param_1 = &DAT_00051b45" identifier = (pointer_expression "&DAT_00051b45" & identifier)) ;) })) (if_statement "if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }\n  else {\n    if ((int)param_4 < 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }" if (parenthesized_expression "(((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2))" ( (binary_expression "((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)" (parenthesized_expression "((int)param_2 < (int)param_3)" ( (binary_expression "(int)param_2 < (int)param_3" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)param_4 < (int)param_2)" ( (binary_expression "(int)param_4 < (int)param_2" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }" { (if_statement "if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }" if (parenthesized_expression "((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff))))" ( (binary_expression "(param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))" (parenthesized_expression "(param_3 + 0x3ff < (char *)0x7ff)" ( (binary_expression "param_3 + 0x3ff < (char *)0x7ff" (binary_expression "param_3 + 0x3ff" identifier + number_literal) < (cast_expression "(char *)0x7ff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))" ( (parenthesized_expression "(param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff))" ( (binary_expression "param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)" (binary_expression "param_2 + 0x3ff < (char *)0x7ff" (binary_expression "param_2 + 0x3ff" identifier + number_literal) < (cast_expression "(char *)0x7ff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(param_4 + 0x3ff < (char *)0x7ff)" ( (binary_expression "param_4 + 0x3ff < (char *)0x7ff" (binary_expression "param_4 + 0x3ff" identifier + number_literal) < (cast_expression "(char *)0x7ff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (compound_statement "{\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }" { (expression_statement "uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);" (assignment_expression "uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5)" identifier = (call_expression "dcgettext(0,"%s out of range (%d is not between %d and %d)",5)" identifier (argument_list "(0,"%s out of range (%d is not between %d and %d)",5)" ( number_literal , (string_literal ""%s out of range (%d is not between %d and %d)"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }" else (compound_statement "{\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }" { (expression_statement "sprintf(local_46,"%08lx",param_2);" (call_expression "sprintf(local_46,"%08lx",param_2)" identifier (argument_list "(local_46,"%08lx",param_2)" ( identifier , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "sprintf(local_38,"%08lx",param_3);" (call_expression "sprintf(local_38,"%08lx",param_3)" identifier (argument_list "(local_38,"%08lx",param_3)" ( identifier , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "sprintf(local_2a,"%08lx",param_4);" (call_expression "sprintf(local_2a,"%08lx",param_4)" identifier (argument_list "(local_2a,"%08lx",param_4)" ( identifier , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);" (assignment_expression "uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" identifier = (call_expression "dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" identifier (argument_list "(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" ( number_literal , (string_literal ""%s out of range (0x%s is not between 0x%s and 0x%s)"" " string_content ") , number_literal )))) ;) (expression_statement "param_2 = local_46;" (assignment_expression "param_2 = local_46" identifier = identifier) ;) (expression_statement "param_3 = local_38;" (assignment_expression "param_3 = local_38" identifier = identifier) ;) (expression_statement "param_4 = local_2a;" (assignment_expression "param_4 = local_2a" identifier = identifier) ;) }))) }) (else_clause "else {\n    if ((int)param_4 < 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }" else (compound_statement "{\n    if ((int)param_4 < 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }" { (if_statement "if ((int)param_4 < 2) {\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }" if (parenthesized_expression "((int)param_4 < 2)" ( (binary_expression "(int)param_4 < 2" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }" { comment (expression_statement "FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);" (call_expression "FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1)" identifier (argument_list "("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1)" ( (string_literal ""../../gas/messages.c"" " string_content ") , number_literal , (string_literal ""as_internal_value_out_of_range"" " string_content ") , identifier ))) ;) })) (expression_statement "pcVar2 = (char *)0x5;" (assignment_expression "pcVar2 = (char *)0x5" identifier = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);" (assignment_expression "uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5)" identifier = (call_expression "dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5)" identifier (argument_list "(0,"%s out of domain (%d is not a multiple of %d)",5)" ( number_literal , (string_literal ""%s out of domain (%d is not a multiple of %d)"" " string_content ") , number_literal )))) ;) (expression_statement "param_3 = (char *)(-(int)param_4 & (uint)param_4);" (assignment_expression "param_3 = (char *)(-(int)param_4 & (uint)param_4)" identifier = (cast_expression "(char *)(-(int)param_4 & (uint)param_4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(int)param_4 & (uint)param_4)" ( (binary_expression "-(int)param_4 & (uint)param_4" (unary_expression "-(int)param_4" - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) & (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "param_4 = pcVar2;" (assignment_expression "param_4 = pcVar2" identifier = identifier) ;) }))) (if_statement "if (param_7 == 0) {\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }" { (expression_statement "FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);" (call_expression "FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" identifier (argument_list "(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);" (call_expression "FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" identifier (argument_list "(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3\nas_internal_value_out_of_range\n          (char *prefix,offsetT val,offsetT min,offsetT max,char *file,uint line,int bad)\n\n{\n  char *format;\n  char *pcVar1;\n  char val_buf [14];\n  char min_buf [14];\n  char max_buf [14];\n  \n  if (prefix == (char *)0x0) {\n    prefix = "";\n  }\n  if ((val < min) || (max < val)) {\n    if ((min + 0x3ffU < 0x7ff) && ((val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff)))) {\n      format = (char *)dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(val_buf,"%08lx",val);\n      sprintf(min_buf,"%08lx",min);\n      sprintf(max_buf,"%08lx",max);\n      format = (char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      val = (offsetT)val_buf;\n      min = (offsetT)min_buf;\n      max = (offsetT)max_buf;\n    }\n  }\n  else {\n    if (max < 2) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/messages.c",0x18d,"as_internal_value_out_of_range");\n    }\n    pcVar1 = (char *)0x5;\n    format = (char *)dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    min = (offsetT)(-max & max);\n    max = (offsetT)pcVar1;\n  }\n  if (bad == 0) {\n    as_warn_where(file,line,format,prefix,val,min,max);\n    return;\n  }\n  as_bad_where(file,line,format,prefix,val,min,max);\n  return;\n}\n\n" comment (function_definition "void __regparm3\nas_internal_value_out_of_range\n          (char *prefix,offsetT val,offsetT min,offsetT max,char *file,uint line,int bad)\n\n{\n  char *format;\n  char *pcVar1;\n  char val_buf [14];\n  char min_buf [14];\n  char max_buf [14];\n  \n  if (prefix == (char *)0x0) {\n    prefix = "";\n  }\n  if ((val < min) || (max < val)) {\n    if ((min + 0x3ffU < 0x7ff) && ((val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff)))) {\n      format = (char *)dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(val_buf,"%08lx",val);\n      sprintf(min_buf,"%08lx",min);\n      sprintf(max_buf,"%08lx",max);\n      format = (char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      val = (offsetT)val_buf;\n      min = (offsetT)min_buf;\n      max = (offsetT)max_buf;\n    }\n  }\n  else {\n    if (max < 2) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/messages.c",0x18d,"as_internal_value_out_of_range");\n    }\n    pcVar1 = (char *)0x5;\n    format = (char *)dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    min = (offsetT)(-max & max);\n    max = (offsetT)pcVar1;\n  }\n  if (bad == 0) {\n    as_warn_where(file,line,format,prefix,val,min,max);\n    return;\n  }\n  as_bad_where(file,line,format,prefix,val,min,max);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "as_internal_value_out_of_range\n          (char *prefix,offsetT val,offsetT min,offsetT max,char *file,uint line,int bad)" identifier (parameter_list "(char *prefix,offsetT val,offsetT min,offsetT max,char *file,uint line,int bad)" ( (parameter_declaration "char *prefix" primitive_type (pointer_declarator "*prefix" * identifier)) , (parameter_declaration "offsetT val" type_identifier identifier) , (parameter_declaration "offsetT min" type_identifier identifier) , (parameter_declaration "offsetT max" type_identifier identifier) , (parameter_declaration "char *file" primitive_type (pointer_declarator "*file" * identifier)) , (parameter_declaration "uint line" type_identifier identifier) , (parameter_declaration "int bad" primitive_type identifier) ))) (compound_statement "{\n  char *format;\n  char *pcVar1;\n  char val_buf [14];\n  char min_buf [14];\n  char max_buf [14];\n  \n  if (prefix == (char *)0x0) {\n    prefix = "";\n  }\n  if ((val < min) || (max < val)) {\n    if ((min + 0x3ffU < 0x7ff) && ((val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff)))) {\n      format = (char *)dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(val_buf,"%08lx",val);\n      sprintf(min_buf,"%08lx",min);\n      sprintf(max_buf,"%08lx",max);\n      format = (char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      val = (offsetT)val_buf;\n      min = (offsetT)min_buf;\n      max = (offsetT)max_buf;\n    }\n  }\n  else {\n    if (max < 2) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/messages.c",0x18d,"as_internal_value_out_of_range");\n    }\n    pcVar1 = (char *)0x5;\n    format = (char *)dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    min = (offsetT)(-max & max);\n    max = (offsetT)pcVar1;\n  }\n  if (bad == 0) {\n    as_warn_where(file,line,format,prefix,val,min,max);\n    return;\n  }\n  as_bad_where(file,line,format,prefix,val,min,max);\n  return;\n}" { (declaration "char *format;" primitive_type (pointer_declarator "*format" * identifier) ;) (declaration "char *pcVar1;" primitive_type (pointer_declarator "*pcVar1" * identifier) ;) (declaration "char val_buf [14];" primitive_type (array_declarator "val_buf [14]" identifier [ number_literal ]) ;) (declaration "char min_buf [14];" primitive_type (array_declarator "min_buf [14]" identifier [ number_literal ]) ;) (declaration "char max_buf [14];" primitive_type (array_declarator "max_buf [14]" identifier [ number_literal ]) ;) (if_statement "if (prefix == (char *)0x0) {\n    prefix = "";\n  }" if (parenthesized_expression "(prefix == (char *)0x0)" ( (binary_expression "prefix == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    prefix = "";\n  }" { (expression_statement "prefix = "";" (assignment_expression "prefix = """ identifier = (string_literal """" " ")) ;) })) (if_statement "if ((val < min) || (max < val)) {\n    if ((min + 0x3ffU < 0x7ff) && ((val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff)))) {\n      format = (char *)dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(val_buf,"%08lx",val);\n      sprintf(min_buf,"%08lx",min);\n      sprintf(max_buf,"%08lx",max);\n      format = (char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      val = (offsetT)val_buf;\n      min = (offsetT)min_buf;\n      max = (offsetT)max_buf;\n    }\n  }\n  else {\n    if (max < 2) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/messages.c",0x18d,"as_internal_value_out_of_range");\n    }\n    pcVar1 = (char *)0x5;\n    format = (char *)dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    min = (offsetT)(-max & max);\n    max = (offsetT)pcVar1;\n  }" if (parenthesized_expression "((val < min) || (max < val))" ( (binary_expression "(val < min) || (max < val)" (parenthesized_expression "(val < min)" ( (binary_expression "val < min" identifier < identifier) )) || (parenthesized_expression "(max < val)" ( (binary_expression "max < val" identifier < identifier) ))) )) (compound_statement "{\n    if ((min + 0x3ffU < 0x7ff) && ((val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff)))) {\n      format = (char *)dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(val_buf,"%08lx",val);\n      sprintf(min_buf,"%08lx",min);\n      sprintf(max_buf,"%08lx",max);\n      format = (char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      val = (offsetT)val_buf;\n      min = (offsetT)min_buf;\n      max = (offsetT)max_buf;\n    }\n  }" { (if_statement "if ((min + 0x3ffU < 0x7ff) && ((val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff)))) {\n      format = (char *)dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(val_buf,"%08lx",val);\n      sprintf(min_buf,"%08lx",min);\n      sprintf(max_buf,"%08lx",max);\n      format = (char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      val = (offsetT)val_buf;\n      min = (offsetT)min_buf;\n      max = (offsetT)max_buf;\n    }" if (parenthesized_expression "((min + 0x3ffU < 0x7ff) && ((val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff))))" ( (binary_expression "(min + 0x3ffU < 0x7ff) && ((val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff)))" (parenthesized_expression "(min + 0x3ffU < 0x7ff)" ( (binary_expression "min + 0x3ffU < 0x7ff" (binary_expression "min + 0x3ffU" identifier + number_literal) < number_literal) )) && (parenthesized_expression "((val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff)))" ( (parenthesized_expression "(val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff))" ( (binary_expression "val + 0x3ffU < 0x7ff && (max + 0x3ffU < 0x7ff)" (binary_expression "val + 0x3ffU < 0x7ff" (binary_expression "val + 0x3ffU" identifier + number_literal) < number_literal) && (parenthesized_expression "(max + 0x3ffU < 0x7ff)" ( (binary_expression "max + 0x3ffU < 0x7ff" (binary_expression "max + 0x3ffU" identifier + number_literal) < number_literal) ))) )) ))) )) (compound_statement "{\n      format = (char *)dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }" { (expression_statement "format = (char *)dcgettext(0,"%s out of range (%d is not between %d and %d)",5);" (assignment_expression "format = (char *)dcgettext(0,"%s out of range (%d is not between %d and %d)",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s out of range (%d is not between %d and %d)",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s out of range (%d is not between %d and %d)",5)" identifier (argument_list "(0,"%s out of range (%d is not between %d and %d)",5)" ( number_literal , (string_literal ""%s out of range (%d is not between %d and %d)"" " string_content ") , number_literal ))))) ;) }) (else_clause "else {\n      sprintf(val_buf,"%08lx",val);\n      sprintf(min_buf,"%08lx",min);\n      sprintf(max_buf,"%08lx",max);\n      format = (char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      val = (offsetT)val_buf;\n      min = (offsetT)min_buf;\n      max = (offsetT)max_buf;\n    }" else (compound_statement "{\n      sprintf(val_buf,"%08lx",val);\n      sprintf(min_buf,"%08lx",min);\n      sprintf(max_buf,"%08lx",max);\n      format = (char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      val = (offsetT)val_buf;\n      min = (offsetT)min_buf;\n      max = (offsetT)max_buf;\n    }" { (expression_statement "sprintf(val_buf,"%08lx",val);" (call_expression "sprintf(val_buf,"%08lx",val)" identifier (argument_list "(val_buf,"%08lx",val)" ( identifier , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "sprintf(min_buf,"%08lx",min);" (call_expression "sprintf(min_buf,"%08lx",min)" identifier (argument_list "(min_buf,"%08lx",min)" ( identifier , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "sprintf(max_buf,"%08lx",max);" (call_expression "sprintf(max_buf,"%08lx",max)" identifier (argument_list "(max_buf,"%08lx",max)" ( identifier , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "format = (char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);" (assignment_expression "format = (char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" identifier (argument_list "(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" ( number_literal , (string_literal ""%s out of range (0x%s is not between 0x%s and 0x%s)"" " string_content ") , number_literal ))))) ;) (expression_statement "val = (offsetT)val_buf;" (assignment_expression "val = (offsetT)val_buf" identifier = (cast_expression "(offsetT)val_buf" ( (type_descriptor "offsetT" type_identifier) ) identifier)) ;) (expression_statement "min = (offsetT)min_buf;" (assignment_expression "min = (offsetT)min_buf" identifier = (cast_expression "(offsetT)min_buf" ( (type_descriptor "offsetT" type_identifier) ) identifier)) ;) (expression_statement "max = (offsetT)max_buf;" (assignment_expression "max = (offsetT)max_buf" identifier = (cast_expression "(offsetT)max_buf" ( (type_descriptor "offsetT" type_identifier) ) identifier)) ;) }))) }) (else_clause "else {\n    if (max < 2) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/messages.c",0x18d,"as_internal_value_out_of_range");\n    }\n    pcVar1 = (char *)0x5;\n    format = (char *)dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    min = (offsetT)(-max & max);\n    max = (offsetT)pcVar1;\n  }" else (compound_statement "{\n    if (max < 2) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/messages.c",0x18d,"as_internal_value_out_of_range");\n    }\n    pcVar1 = (char *)0x5;\n    format = (char *)dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    min = (offsetT)(-max & max);\n    max = (offsetT)pcVar1;\n  }" { (if_statement "if (max < 2) {\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/messages.c",0x18d,"as_internal_value_out_of_range");\n    }" if (parenthesized_expression "(max < 2)" ( (binary_expression "max < 2" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      as_abort("../../gas/messages.c",0x18d,"as_internal_value_out_of_range");\n    }" { comment (expression_statement "as_abort("../../gas/messages.c",0x18d,"as_internal_value_out_of_range");" (call_expression "as_abort("../../gas/messages.c",0x18d,"as_internal_value_out_of_range")" identifier (argument_list "("../../gas/messages.c",0x18d,"as_internal_value_out_of_range")" ( (string_literal ""../../gas/messages.c"" " string_content ") , number_literal , (string_literal ""as_internal_value_out_of_range"" " string_content ") ))) ;) })) (expression_statement "pcVar1 = (char *)0x5;" (assignment_expression "pcVar1 = (char *)0x5" identifier = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "format = (char *)dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);" (assignment_expression "format = (char *)dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5)" identifier = (cast_expression "(char *)dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5)" identifier (argument_list "(0,"%s out of domain (%d is not a multiple of %d)",5)" ( number_literal , (string_literal ""%s out of domain (%d is not a multiple of %d)"" " string_content ") , number_literal ))))) ;) (expression_statement "min = (offsetT)(-max & max);" (assignment_expression "min = (offsetT)(-max & max)" identifier = (call_expression "(offsetT)(-max & max)" (parenthesized_expression "(offsetT)" ( identifier )) (argument_list "(-max & max)" ( (binary_expression "-max & max" (unary_expression "-max" - identifier) & identifier) )))) ;) (expression_statement "max = (offsetT)pcVar1;" (assignment_expression "max = (offsetT)pcVar1" identifier = (cast_expression "(offsetT)pcVar1" ( (type_descriptor "offsetT" type_identifier) ) identifier)) ;) }))) (if_statement "if (bad == 0) {\n    as_warn_where(file,line,format,prefix,val,min,max);\n    return;\n  }" if (parenthesized_expression "(bad == 0)" ( (binary_expression "bad == 0" identifier == number_literal) )) (compound_statement "{\n    as_warn_where(file,line,format,prefix,val,min,max);\n    return;\n  }" { (expression_statement "as_warn_where(file,line,format,prefix,val,min,max);" (call_expression "as_warn_where(file,line,format,prefix,val,min,max)" identifier (argument_list "(file,line,format,prefix,val,min,max)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "as_bad_where(file,line,format,prefix,val,min,max);" (call_expression "as_bad_where(file,line,format,prefix,val,min,max)" identifier (argument_list "(file,line,format,prefix,val,min,max)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3\nFUN_0002a9f0(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,\n            undefined4 param_6,int param_7)\n\n{\n  undefined4 uVar1;\n  char *pcVar2;\n  char local_46 [14];\n  char local_38 [14];\n  char local_2a [22];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a9ff;\n  if (param_1 == (undefined *)0x0) {\n    param_1 = &DAT_00051b45;\n  }\n  if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }\n  else {\n    if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }\n  if (param_7 == 0) {\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }\n  FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n  return;\n}\n\n" (function_definition "void __regparm3\nFUN_0002a9f0(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,\n            undefined4 param_6,int param_7)\n\n{\n  undefined4 uVar1;\n  char *pcVar2;\n  char local_46 [14];\n  char local_38 [14];\n  char local_2a [22];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a9ff;\n  if (param_1 == (undefined *)0x0) {\n    param_1 = &DAT_00051b45;\n  }\n  if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }\n  else {\n    if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }\n  if (param_7 == 0) {\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }\n  FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0002a9f0(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,\n            undefined4 param_6,int param_7)" identifier (parameter_list "(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,\n            undefined4 param_6,int param_7)" ( (parameter_declaration "undefined *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "char *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined4 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "int param_7" primitive_type identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  char *pcVar2;\n  char local_46 [14];\n  char local_38 [14];\n  char local_2a [22];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a9ff;\n  if (param_1 == (undefined *)0x0) {\n    param_1 = &DAT_00051b45;\n  }\n  if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }\n  else {\n    if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }\n  if (param_7 == 0) {\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }\n  FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char local_46 [14];" primitive_type (array_declarator "local_46 [14]" identifier [ number_literal ]) ;) (declaration "char local_38 [14];" primitive_type (array_declarator "local_38 [14]" identifier [ number_literal ]) ;) (declaration "char local_2a [22];" primitive_type (array_declarator "local_2a [22]" identifier [ number_literal ]) ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2a9ff;" (assignment_expression "uStack_14 = 0x2a9ff" identifier = number_literal) ;) (if_statement "if (param_1 == (undefined *)0x0) {\n    param_1 = &DAT_00051b45;\n  }" if (parenthesized_expression "(param_1 == (undefined *)0x0)" ( (binary_expression "param_1 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    param_1 = &DAT_00051b45;\n  }" { (expression_statement "param_1 = &DAT_00051b45;" (assignment_expression "param_1 = &DAT_00051b45" identifier = (pointer_expression "&DAT_00051b45" & identifier)) ;) })) (if_statement "if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }\n  else {\n    if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }" if (parenthesized_expression "(((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2))" ( (binary_expression "((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)" (parenthesized_expression "((int)param_2 < (int)param_3)" ( (binary_expression "(int)param_2 < (int)param_3" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) )) || (parenthesized_expression "((int)param_4 < (int)param_2)" ( (binary_expression "(int)param_4 < (int)param_2" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (compound_statement "{\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }" { (if_statement "if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }" if (parenthesized_expression "((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff))))" ( (binary_expression "(param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))" (parenthesized_expression "(param_3 + 0x3ff < (char *)0x7ff)" ( (binary_expression "param_3 + 0x3ff < (char *)0x7ff" (binary_expression "param_3 + 0x3ff" identifier + number_literal) < (cast_expression "(char *)0x7ff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))" ( (parenthesized_expression "(param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff))" ( (binary_expression "param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)" (binary_expression "param_2 + 0x3ff < (char *)0x7ff" (binary_expression "param_2 + 0x3ff" identifier + number_literal) < (cast_expression "(char *)0x7ff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) && (parenthesized_expression "(param_4 + 0x3ff < (char *)0x7ff)" ( (binary_expression "param_4 + 0x3ff < (char *)0x7ff" (binary_expression "param_4 + 0x3ff" identifier + number_literal) < (cast_expression "(char *)0x7ff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) ))) )) (compound_statement "{\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }" { (expression_statement "uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);" (assignment_expression "uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5)" identifier = (call_expression "dcgettext(0,"%s out of range (%d is not between %d and %d)",5)" identifier (argument_list "(0,"%s out of range (%d is not between %d and %d)",5)" ( number_literal , (string_literal ""%s out of range (%d is not between %d and %d)"" " string_content ") , number_literal )))) ;) }) (else_clause "else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }" else (compound_statement "{\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }" { (expression_statement "sprintf(local_46,"%08lx",param_2);" (call_expression "sprintf(local_46,"%08lx",param_2)" identifier (argument_list "(local_46,"%08lx",param_2)" ( identifier , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "sprintf(local_38,"%08lx",param_3);" (call_expression "sprintf(local_38,"%08lx",param_3)" identifier (argument_list "(local_38,"%08lx",param_3)" ( identifier , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "sprintf(local_2a,"%08lx",param_4);" (call_expression "sprintf(local_2a,"%08lx",param_4)" identifier (argument_list "(local_2a,"%08lx",param_4)" ( identifier , (string_literal ""%08lx"" " string_content ") , identifier ))) ;) (expression_statement "uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);" (assignment_expression "uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" identifier = (call_expression "dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" identifier (argument_list "(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" ( number_literal , (string_literal ""%s out of range (0x%s is not between 0x%s and 0x%s)"" " string_content ") , number_literal )))) ;) (expression_statement "param_2 = local_46;" (assignment_expression "param_2 = local_46" identifier = identifier) ;) (expression_statement "param_3 = local_38;" (assignment_expression "param_3 = local_38" identifier = identifier) ;) (expression_statement "param_4 = local_2a;" (assignment_expression "param_4 = local_2a" identifier = identifier) ;) }))) }) (else_clause "else {\n    if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }" else (compound_statement "{\n    if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }" { (if_statement "if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }" if (parenthesized_expression "((int)param_4 < 2)" ( (binary_expression "(int)param_4 < 2" (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }" { (expression_statement "FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);" (call_expression "FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1)" identifier (argument_list "("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1)" ( (string_literal ""../../gas/messages.c"" " string_content ") , number_literal , (string_literal ""as_internal_value_out_of_range"" " string_content ") , identifier ))) ;) })) (expression_statement "pcVar2 = (char *)0x5;" (assignment_expression "pcVar2 = (char *)0x5" identifier = (cast_expression "(char *)0x5" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);" (assignment_expression "uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5)" identifier = (call_expression "dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5)" identifier (argument_list "(0,"%s out of domain (%d is not a multiple of %d)",5)" ( number_literal , (string_literal ""%s out of domain (%d is not a multiple of %d)"" " string_content ") , number_literal )))) ;) (expression_statement "param_3 = (char *)(-(int)param_4 & (uint)param_4);" (assignment_expression "param_3 = (char *)(-(int)param_4 & (uint)param_4)" identifier = (cast_expression "(char *)(-(int)param_4 & (uint)param_4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(-(int)param_4 & (uint)param_4)" ( (binary_expression "-(int)param_4 & (uint)param_4" (unary_expression "-(int)param_4" - (cast_expression "(int)param_4" ( (type_descriptor "int" primitive_type) ) identifier)) & (cast_expression "(uint)param_4" ( (type_descriptor "uint" type_identifier) ) identifier)) )))) ;) (expression_statement "param_4 = pcVar2;" (assignment_expression "param_4 = pcVar2" identifier = identifier) ;) }))) (if_statement "if (param_7 == 0) {\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }" if (parenthesized_expression "(param_7 == 0)" ( (binary_expression "param_7 == 0" identifier == number_literal) )) (compound_statement "{\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }" { (expression_statement "FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);" (call_expression "FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" identifier (argument_list "(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);" (call_expression "FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" identifier (argument_list "(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (binary_expression IDENT + LIT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) && (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , LIT , (string_literal " string_content ") , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)) & (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void __regparm3\nFUN_0002a9f0(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,\n            undefined4 param_6,int param_7)\n\n{\n  undefined4 uVar1;\n  char *pcVar2;\n  char local_46 [14];\n  char local_38 [14];\n  char local_2a [22];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a9ff;\n  if (param_1 == (undefined *)0x0) {\n    param_1 = &DAT_00051b45;\n  }\n  if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }\n  else {\n    if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }\n  if (param_7 == 0) {\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }\n  FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0002a9f0(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,\n            undefined4 param_6,int param_7)" (identifier "FUN_0002a9f0") (parameter_list "(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,\n            undefined4 param_6,int param_7)" (( "(") (parameter_declaration "undefined *param_1" (type_identifier "undefined") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "char *param_4" (primitive_type "char") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "undefined4 param_5" (type_identifier "undefined4") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  char *pcVar2;\n  char local_46 [14];\n  char local_38 [14];\n  char local_2a [22];\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2a9ff;\n  if (param_1 == (undefined *)0x0) {\n    param_1 = &DAT_00051b45;\n  }\n  if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }\n  else {\n    if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }\n  if (param_7 == 0) {\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }\n  FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "char local_46 [14];" (primitive_type "char") (array_declarator "local_46 [14]" (identifier "local_46") ([ "[") (number_literal "14") (] "]")) (; ";")) (declaration "char local_38 [14];" (primitive_type "char") (array_declarator "local_38 [14]" (identifier "local_38") ([ "[") (number_literal "14") (] "]")) (; ";")) (declaration "char local_2a [22];" (primitive_type "char") (array_declarator "local_2a [22]" (identifier "local_2a") ([ "[") (number_literal "22") (] "]")) (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x2a9ff;" (assignment_expression "uStack_14 = 0x2a9ff" (identifier "uStack_14") (= "=") (number_literal "0x2a9ff")) (; ";")) (if_statement "if (param_1 == (undefined *)0x0) {\n    param_1 = &DAT_00051b45;\n  }" (if "if") (parenthesized_expression "(param_1 == (undefined *)0x0)" (( "(") (binary_expression "param_1 == (undefined *)0x0" (identifier "param_1") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    param_1 = &DAT_00051b45;\n  }" ({ "{") (expression_statement "param_1 = &DAT_00051b45;" (assignment_expression "param_1 = &DAT_00051b45" (identifier "param_1") (= "=") (pointer_expression "&DAT_00051b45" (& "&") (identifier "DAT_00051b45"))) (; ";")) (} "}"))) (if_statement "if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }\n  else {\n    if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }" (if "if") (parenthesized_expression "(((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2))" (( "(") (binary_expression "((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)" (parenthesized_expression "((int)param_2 < (int)param_3)" (( "(") (binary_expression "(int)param_2 < (int)param_3" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (< "<") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) () ")")) (|| "||") (parenthesized_expression "((int)param_4 < (int)param_2)" (( "(") (binary_expression "(int)param_4 < (int)param_2" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")"))) () ")")) (compound_statement "{\n    if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }\n  }" ({ "{") (if_statement "if ((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }\n    else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }" (if "if") (parenthesized_expression "((param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff))))" (( "(") (binary_expression "(param_3 + 0x3ff < (char *)0x7ff) &&\n       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))" (parenthesized_expression "(param_3 + 0x3ff < (char *)0x7ff)" (( "(") (binary_expression "param_3 + 0x3ff < (char *)0x7ff" (binary_expression "param_3 + 0x3ff" (identifier "param_3") (+ "+") (number_literal "0x3ff")) (< "<") (cast_expression "(char *)0x7ff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7ff"))) () ")")) (&& "&&") (parenthesized_expression "((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))" (( "(") (parenthesized_expression "(param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff))" (( "(") (binary_expression "param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)" (binary_expression "param_2 + 0x3ff < (char *)0x7ff" (binary_expression "param_2 + 0x3ff" (identifier "param_2") (+ "+") (number_literal "0x3ff")) (< "<") (cast_expression "(char *)0x7ff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7ff"))) (&& "&&") (parenthesized_expression "(param_4 + 0x3ff < (char *)0x7ff)" (( "(") (binary_expression "param_4 + 0x3ff < (char *)0x7ff" (binary_expression "param_4 + 0x3ff" (identifier "param_4") (+ "+") (number_literal "0x3ff")) (< "<") (cast_expression "(char *)0x7ff" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7ff"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);\n    }" ({ "{") (expression_statement "uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);" (assignment_expression "uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"%s out of range (%d is not between %d and %d)",5)" (identifier "dcgettext") (argument_list "(0,"%s out of range (%d is not between %d and %d)",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s out of range (%d is not between %d and %d)"" (" """) (string_content "%s out of range (%d is not between %d and %d)") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }" (else "else") (compound_statement "{\n      sprintf(local_46,"%08lx",param_2);\n      sprintf(local_38,"%08lx",param_3);\n      sprintf(local_2a,"%08lx",param_4);\n      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);\n      param_2 = local_46;\n      param_3 = local_38;\n      param_4 = local_2a;\n    }" ({ "{") (expression_statement "sprintf(local_46,"%08lx",param_2);" (call_expression "sprintf(local_46,"%08lx",param_2)" (identifier "sprintf") (argument_list "(local_46,"%08lx",param_2)" (( "(") (identifier "local_46") (, ",") (string_literal ""%08lx"" (" """) (string_content "%08lx") (" """)) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "sprintf(local_38,"%08lx",param_3);" (call_expression "sprintf(local_38,"%08lx",param_3)" (identifier "sprintf") (argument_list "(local_38,"%08lx",param_3)" (( "(") (identifier "local_38") (, ",") (string_literal ""%08lx"" (" """) (string_content "%08lx") (" """)) (, ",") (identifier "param_3") () ")"))) (; ";")) (expression_statement "sprintf(local_2a,"%08lx",param_4);" (call_expression "sprintf(local_2a,"%08lx",param_4)" (identifier "sprintf") (argument_list "(local_2a,"%08lx",param_4)" (( "(") (identifier "local_2a") (, ",") (string_literal ""%08lx"" (" """) (string_content "%08lx") (" """)) (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);" (assignment_expression "uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" (identifier "dcgettext") (argument_list "(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s out of range (0x%s is not between 0x%s and 0x%s)"" (" """) (string_content "%s out of range (0x%s is not between 0x%s and 0x%s)") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "param_2 = local_46;" (assignment_expression "param_2 = local_46" (identifier "param_2") (= "=") (identifier "local_46")) (; ";")) (expression_statement "param_3 = local_38;" (assignment_expression "param_3 = local_38" (identifier "param_3") (= "=") (identifier "local_38")) (; ";")) (expression_statement "param_4 = local_2a;" (assignment_expression "param_4 = local_2a" (identifier "param_4") (= "=") (identifier "local_2a")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }" (else "else") (compound_statement "{\n    if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }\n    pcVar2 = (char *)0x5;\n    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);\n    param_3 = (char *)(-(int)param_4 & (uint)param_4);\n    param_4 = pcVar2;\n  }" ({ "{") (if_statement "if ((int)param_4 < 2) {\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }" (if "if") (parenthesized_expression "((int)param_4 < 2)" (( "(") (binary_expression "(int)param_4 < 2" (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n                    \n      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);\n    }" ({ "{") (expression_statement "FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);" (call_expression "FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1)" (identifier "FUN_0002a8d0") (argument_list "("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1)" (( "(") (string_literal ""../../gas/messages.c"" (" """) (string_content "../../gas/messages.c") (" """)) (, ",") (number_literal "0x18d") (, ",") (string_literal ""as_internal_value_out_of_range"" (" """) (string_content "as_internal_value_out_of_range") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar2 = (char *)0x5;" (assignment_expression "pcVar2 = (char *)0x5" (identifier "pcVar2") (= "=") (cast_expression "(char *)0x5" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x5"))) (; ";")) (expression_statement "uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);" (assignment_expression "uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5)" (identifier "uVar1") (= "=") (call_expression "dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5)" (identifier "dcgettext") (argument_list "(0,"%s out of domain (%d is not a multiple of %d)",5)" (( "(") (number_literal "0") (, ",") (string_literal ""%s out of domain (%d is not a multiple of %d)"" (" """) (string_content "%s out of domain (%d is not a multiple of %d)") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "param_3 = (char *)(-(int)param_4 & (uint)param_4);" (assignment_expression "param_3 = (char *)(-(int)param_4 & (uint)param_4)" (identifier "param_3") (= "=") (cast_expression "(char *)(-(int)param_4 & (uint)param_4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(-(int)param_4 & (uint)param_4)" (( "(") (binary_expression "-(int)param_4 & (uint)param_4" (unary_expression "-(int)param_4" (- "-") (cast_expression "(int)param_4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_4"))) (& "&") (cast_expression "(uint)param_4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_4"))) () ")")))) (; ";")) (expression_statement "param_4 = pcVar2;" (assignment_expression "param_4 = pcVar2" (identifier "param_4") (= "=") (identifier "pcVar2")) (; ";")) (} "}")))) (if_statement "if (param_7 == 0) {\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }" (if "if") (parenthesized_expression "(param_7 == 0)" (( "(") (binary_expression "param_7 == 0" (identifier "param_7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);\n    return;\n  }" ({ "{") (expression_statement "FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);" (call_expression "FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" (identifier "FUN_0002a740") (argument_list "(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" (( "(") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (identifier "uVar1") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);" (call_expression "FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" (identifier "FUN_0002a800") (argument_list "(param_5,param_6,uVar1,param_1,param_2,param_3,param_4)" (( "(") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (identifier "uVar1") (, ",") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void __regparm3
function_1
          (char *var_1,type_1 var_2,type_1 var_3,type_1 var_4,char *file,type_2 line,int var_8)

{
  char *format;
  char *pcVar1;
  char val_buf [14];
  char min_buf [14];
  char max_buf [14];
  
  if (var_1 == (char *)0x0) {
    var_1 = "";
  }
  if ((var_2 < var_3) || (var_4 < var_2)) {
    if ((var_3 + 0x3ffU < 0x7ff) && ((var_2 + 0x3ffU < 0x7ff && (var_4 + 0x3ffU < 0x7ff)))) {
      format = (char *)var_5(0,"%s out of range (%d is not between %d and %d)",5);
    }
    else {
      var_6(val_buf,"%08lx",var_2);
      var_6(min_buf,"%08lx",var_3);
      var_6(max_buf,"%08lx",var_4);
      format = (char *)var_5(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);
      var_2 = (type_1)val_buf;
      var_3 = (type_1)min_buf;
      var_4 = (type_1)max_buf;
    }
  }
  else {
    if (var_4 < 2) {
                    /* WARNING: Subroutine does not return */
      var_7("../../gas/messages.c",0x18d,"as_internal_value_out_of_range");
    }
    pcVar1 = (char *)0x5;
    format = (char *)var_5(0,"%s out of domain (%d is not a multiple of %d)",5);
    var_3 = (type_1)(-var_4 & var_4);
    var_4 = (type_1)pcVar1;
  }
  if (var_8 == 0) {
    var_9(file,line,format,var_1,var_2,var_3,var_4);
    return;
  }
  var_10(file,line,format,var_1,var_2,var_3,var_4);
  return;
}


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

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

void __regparm3
MASKED(undefined *param_1,char *param_2,char *param_3,char *param_4,undefined4 param_5,
            undefined4 param_6,int param_7)

{
  undefined4 uVar1;
  char *pcVar2;
  char local_46 [14];
  char local_38 [14];
  char local_2a [22];
  undefined4 uStack_14;
  
  uStack_14 = 0x2a9ff;
  if (param_1 == (undefined *)0x0) {
    param_1 = &DAT_00051b45;
  }
  if (((int)param_2 < (int)param_3) || ((int)param_4 < (int)param_2)) {
    if ((param_3 + 0x3ff < (char *)0x7ff) &&
       ((param_2 + 0x3ff < (char *)0x7ff && (param_4 + 0x3ff < (char *)0x7ff)))) {
      uVar1 = dcgettext(0,"%s out of range (%d is not between %d and %d)",5);
    }
    else {
      sprintf(local_46,"%08lx",param_2);
      sprintf(local_38,"%08lx",param_3);
      sprintf(local_2a,"%08lx",param_4);
      uVar1 = dcgettext(0,"%s out of range (0x%s is not between 0x%s and 0x%s)",5);
      param_2 = local_46;
      param_3 = local_38;
      param_4 = local_2a;
    }
  }
  else {
    if ((int)param_4 < 2) {
                    /* WARNING: Subroutine does not return */
      FUN_0002a8d0("../../gas/messages.c",0x18d,"as_internal_value_out_of_range",param_1);
    }
    pcVar2 = (char *)0x5;
    uVar1 = dcgettext(0,"%s out of domain (%d is not a multiple of %d)",5);
    param_3 = (char *)(-(int)param_4 & (uint)param_4);
    param_4 = pcVar2;
  }
  if (param_7 == 0) {
    FUN_0002a740(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);
    return;
  }
  FUN_0002a800(param_5,param_6,uVar1,param_1,param_2,param_3,param_4);
  return;
}

