
void warning_callback(bfd_link_info *info,char *warning,char *symbol,bfd *abfd,asection *section,
                     bfd_vma address)

{
  bfd *abfd_00;
  bfd_boolean bVar1;
  undefined8 uVar2;
  long lVar3;
  byte *pbVar4;
  byte *pbVar5;
  bool bVar6;
  bool bVar7;
  
  bVar6 = false;
  bVar7 = config.warn_multiple_gp == 0;
  if (bVar7) {
    lVar3 = 0x19;
    pbVar4 = (byte *)warning;
    pbVar5 = (byte *)"using multiple gp values";
    do {
      if (lVar3 == 0) break;
      lVar3 = lVar3 + -1;
      bVar6 = *pbVar4 < *pbVar5;
      bVar7 = *pbVar4 == *pbVar5;
      pbVar4 = pbVar4 + 1;
      pbVar5 = pbVar5 + 1;
    } while (bVar7);
    if ((!bVar6 && !bVar7) == bVar6) {
      return;
    }
  }
  if (section != (asection *)0x0) {
    uVar2 = dcgettext(0,"warning: ",5);
    einfo("%P: %C: %s%s\n",abfd,section,address,uVar2,warning);
    return;
  }
  if (abfd != (bfd *)0x0) {
    if (symbol != (char *)0x0) {
      bVar1 = symbol_warning(warning,symbol,abfd);
      if (bVar1 != 0) {
        return;
      }
      for (abfd_00 = info->input_bfds; abfd_00 != (bfd *)0x0; abfd_00 = (abfd_00->link).next) {
        if ((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)) {
          return;
        }
      }
    }
    uVar2 = dcgettext(0,"warning: ",5);
    einfo("%P: %pB: %s%s\n",abfd,uVar2,warning);
    return;
  }
  uVar2 = dcgettext(0,"warning: ",5);
  einfo("%P: %s%s\n",uVar2,warning);
  return;
}



void FUN_0011f960(long param_1,byte *param_2,long param_3,long param_4,long param_5,
                 undefined8 param_6)

{
  int iVar1;
  undefined8 uVar2;
  long lVar3;
  byte *pbVar4;
  byte *pbVar5;
  bool bVar6;
  bool bVar7;
  
  bVar6 = false;
  bVar7 = DAT_001aaf00 == 0;
  if (bVar7) {
    lVar3 = 0x19;
    pbVar4 = param_2;
    pbVar5 = (byte *)"using multiple gp values";
    do {
      if (lVar3 == 0) break;
      lVar3 = lVar3 + -1;
      bVar6 = *pbVar4 < *pbVar5;
      bVar7 = *pbVar4 == *pbVar5;
      pbVar4 = pbVar4 + 1;
      pbVar5 = pbVar5 + 1;
    } while (bVar7);
    if ((!bVar6 && !bVar7) == bVar6) {
      return;
    }
  }
  if (param_5 != 0) {
    uVar2 = dcgettext(0,"warning: ",5);
    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);
    return;
  }
  if (param_4 != 0) {
    if (param_3 != 0) {
      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);
      if (iVar1 != 0) {
        return;
      }
      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {
        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {
          return;
        }
      }
    }
    uVar2 = dcgettext(0,"warning: ",5);
    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);
    return;
  }
  uVar2 = dcgettext(0,"warning: ",5);
  FUN_00125230("%P: %s%s\n",uVar2,param_2);
  return;
}


PUSH R15
MOV R15,RDI
PUSH R14
PUSH R13
PUSH R12
MOV R12,RSI
PUSH RBP
MOV RBP,RCX
PUSH RBX
SUB RSP,0x8
MOV EAX,dword ptr [0x001aaf00]
TEST EAX,EAX
JNZ 0x0011f99d
MOV ECX,0x19
LEA RDI,[0x144ec9]
CMPSB.REPE RDI,RSI
SETA CL
SBB CL,0x0
TEST CL,CL
JZ 0x0011fa80
MOV R14,R9
MOV RBX,R8
MOV R13,RDX
TEST R8,R8
JZ 0x0011f9f0
MOV EDX,0x5
LEA RSI,[0x146320]
XOR EDI,EDI
CALL 0x001092e0
ADD RSP,0x8
MOV R9,R12
MOV RCX,R14
MOV R8,RAX
MOV RDX,RBX
MOV RSI,RBP
POP RBX
LEA RDI,[0x144ee2]
POP RBP
XOR EAX,EAX
POP R12
POP R13
POP R14
POP R15
JMP 0x00125230
TEST RBP,RBP
JZ 0x0011fa90
TEST RDX,RDX
JZ 0x0011fa43
MOV RDX,RBP
MOV RSI,R13
MOV RDI,R12
CALL 0x0011f3c0
TEST EAX,EAX
JNZ 0x0011fa80
MOV RBX,qword ptr [R15 + 0x60]
TEST RBX,RBX
JZ 0x0011fa43
NOP dword ptr [RAX]
CMP RBP,RBX
JZ 0x0011fa37
MOV RDX,RBX
MOV RSI,R13
MOV RDI,R12
CALL 0x0011f3c0
TEST EAX,EAX
JNZ 0x0011fa80
MOV RBX,qword ptr [RBX + 0xf0]
TEST RBX,RBX
JNZ 0x0011fa20
MOV EDX,0x5
LEA RSI,[0x146320]
XOR EDI,EDI
CALL 0x001092e0
ADD RSP,0x8
MOV RCX,R12
MOV RSI,RBP
POP RBX
MOV RDX,RAX
POP RBP
XOR EAX,EAX
POP R12
LEA RDI,[0x144efa]
POP R13
POP R14
POP R15
JMP 0x00125230
ADD RSP,0x8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EDX,0x5
LEA RSI,[0x146320]
XOR EDI,EDI
CALL 0x001092e0
ADD RSP,0x8
MOV RDX,R12
LEA RDI,[0x144ef0]
POP RBX
MOV RSI,RAX
POP RBP
XOR EAX,EAX
POP R12
POP R13
POP R14
POP R15
JMP 0x00125230
(translation_unit "void FUN_0011f960(long param_1,byte *param_2,long param_3,long param_4,long param_5,\n                 undefined8 param_6)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  \n  bVar6 = false;\n  bVar7 = DAT_001aaf00 == 0;\n  if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }\n  if (param_5 != 0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }\n  if (param_4 != 0) {\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }\n  uVar2 = dcgettext(0,"warning: ",5);\n  FUN_00125230("%P: %s%s\n",uVar2,param_2);\n  return;\n}\n\n" (function_definition "void FUN_0011f960(long param_1,byte *param_2,long param_3,long param_4,long param_5,\n                 undefined8 param_6)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  \n  bVar6 = false;\n  bVar7 = DAT_001aaf00 == 0;\n  if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }\n  if (param_5 != 0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }\n  if (param_4 != 0) {\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }\n  uVar2 = dcgettext(0,"warning: ",5);\n  FUN_00125230("%P: %s%s\n",uVar2,param_2);\n  return;\n}" primitive_type (function_declarator "FUN_0011f960(long param_1,byte *param_2,long param_3,long param_4,long param_5,\n                 undefined8 param_6)" identifier (parameter_list "(long param_1,byte *param_2,long param_3,long param_4,long param_5,\n                 undefined8 param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  \n  bVar6 = false;\n  bVar7 = DAT_001aaf00 == 0;\n  if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }\n  if (param_5 != 0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }\n  if (param_4 != 0) {\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }\n  uVar2 = dcgettext(0,"warning: ",5);\n  FUN_00125230("%P: %s%s\n",uVar2,param_2);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "bVar7 = DAT_001aaf00 == 0;" (assignment_expression "bVar7 = DAT_001aaf00 == 0" identifier = (binary_expression "DAT_001aaf00 == 0" identifier == number_literal)) ;) (if_statement "if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }" { (expression_statement "lVar3 = 0x19;" (assignment_expression "lVar3 = 0x19" identifier = number_literal) ;) (expression_statement "pbVar4 = param_2;" (assignment_expression "pbVar4 = param_2" identifier = identifier) ;) (expression_statement "pbVar5 = (byte *)"using multiple gp values";" (assignment_expression "pbVar5 = (byte *)"using multiple gp values"" identifier = (cast_expression "(byte *)"using multiple gp values"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""using multiple gp values"" " string_content "))) ;) (do_statement "do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);" do (compound_statement "{\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    }" { (if_statement "if (lVar3 == 0) break;" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar3 = lVar3 + -1;" (assignment_expression "lVar3 = lVar3 + -1" identifier = (binary_expression "lVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar6 = *pbVar4 < *pbVar5;" (assignment_expression "bVar6 = *pbVar4 < *pbVar5" identifier = (binary_expression "*pbVar4 < *pbVar5" (pointer_expression "*pbVar4" * identifier) < (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "bVar7 = *pbVar4 == *pbVar5;" (assignment_expression "bVar7 = *pbVar4 == *pbVar5" identifier = (binary_expression "*pbVar4 == *pbVar5" (pointer_expression "*pbVar4" * identifier) == (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (if_statement "if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }" if (parenthesized_expression "((!bVar6 && !bVar7) == bVar6)" ( (binary_expression "(!bVar6 && !bVar7) == bVar6" (parenthesized_expression "(!bVar6 && !bVar7)" ( (binary_expression "!bVar6 && !bVar7" (unary_expression "!bVar6" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (if_statement "if (param_5 != 0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }" { (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" identifier = (call_expression "dcgettext(0,"warning: ",5)" identifier (argument_list "(0,"warning: ",5)" ( number_literal , (string_literal ""warning: "" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);" (call_expression "FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2)" identifier (argument_list "("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2)" ( (string_literal ""%P: %C: %s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (param_4 != 0) {\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }" { (if_statement "if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }" { (expression_statement "iVar1 = FUN_0011f3c0(param_2,param_3,param_4);" (assignment_expression "iVar1 = FUN_0011f3c0(param_2,param_3,param_4)" identifier = (call_expression "FUN_0011f3c0(param_2,param_3,param_4)" identifier (argument_list "(param_2,param_3,param_4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n        return;\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (for_statement "for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }" for ( (assignment_expression "lVar3 = *(long *)(param_1 + 0x60)" identifier = (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ; (binary_expression "lVar3 != 0" identifier != number_literal) ; (assignment_expression "lVar3 = *(long *)(lVar3 + 0xf0)" identifier = (pointer_expression "*(long *)(lVar3 + 0xf0)" * (cast_expression "(long *)(lVar3 + 0xf0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xf0)" ( (binary_expression "lVar3 + 0xf0" identifier + number_literal) ))))) ) (compound_statement "{\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }" { (if_statement "if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }" if (parenthesized_expression "((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0))" ( (binary_expression "(param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)" (parenthesized_expression "(param_4 != lVar3)" ( (binary_expression "param_4 != lVar3" identifier != identifier) )) && (parenthesized_expression "(iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)" ( (comma_expression "iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0" (assignment_expression "iVar1 = FUN_0011f3c0(param_2,param_3,lVar3)" identifier = (call_expression "FUN_0011f3c0(param_2,param_3,lVar3)" identifier (argument_list "(param_2,param_3,lVar3)" ( identifier , identifier , identifier )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) })) (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" identifier = (call_expression "dcgettext(0,"warning: ",5)" identifier (argument_list "(0,"warning: ",5)" ( number_literal , (string_literal ""warning: "" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);" (call_expression "FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2)" identifier (argument_list "("%P: %pB: %s%s\n",param_4,uVar2,param_2)" ( (string_literal ""%P: %pB: %s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" identifier = (call_expression "dcgettext(0,"warning: ",5)" identifier (argument_list "(0,"warning: ",5)" ( number_literal , (string_literal ""warning: "" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00125230("%P: %s%s\n",uVar2,param_2);" (call_expression "FUN_00125230("%P: %s%s\n",uVar2,param_2)" identifier (argument_list "("%P: %s%s\n",uVar2,param_2)" ( (string_literal ""%P: %s%s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void warning_callback(bfd_link_info *info,char *warning,char *symbol,bfd *abfd,asection *section,\n                     bfd_vma address)\n\n{\n  bfd *abfd_00;\n  bfd_boolean bVar1;\n  undefined8 uVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  \n  bVar6 = false;\n  bVar7 = config.warn_multiple_gp == 0;\n  if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = (byte *)warning;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }\n  if (section != (asection *)0x0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    einfo("%P: %C: %s%s\n",abfd,section,address,uVar2,warning);\n    return;\n  }\n  if (abfd != (bfd *)0x0) {\n    if (symbol != (char *)0x0) {\n      bVar1 = symbol_warning(warning,symbol,abfd);\n      if (bVar1 != 0) {\n        return;\n      }\n      for (abfd_00 = info->input_bfds; abfd_00 != (bfd *)0x0; abfd_00 = (abfd_00->link).next) {\n        if ((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    einfo("%P: %pB: %s%s\n",abfd,uVar2,warning);\n    return;\n  }\n  uVar2 = dcgettext(0,"warning: ",5);\n  einfo("%P: %s%s\n",uVar2,warning);\n  return;\n}\n\n" (function_definition "void warning_callback(bfd_link_info *info,char *warning,char *symbol,bfd *abfd,asection *section,\n                     bfd_vma address)\n\n{\n  bfd *abfd_00;\n  bfd_boolean bVar1;\n  undefined8 uVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  \n  bVar6 = false;\n  bVar7 = config.warn_multiple_gp == 0;\n  if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = (byte *)warning;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }\n  if (section != (asection *)0x0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    einfo("%P: %C: %s%s\n",abfd,section,address,uVar2,warning);\n    return;\n  }\n  if (abfd != (bfd *)0x0) {\n    if (symbol != (char *)0x0) {\n      bVar1 = symbol_warning(warning,symbol,abfd);\n      if (bVar1 != 0) {\n        return;\n      }\n      for (abfd_00 = info->input_bfds; abfd_00 != (bfd *)0x0; abfd_00 = (abfd_00->link).next) {\n        if ((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    einfo("%P: %pB: %s%s\n",abfd,uVar2,warning);\n    return;\n  }\n  uVar2 = dcgettext(0,"warning: ",5);\n  einfo("%P: %s%s\n",uVar2,warning);\n  return;\n}" primitive_type (function_declarator "warning_callback(bfd_link_info *info,char *warning,char *symbol,bfd *abfd,asection *section,\n                     bfd_vma address)" identifier (parameter_list "(bfd_link_info *info,char *warning,char *symbol,bfd *abfd,asection *section,\n                     bfd_vma address)" ( (parameter_declaration "bfd_link_info *info" type_identifier (pointer_declarator "*info" * identifier)) , (parameter_declaration "char *warning" primitive_type (pointer_declarator "*warning" * identifier)) , (parameter_declaration "char *symbol" primitive_type (pointer_declarator "*symbol" * identifier)) , (parameter_declaration "bfd *abfd" type_identifier (pointer_declarator "*abfd" * identifier)) , (parameter_declaration "asection *section" type_identifier (pointer_declarator "*section" * identifier)) , (parameter_declaration "bfd_vma address" type_identifier identifier) ))) (compound_statement "{\n  bfd *abfd_00;\n  bfd_boolean bVar1;\n  undefined8 uVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  \n  bVar6 = false;\n  bVar7 = config.warn_multiple_gp == 0;\n  if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = (byte *)warning;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }\n  if (section != (asection *)0x0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    einfo("%P: %C: %s%s\n",abfd,section,address,uVar2,warning);\n    return;\n  }\n  if (abfd != (bfd *)0x0) {\n    if (symbol != (char *)0x0) {\n      bVar1 = symbol_warning(warning,symbol,abfd);\n      if (bVar1 != 0) {\n        return;\n      }\n      for (abfd_00 = info->input_bfds; abfd_00 != (bfd *)0x0; abfd_00 = (abfd_00->link).next) {\n        if ((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    einfo("%P: %pB: %s%s\n",abfd,uVar2,warning);\n    return;\n  }\n  uVar2 = dcgettext(0,"warning: ",5);\n  einfo("%P: %s%s\n",uVar2,warning);\n  return;\n}" { (declaration "bfd *abfd_00;" type_identifier (pointer_declarator "*abfd_00" * identifier) ;) (declaration "bfd_boolean bVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "bVar7 = config.warn_multiple_gp == 0;" (assignment_expression "bVar7 = config.warn_multiple_gp == 0" identifier = (binary_expression "config.warn_multiple_gp == 0" (field_expression "config.warn_multiple_gp" identifier . field_identifier) == number_literal)) ;) (if_statement "if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = (byte *)warning;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    lVar3 = 0x19;\n    pbVar4 = (byte *)warning;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }" { (expression_statement "lVar3 = 0x19;" (assignment_expression "lVar3 = 0x19" identifier = number_literal) ;) (expression_statement "pbVar4 = (byte *)warning;" (assignment_expression "pbVar4 = (byte *)warning" identifier = (cast_expression "(byte *)warning" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pbVar5 = (byte *)"using multiple gp values";" (assignment_expression "pbVar5 = (byte *)"using multiple gp values"" identifier = (cast_expression "(byte *)"using multiple gp values"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""using multiple gp values"" " string_content "))) ;) (do_statement "do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);" do (compound_statement "{\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    }" { (if_statement "if (lVar3 == 0) break;" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar3 = lVar3 + -1;" (assignment_expression "lVar3 = lVar3 + -1" identifier = (binary_expression "lVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar6 = *pbVar4 < *pbVar5;" (assignment_expression "bVar6 = *pbVar4 < *pbVar5" identifier = (binary_expression "*pbVar4 < *pbVar5" (pointer_expression "*pbVar4" * identifier) < (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "bVar7 = *pbVar4 == *pbVar5;" (assignment_expression "bVar7 = *pbVar4 == *pbVar5" identifier = (binary_expression "*pbVar4 == *pbVar5" (pointer_expression "*pbVar4" * identifier) == (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (if_statement "if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }" if (parenthesized_expression "((!bVar6 && !bVar7) == bVar6)" ( (binary_expression "(!bVar6 && !bVar7) == bVar6" (parenthesized_expression "(!bVar6 && !bVar7)" ( (binary_expression "!bVar6 && !bVar7" (unary_expression "!bVar6" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (if_statement "if (section != (asection *)0x0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    einfo("%P: %C: %s%s\n",abfd,section,address,uVar2,warning);\n    return;\n  }" if (parenthesized_expression "(section != (asection *)0x0)" ( (binary_expression "section != (asection *)0x0" identifier != (cast_expression "(asection *)0x0" ( (type_descriptor "asection *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar2 = dcgettext(0,"warning: ",5);\n    einfo("%P: %C: %s%s\n",abfd,section,address,uVar2,warning);\n    return;\n  }" { (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" identifier = (call_expression "dcgettext(0,"warning: ",5)" identifier (argument_list "(0,"warning: ",5)" ( number_literal , (string_literal ""warning: "" " string_content ") , number_literal )))) ;) (expression_statement "einfo("%P: %C: %s%s\n",abfd,section,address,uVar2,warning);" (call_expression "einfo("%P: %C: %s%s\n",abfd,section,address,uVar2,warning)" identifier (argument_list "("%P: %C: %s%s\n",abfd,section,address,uVar2,warning)" ( (string_literal ""%P: %C: %s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (abfd != (bfd *)0x0) {\n    if (symbol != (char *)0x0) {\n      bVar1 = symbol_warning(warning,symbol,abfd);\n      if (bVar1 != 0) {\n        return;\n      }\n      for (abfd_00 = info->input_bfds; abfd_00 != (bfd *)0x0; abfd_00 = (abfd_00->link).next) {\n        if ((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    einfo("%P: %pB: %s%s\n",abfd,uVar2,warning);\n    return;\n  }" if (parenthesized_expression "(abfd != (bfd *)0x0)" ( (binary_expression "abfd != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (symbol != (char *)0x0) {\n      bVar1 = symbol_warning(warning,symbol,abfd);\n      if (bVar1 != 0) {\n        return;\n      }\n      for (abfd_00 = info->input_bfds; abfd_00 != (bfd *)0x0; abfd_00 = (abfd_00->link).next) {\n        if ((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    einfo("%P: %pB: %s%s\n",abfd,uVar2,warning);\n    return;\n  }" { (if_statement "if (symbol != (char *)0x0) {\n      bVar1 = symbol_warning(warning,symbol,abfd);\n      if (bVar1 != 0) {\n        return;\n      }\n      for (abfd_00 = info->input_bfds; abfd_00 != (bfd *)0x0; abfd_00 = (abfd_00->link).next) {\n        if ((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)) {\n          return;\n        }\n      }\n    }" if (parenthesized_expression "(symbol != (char *)0x0)" ( (binary_expression "symbol != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      bVar1 = symbol_warning(warning,symbol,abfd);\n      if (bVar1 != 0) {\n        return;\n      }\n      for (abfd_00 = info->input_bfds; abfd_00 != (bfd *)0x0; abfd_00 = (abfd_00->link).next) {\n        if ((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)) {\n          return;\n        }\n      }\n    }" { (expression_statement "bVar1 = symbol_warning(warning,symbol,abfd);" (assignment_expression "bVar1 = symbol_warning(warning,symbol,abfd)" identifier = (call_expression "symbol_warning(warning,symbol,abfd)" identifier (argument_list "(warning,symbol,abfd)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar1 != 0) {\n        return;\n      }" if (parenthesized_expression "(bVar1 != 0)" ( (binary_expression "bVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (for_statement "for (abfd_00 = info->input_bfds; abfd_00 != (bfd *)0x0; abfd_00 = (abfd_00->link).next) {\n        if ((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)) {\n          return;\n        }\n      }" for ( (assignment_expression "abfd_00 = info->input_bfds" identifier = (field_expression "info->input_bfds" identifier -> field_identifier)) ; (binary_expression "abfd_00 != (bfd *)0x0" identifier != (cast_expression "(bfd *)0x0" ( (type_descriptor "bfd *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ; (assignment_expression "abfd_00 = (abfd_00->link).next" identifier = (field_expression "(abfd_00->link).next" (parenthesized_expression "(abfd_00->link)" ( (field_expression "abfd_00->link" identifier -> field_identifier) )) . field_identifier)) ) (compound_statement "{\n        if ((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)) {\n          return;\n        }\n      }" { (if_statement "if ((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)) {\n          return;\n        }" if (parenthesized_expression "((abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0))" ( (binary_expression "(abfd != abfd_00) && (bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)" (parenthesized_expression "(abfd != abfd_00)" ( (binary_expression "abfd != abfd_00" identifier != identifier) )) && (parenthesized_expression "(bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0)" ( (comma_expression "bVar1 = symbol_warning(warning,symbol,abfd_00), bVar1 != 0" (assignment_expression "bVar1 = symbol_warning(warning,symbol,abfd_00)" identifier = (call_expression "symbol_warning(warning,symbol,abfd_00)" identifier (argument_list "(warning,symbol,abfd_00)" ( identifier , identifier , identifier )))) , (binary_expression "bVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) })) (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" identifier = (call_expression "dcgettext(0,"warning: ",5)" identifier (argument_list "(0,"warning: ",5)" ( number_literal , (string_literal ""warning: "" " string_content ") , number_literal )))) ;) (expression_statement "einfo("%P: %pB: %s%s\n",abfd,uVar2,warning);" (call_expression "einfo("%P: %pB: %s%s\n",abfd,uVar2,warning)" identifier (argument_list "("%P: %pB: %s%s\n",abfd,uVar2,warning)" ( (string_literal ""%P: %pB: %s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" identifier = (call_expression "dcgettext(0,"warning: ",5)" identifier (argument_list "(0,"warning: ",5)" ( number_literal , (string_literal ""warning: "" " string_content ") , number_literal )))) ;) (expression_statement "einfo("%P: %s%s\n",uVar2,warning);" (call_expression "einfo("%P: %s%s\n",uVar2,warning)" identifier (argument_list "("%P: %s%s\n",uVar2,warning)" ( (string_literal ""%P: %s%s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_0011f960(long param_1,byte *param_2,long param_3,long param_4,long param_5,\n                 undefined8 param_6)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  \n  bVar6 = false;\n  bVar7 = DAT_001aaf00 == 0;\n  if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }\n  if (param_5 != 0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }\n  if (param_4 != 0) {\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }\n  uVar2 = dcgettext(0,"warning: ",5);\n  FUN_00125230("%P: %s%s\n",uVar2,param_2);\n  return;\n}\n\n" (function_definition "void FUN_0011f960(long param_1,byte *param_2,long param_3,long param_4,long param_5,\n                 undefined8 param_6)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  \n  bVar6 = false;\n  bVar7 = DAT_001aaf00 == 0;\n  if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }\n  if (param_5 != 0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }\n  if (param_4 != 0) {\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }\n  uVar2 = dcgettext(0,"warning: ",5);\n  FUN_00125230("%P: %s%s\n",uVar2,param_2);\n  return;\n}" primitive_type (function_declarator "FUN_0011f960(long param_1,byte *param_2,long param_3,long param_4,long param_5,\n                 undefined8 param_6)" identifier (parameter_list "(long param_1,byte *param_2,long param_3,long param_4,long param_5,\n                 undefined8 param_6)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) , (parameter_declaration "byte *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_6" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  \n  bVar6 = false;\n  bVar7 = DAT_001aaf00 == 0;\n  if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }\n  if (param_5 != 0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }\n  if (param_4 != 0) {\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }\n  uVar2 = dcgettext(0,"warning: ",5);\n  FUN_00125230("%P: %s%s\n",uVar2,param_2);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "bool bVar6;" primitive_type identifier ;) (declaration "bool bVar7;" primitive_type identifier ;) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" identifier = false) ;) (expression_statement "bVar7 = DAT_001aaf00 == 0;" (assignment_expression "bVar7 = DAT_001aaf00 == 0" identifier = (binary_expression "DAT_001aaf00 == 0" identifier == number_literal)) ;) (if_statement "if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }" if (parenthesized_expression "(bVar7)" ( identifier )) (compound_statement "{\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }" { (expression_statement "lVar3 = 0x19;" (assignment_expression "lVar3 = 0x19" identifier = number_literal) ;) (expression_statement "pbVar4 = param_2;" (assignment_expression "pbVar4 = param_2" identifier = identifier) ;) (expression_statement "pbVar5 = (byte *)"using multiple gp values";" (assignment_expression "pbVar5 = (byte *)"using multiple gp values"" identifier = (cast_expression "(byte *)"using multiple gp values"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""using multiple gp values"" " string_content "))) ;) (do_statement "do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);" do (compound_statement "{\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    }" { (if_statement "if (lVar3 == 0) break;" if (parenthesized_expression "(lVar3 == 0)" ( (binary_expression "lVar3 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar3 = lVar3 + -1;" (assignment_expression "lVar3 = lVar3 + -1" identifier = (binary_expression "lVar3 + -1" identifier + number_literal)) ;) (expression_statement "bVar6 = *pbVar4 < *pbVar5;" (assignment_expression "bVar6 = *pbVar4 < *pbVar5" identifier = (binary_expression "*pbVar4 < *pbVar5" (pointer_expression "*pbVar4" * identifier) < (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "bVar7 = *pbVar4 == *pbVar5;" (assignment_expression "bVar7 = *pbVar4 == *pbVar5" identifier = (binary_expression "*pbVar4 == *pbVar5" (pointer_expression "*pbVar4" * identifier) == (pointer_expression "*pbVar5" * identifier))) ;) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" identifier = (binary_expression "pbVar4 + 1" identifier + number_literal)) ;) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar7)" ( identifier )) ;) (if_statement "if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }" if (parenthesized_expression "((!bVar6 && !bVar7) == bVar6)" ( (binary_expression "(!bVar6 && !bVar7) == bVar6" (parenthesized_expression "(!bVar6 && !bVar7)" ( (binary_expression "!bVar6 && !bVar7" (unary_expression "!bVar6" ! identifier) && (unary_expression "!bVar7" ! identifier)) )) == identifier) )) (compound_statement "{\n      return;\n    }" { (return_statement "return;" return ;) })) })) (if_statement "if (param_5 != 0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }" if (parenthesized_expression "(param_5 != 0)" ( (binary_expression "param_5 != 0" identifier != number_literal) )) (compound_statement "{\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }" { (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" identifier = (call_expression "dcgettext(0,"warning: ",5)" identifier (argument_list "(0,"warning: ",5)" ( number_literal , (string_literal ""warning: "" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);" (call_expression "FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2)" identifier (argument_list "("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2)" ( (string_literal ""%P: %C: %s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (if_statement "if (param_4 != 0) {\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }" if (parenthesized_expression "(param_4 != 0)" ( (binary_expression "param_4 != 0" identifier != number_literal) )) (compound_statement "{\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }" { (if_statement "if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }" if (parenthesized_expression "(param_3 != 0)" ( (binary_expression "param_3 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }" { (expression_statement "iVar1 = FUN_0011f3c0(param_2,param_3,param_4);" (assignment_expression "iVar1 = FUN_0011f3c0(param_2,param_3,param_4)" identifier = (call_expression "FUN_0011f3c0(param_2,param_3,param_4)" identifier (argument_list "(param_2,param_3,param_4)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar1 != 0) {\n        return;\n      }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n        return;\n      }" { (return_statement "return;" return ;) })) (for_statement "for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }" for ( (assignment_expression "lVar3 = *(long *)(param_1 + 0x60)" identifier = (pointer_expression "*(long *)(param_1 + 0x60)" * (cast_expression "(long *)(param_1 + 0x60)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ; (binary_expression "lVar3 != 0" identifier != number_literal) ; (assignment_expression "lVar3 = *(long *)(lVar3 + 0xf0)" identifier = (pointer_expression "*(long *)(lVar3 + 0xf0)" * (cast_expression "(long *)(lVar3 + 0xf0)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(lVar3 + 0xf0)" ( (binary_expression "lVar3 + 0xf0" identifier + number_literal) ))))) ) (compound_statement "{\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }" { (if_statement "if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }" if (parenthesized_expression "((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0))" ( (binary_expression "(param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)" (parenthesized_expression "(param_4 != lVar3)" ( (binary_expression "param_4 != lVar3" identifier != identifier) )) && (parenthesized_expression "(iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)" ( (comma_expression "iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0" (assignment_expression "iVar1 = FUN_0011f3c0(param_2,param_3,lVar3)" identifier = (call_expression "FUN_0011f3c0(param_2,param_3,lVar3)" identifier (argument_list "(param_2,param_3,lVar3)" ( identifier , identifier , identifier )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) })) })) (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" identifier = (call_expression "dcgettext(0,"warning: ",5)" identifier (argument_list "(0,"warning: ",5)" ( number_literal , (string_literal ""warning: "" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);" (call_expression "FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2)" identifier (argument_list "("%P: %pB: %s%s\n",param_4,uVar2,param_2)" ( (string_literal ""%P: %pB: %s%s\n"" " string_content escape_sequence ") , identifier , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" identifier = (call_expression "dcgettext(0,"warning: ",5)" identifier (argument_list "(0,"warning: ",5)" ( number_literal , (string_literal ""warning: "" " string_content ") , number_literal )))) ;) (expression_statement "FUN_00125230("%P: %s%s\n",uVar2,param_2);" (call_expression "FUN_00125230("%P: %s%s\n",uVar2,param_2)" identifier (argument_list "("%P: %s%s\n",uVar2,param_2)" ( (string_literal ""%P: %s%s\n"" " string_content escape_sequence ") , identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (return_statement return ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return ;) })) (for_statement for ( (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (return_statement return ;) })) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT , IDENT ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence ") , IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_0011f960(long param_1,byte *param_2,long param_3,long param_4,long param_5,\n                 undefined8 param_6)\n\n{\n  int iVar1;\n  undefined8 uVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  \n  bVar6 = false;\n  bVar7 = DAT_001aaf00 == 0;\n  if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }\n  if (param_5 != 0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }\n  if (param_4 != 0) {\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }\n  uVar2 = dcgettext(0,"warning: ",5);\n  FUN_00125230("%P: %s%s\n",uVar2,param_2);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0011f960(long param_1,byte *param_2,long param_3,long param_4,long param_5,\n                 undefined8 param_6)" (identifier "FUN_0011f960") (parameter_list "(long param_1,byte *param_2,long param_3,long param_4,long param_5,\n                 undefined8 param_6)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) (, ",") (parameter_declaration "byte *param_2" (type_identifier "byte") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) (, ",") (parameter_declaration "undefined8 param_6" (type_identifier "undefined8") (identifier "param_6")) () ")"))) (compound_statement "{\n  int iVar1;\n  undefined8 uVar2;\n  long lVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  \n  bVar6 = false;\n  bVar7 = DAT_001aaf00 == 0;\n  if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }\n  if (param_5 != 0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }\n  if (param_4 != 0) {\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }\n  uVar2 = dcgettext(0,"warning: ",5);\n  FUN_00125230("%P: %s%s\n",uVar2,param_2);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "long lVar3;" (sized_type_specifier "long" (long "long")) (identifier "lVar3") (; ";")) (declaration "byte *pbVar4;" (type_identifier "byte") (pointer_declarator "*pbVar4" (* "*") (identifier "pbVar4")) (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "bool bVar6;" (primitive_type "bool") (identifier "bVar6") (; ";")) (declaration "bool bVar7;" (primitive_type "bool") (identifier "bVar7") (; ";")) (expression_statement "bVar6 = false;" (assignment_expression "bVar6 = false" (identifier "bVar6") (= "=") (false "false")) (; ";")) (expression_statement "bVar7 = DAT_001aaf00 == 0;" (assignment_expression "bVar7 = DAT_001aaf00 == 0" (identifier "bVar7") (= "=") (binary_expression "DAT_001aaf00 == 0" (identifier "DAT_001aaf00") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar7) {\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }" (if "if") (parenthesized_expression "(bVar7)" (( "(") (identifier "bVar7") () ")")) (compound_statement "{\n    lVar3 = 0x19;\n    pbVar4 = param_2;\n    pbVar5 = (byte *)"using multiple gp values";\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);\n    if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }\n  }" ({ "{") (expression_statement "lVar3 = 0x19;" (assignment_expression "lVar3 = 0x19" (identifier "lVar3") (= "=") (number_literal "0x19")) (; ";")) (expression_statement "pbVar4 = param_2;" (assignment_expression "pbVar4 = param_2" (identifier "pbVar4") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pbVar5 = (byte *)"using multiple gp values";" (assignment_expression "pbVar5 = (byte *)"using multiple gp values"" (identifier "pbVar5") (= "=") (cast_expression "(byte *)"using multiple gp values"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""using multiple gp values"" (" """) (string_content "using multiple gp values") (" """)))) (; ";")) (do_statement "do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    } while (bVar7);" (do "do") (compound_statement "{\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    }" ({ "{") (if_statement "if (lVar3 == 0) break;" (if "if") (parenthesized_expression "(lVar3 == 0)" (( "(") (binary_expression "lVar3 == 0" (identifier "lVar3") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar3 = lVar3 + -1;" (assignment_expression "lVar3 = lVar3 + -1" (identifier "lVar3") (= "=") (binary_expression "lVar3 + -1" (identifier "lVar3") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar6 = *pbVar4 < *pbVar5;" (assignment_expression "bVar6 = *pbVar4 < *pbVar5" (identifier "bVar6") (= "=") (binary_expression "*pbVar4 < *pbVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (< "<") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")))) (; ";")) (expression_statement "bVar7 = *pbVar4 == *pbVar5;" (assignment_expression "bVar7 = *pbVar4 == *pbVar5" (identifier "bVar7") (= "=") (binary_expression "*pbVar4 == *pbVar5" (pointer_expression "*pbVar4" (* "*") (identifier "pbVar4")) (== "==") (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")))) (; ";")) (expression_statement "pbVar4 = pbVar4 + 1;" (assignment_expression "pbVar4 = pbVar4 + 1" (identifier "pbVar4") (= "=") (binary_expression "pbVar4 + 1" (identifier "pbVar4") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar7)" (( "(") (identifier "bVar7") () ")")) (; ";")) (if_statement "if ((!bVar6 && !bVar7) == bVar6) {\n      return;\n    }" (if "if") (parenthesized_expression "((!bVar6 && !bVar7) == bVar6)" (( "(") (binary_expression "(!bVar6 && !bVar7) == bVar6" (parenthesized_expression "(!bVar6 && !bVar7)" (( "(") (binary_expression "!bVar6 && !bVar7" (unary_expression "!bVar6" (! "!") (identifier "bVar6")) (&& "&&") (unary_expression "!bVar7" (! "!") (identifier "bVar7"))) () ")")) (== "==") (identifier "bVar6")) () ")")) (compound_statement "{\n      return;\n    }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (if_statement "if (param_5 != 0) {\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }" (if "if") (parenthesized_expression "(param_5 != 0)" (( "(") (binary_expression "param_5 != 0" (identifier "param_5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);\n    return;\n  }" ({ "{") (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"warning: ",5)" (identifier "dcgettext") (argument_list "(0,"warning: ",5)" (( "(") (number_literal "0") (, ",") (string_literal ""warning: "" (" """) (string_content "warning: ") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);" (call_expression "FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2)" (identifier "FUN_00125230") (argument_list "("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2)" (( "(") (string_literal ""%P: %C: %s%s\n"" (" """) (string_content "%P: %C: %s%s") (escape_sequence "\n") (" """)) (, ",") (identifier "param_4") (, ",") (identifier "param_5") (, ",") (identifier "param_6") (, ",") (identifier "uVar2") (, ",") (identifier "param_2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (param_4 != 0) {\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }" (if "if") (parenthesized_expression "(param_4 != 0)" (( "(") (binary_expression "param_4 != 0" (identifier "param_4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }\n    uVar2 = dcgettext(0,"warning: ",5);\n    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);\n    return;\n  }" ({ "{") (if_statement "if (param_3 != 0) {\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }" (if "if") (parenthesized_expression "(param_3 != 0)" (( "(") (binary_expression "param_3 != 0" (identifier "param_3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);\n      if (iVar1 != 0) {\n        return;\n      }\n      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }\n    }" ({ "{") (expression_statement "iVar1 = FUN_0011f3c0(param_2,param_3,param_4);" (assignment_expression "iVar1 = FUN_0011f3c0(param_2,param_3,param_4)" (identifier "iVar1") (= "=") (call_expression "FUN_0011f3c0(param_2,param_3,param_4)" (identifier "FUN_0011f3c0") (argument_list "(param_2,param_3,param_4)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n        return;\n      }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return;\n      }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (for_statement "for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }" (for "for") (( "(") (assignment_expression "lVar3 = *(long *)(param_1 + 0x60)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(param_1 + 0x60)" (* "*") (cast_expression "(long *)(param_1 + 0x60)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";") (binary_expression "lVar3 != 0" (identifier "lVar3") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "lVar3 = *(long *)(lVar3 + 0xf0)" (identifier "lVar3") (= "=") (pointer_expression "*(long *)(lVar3 + 0xf0)" (* "*") (cast_expression "(long *)(lVar3 + 0xf0)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(lVar3 + 0xf0)" (( "(") (binary_expression "lVar3 + 0xf0" (identifier "lVar3") (+ "+") (number_literal "0xf0")) () ")"))))) () ")") (compound_statement "{\n        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }\n      }" ({ "{") (if_statement "if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {\n          return;\n        }" (if "if") (parenthesized_expression "((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0))" (( "(") (binary_expression "(param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)" (parenthesized_expression "(param_4 != lVar3)" (( "(") (binary_expression "param_4 != lVar3" (identifier "param_4") (!= "!=") (identifier "lVar3")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)" (( "(") (comma_expression "iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0" (assignment_expression "iVar1 = FUN_0011f3c0(param_2,param_3,lVar3)" (identifier "iVar1") (= "=") (call_expression "FUN_0011f3c0(param_2,param_3,lVar3)" (identifier "FUN_0011f3c0") (argument_list "(param_2,param_3,lVar3)" (( "(") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "lVar3") () ")")))) (, ",") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"warning: ",5)" (identifier "dcgettext") (argument_list "(0,"warning: ",5)" (( "(") (number_literal "0") (, ",") (string_literal ""warning: "" (" """) (string_content "warning: ") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);" (call_expression "FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2)" (identifier "FUN_00125230") (argument_list "("%P: %pB: %s%s\n",param_4,uVar2,param_2)" (( "(") (string_literal ""%P: %pB: %s%s\n"" (" """) (string_content "%P: %pB: %s%s") (escape_sequence "\n") (" """)) (, ",") (identifier "param_4") (, ",") (identifier "uVar2") (, ",") (identifier "param_2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "uVar2 = dcgettext(0,"warning: ",5);" (assignment_expression "uVar2 = dcgettext(0,"warning: ",5)" (identifier "uVar2") (= "=") (call_expression "dcgettext(0,"warning: ",5)" (identifier "dcgettext") (argument_list "(0,"warning: ",5)" (( "(") (number_literal "0") (, ",") (string_literal ""warning: "" (" """) (string_content "warning: ") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_00125230("%P: %s%s\n",uVar2,param_2);" (call_expression "FUN_00125230("%P: %s%s\n",uVar2,param_2)" (identifier "FUN_00125230") (argument_list "("%P: %s%s\n",uVar2,param_2)" (( "(") (string_literal ""%P: %s%s\n"" (" """) (string_content "%P: %s%s") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar2") (, ",") (identifier "param_2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *info,char *warning,char *var_9,type_2 *var_8,type_3 *var_5,
                     type_4 address)

{
  type_2 *var_12;
  type_5 var_11;
  type_6 uVar2;
  long var_1;
  type_7 *var_2;
  type_7 *var_3;
  bool var_4;
  bool bVar7;
  
  var_4 = false;
  bVar7 = config.warn_multiple_gp == 0;
  if (bVar7) {
    var_1 = 0x19;
    var_2 = (type_7 *)warning;
    var_3 = (type_7 *)"using multiple gp values";
    do {
      if (var_1 == 0) break;
      var_1 = var_1 + -1;
      var_4 = *var_2 < *var_3;
      bVar7 = *var_2 == *var_3;
      var_2 = var_2 + 1;
      var_3 = var_3 + 1;
    } while (bVar7);
    if ((!var_4 && !bVar7) == var_4) {
      return;
    }
  }
  if (var_5 != (type_3 *)0x0) {
    uVar2 = var_6(0,"warning: ",5);
    var_7("%P: %C: %s%s\n",var_8,var_5,address,uVar2,warning);
    return;
  }
  if (var_8 != (type_2 *)0x0) {
    if (var_9 != (char *)0x0) {
      var_11 = var_10(warning,var_9,var_8);
      if (var_11 != 0) {
        return;
      }
      for (var_12 = info->input_bfds; var_12 != (type_2 *)0x0; var_12 = (var_12->link).next) {
        if ((var_8 != var_12) && (var_11 = var_10(warning,var_9,var_12), var_11 != 0)) {
          return;
        }
      }
    }
    uVar2 = var_6(0,"warning: ",5);
    var_7("%P: %pB: %s%s\n",var_8,uVar2,warning);
    return;
  }
  uVar2 = var_6(0,"warning: ",5);
  var_7("%P: %s%s\n",uVar2,warning);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (string_literal (string_content))))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (unary_expression argument: (identifier)) right: (unary_expression argument: (identifier)))) right: (identifier))) consequence: (compound_statement (return_statement))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier) (identifier) (identifier) (identifier) (identifier)))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (for_statement initializer: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (return_statement))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier) (identifier) (identifier)))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (number_literal) (string_literal (string_content)) (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content) (escape_sequence)) (identifier) (identifier)))) (return_statement))))

void MASKED(long param_1,byte *param_2,long param_3,long param_4,long param_5,
                 undefined8 param_6)

{
  int iVar1;
  undefined8 uVar2;
  long lVar3;
  byte *pbVar4;
  byte *pbVar5;
  bool bVar6;
  bool bVar7;
  
  bVar6 = false;
  bVar7 = DAT_001aaf00 == 0;
  if (bVar7) {
    lVar3 = 0x19;
    pbVar4 = param_2;
    pbVar5 = (byte *)"using multiple gp values";
    do {
      if (lVar3 == 0) break;
      lVar3 = lVar3 + -1;
      bVar6 = *pbVar4 < *pbVar5;
      bVar7 = *pbVar4 == *pbVar5;
      pbVar4 = pbVar4 + 1;
      pbVar5 = pbVar5 + 1;
    } while (bVar7);
    if ((!bVar6 && !bVar7) == bVar6) {
      return;
    }
  }
  if (param_5 != 0) {
    uVar2 = dcgettext(0,"warning: ",5);
    FUN_00125230("%P: %C: %s%s\n",param_4,param_5,param_6,uVar2,param_2);
    return;
  }
  if (param_4 != 0) {
    if (param_3 != 0) {
      iVar1 = FUN_0011f3c0(param_2,param_3,param_4);
      if (iVar1 != 0) {
        return;
      }
      for (lVar3 = *(long *)(param_1 + 0x60); lVar3 != 0; lVar3 = *(long *)(lVar3 + 0xf0)) {
        if ((param_4 != lVar3) && (iVar1 = FUN_0011f3c0(param_2,param_3,lVar3), iVar1 != 0)) {
          return;
        }
      }
    }
    uVar2 = dcgettext(0,"warning: ",5);
    FUN_00125230("%P: %pB: %s%s\n",param_4,uVar2,param_2);
    return;
  }
  uVar2 = dcgettext(0,"warning: ",5);
  FUN_00125230("%P: %s%s\n",uVar2,param_2);
  return;
}

