
bfd_boolean stab_demangle_function_name(stab_demangle_info *minfo,char **pp,char *scan)

{
  byte *pbVar1;
  bfd_boolean bVar2;
  long lVar3;
  ulong uVar4;
  byte *pbVar5;
  byte *pbVar6;
  bool bVar7;
  bool bVar8;
  char *tem;
  
  pbVar1 = (byte *)*pp;
  *pp = scan + 2;
  uVar4 = (long)(scan + 2) - (long)pbVar1;
  bVar7 = uVar4 < 4;
  bVar8 = uVar4 == 4;
  if (4 < (long)uVar4) {
    lVar3 = 4;
    pbVar5 = pbVar1;
    pbVar6 = (byte *)0x146a06;
    do {
      if (lVar3 == 0) break;
      lVar3 = lVar3 + -1;
      bVar7 = *pbVar5 < *pbVar6;
      bVar8 = *pbVar5 == *pbVar6;
      pbVar5 = pbVar5 + 1;
      pbVar6 = pbVar6 + 1;
    } while (bVar8);
    if (((!bVar7 && !bVar8) == bVar7) && ((pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e)))) {
      tem = (char *)(pbVar1 + 5);
      goto LAB_00130ff4;
    }
  }
  if (*pbVar1 != 0x5f) {
    return 1;
  }
  if (pbVar1[1] != 0x5f) {
    return 1;
  }
  if (pbVar1[2] != 0x6f) {
    return 1;
  }
  if (pbVar1[3] != 0x70) {
    return 1;
  }
  tem = (char *)(pbVar1 + 4);
LAB_00130ff4:
  bVar2 = stab_demangle_type(minfo,&tem,(debug_type_conflict *)0x0);
  if (bVar2 != 0) {
    bVar2 = 1;
  }
  return bVar2;
}



int FUN_00130f70(undefined8 param_1,long *param_2,long param_3)

{
  int iVar1;
  long lVar2;
  ulong uVar3;
  byte *pbVar4;
  byte *pbVar5;
  bool bVar6;
  bool bVar7;
  byte *local_10 [2];
  
  local_10[0] = (byte *)*param_2;
  *param_2 = param_3 + 2;
  uVar3 = (param_3 + 2) - (long)local_10[0];
  bVar6 = uVar3 < 4;
  bVar7 = uVar3 == 4;
  if (4 < (long)uVar3) {
    lVar2 = 4;
    pbVar4 = local_10[0];
    pbVar5 = (byte *)0x146a06;
    do {
      if (lVar2 == 0) break;
      lVar2 = lVar2 + -1;
      bVar6 = *pbVar4 < *pbVar5;
      bVar7 = *pbVar4 == *pbVar5;
      pbVar4 = pbVar4 + 1;
      pbVar5 = pbVar5 + 1;
    } while (bVar7);
    if (((!bVar6 && !bVar7) == bVar6) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {
      local_10[0] = local_10[0] + 5;
      goto LAB_00130ff4;
    }
  }
  if (*local_10[0] != 0x5f) {
    return 1;
  }
  if (local_10[0][1] != 0x5f) {
    return 1;
  }
  if (local_10[0][2] != 0x6f) {
    return 1;
  }
  if (local_10[0][3] != 0x70) {
    return 1;
  }
  local_10[0] = local_10[0] + 4;
LAB_00130ff4:
  iVar1 = FUN_0012f960(param_1,local_10,0);
  if (iVar1 != 0) {
    iVar1 = 1;
  }
  return iVar1;
}


SUB RSP,0x18
MOV R8,qword ptr [RSI]
ADD RDX,0x2
MOV R9,RDI
MOV qword ptr [RSI],RDX
SUB RDX,R8
CMP RDX,0x4
JLE 0x00130fb8
MOV ECX,0x4
LEA RDI,[0x146a06]
MOV RSI,R8
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00130fb8
MOVZX EAX,byte ptr [R8 + 0x4]
CMP AL,0x24
JZ 0x00130ff0
CMP AL,0x2e
JZ 0x00130ff0
NOP dword ptr [RAX]
CMP byte ptr [R8],0x5f
MOV EAX,0x1
JZ 0x00130fd0
ADD RSP,0x18
RET
CMP byte ptr [R8 + 0x1],0x5f
JNZ 0x00130fc3
CMP byte ptr [R8 + 0x2],0x6f
JNZ 0x00130fc3
CMP byte ptr [R8 + 0x3],0x70
JNZ 0x00130fc3
ADD R8,0x4
JMP 0x00130ff4
ADD R8,0x5
XOR EDX,EDX
LEA RSI,[RSP + 0x8]
MOV RDI,R9
MOV qword ptr [RSP + 0x8],R8
CALL 0x0012f960
MOV EDX,0x1
TEST EAX,EAX
CMOVNZ EAX,EDX
JMP 0x00130fc3
(translation_unit "int FUN_00130f70(undefined8 param_1,long *param_2,long param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  ulong uVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  byte *local_10 [2];\n  \n  local_10[0] = (byte *)*param_2;\n  *param_2 = param_3 + 2;\n  uVar3 = (param_3 + 2) - (long)local_10[0];\n  bVar6 = uVar3 < 4;\n  bVar7 = uVar3 == 4;\n  if (4 < (long)uVar3) {\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }\n  if (*local_10[0] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][1] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][2] != 0x6f) {\n    return 1;\n  }\n  if (local_10[0][3] != 0x70) {\n    return 1;\n  }\n  local_10[0] = local_10[0] + 4;\nLAB_00130ff4:\n  iVar1 = FUN_0012f960(param_1,local_10,0);\n  if (iVar1 != 0) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}\n\n" (function_definition "int FUN_00130f70(undefined8 param_1,long *param_2,long param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  ulong uVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  byte *local_10 [2];\n  \n  local_10[0] = (byte *)*param_2;\n  *param_2 = param_3 + 2;\n  uVar3 = (param_3 + 2) - (long)local_10[0];\n  bVar6 = uVar3 < 4;\n  bVar7 = uVar3 == 4;\n  if (4 < (long)uVar3) {\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }\n  if (*local_10[0] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][1] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][2] != 0x6f) {\n    return 1;\n  }\n  if (local_10[0][3] != 0x70) {\n    return 1;\n  }\n  local_10[0] = local_10[0] + 4;\nLAB_00130ff4:\n  iVar1 = FUN_0012f960(param_1,local_10,0);\n  if (iVar1 != 0) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" primitive_type (function_declarator "FUN_00130f70(undefined8 param_1,long *param_2,long param_3)" identifier (parameter_list "(undefined8 param_1,long *param_2,long param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  ulong uVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  byte *local_10 [2];\n  \n  local_10[0] = (byte *)*param_2;\n  *param_2 = param_3 + 2;\n  uVar3 = (param_3 + 2) - (long)local_10[0];\n  bVar6 = uVar3 < 4;\n  bVar7 = uVar3 == 4;\n  if (4 < (long)uVar3) {\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }\n  if (*local_10[0] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][1] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][2] != 0x6f) {\n    return 1;\n  }\n  if (local_10[0][3] != 0x70) {\n    return 1;\n  }\n  local_10[0] = local_10[0] + 4;\nLAB_00130ff4:\n  iVar1 = FUN_0012f960(param_1,local_10,0);\n  if (iVar1 != 0) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar3;" type_identifier 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 ;) (declaration "byte *local_10 [2];" type_identifier (pointer_declarator "*local_10 [2]" * (array_declarator "local_10 [2]" identifier [ number_literal ])) ;) (expression_statement "local_10[0] = (byte *)*param_2;" (assignment_expression "local_10[0] = (byte *)*param_2" (subscript_expression "local_10[0]" identifier [ number_literal ]) = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "*param_2 = param_3 + 2;" (assignment_expression "*param_2 = param_3 + 2" (pointer_expression "*param_2" * identifier) = (binary_expression "param_3 + 2" identifier + number_literal)) ;) (expression_statement "uVar3 = (param_3 + 2) - (long)local_10[0];" (assignment_expression "uVar3 = (param_3 + 2) - (long)local_10[0]" identifier = (binary_expression "(param_3 + 2) - (long)local_10[0]" (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) )) - (cast_expression "(long)local_10[0]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "local_10[0]" identifier [ number_literal ])))) ;) (expression_statement "bVar6 = uVar3 < 4;" (assignment_expression "bVar6 = uVar3 < 4" identifier = (binary_expression "uVar3 < 4" identifier < number_literal)) ;) (expression_statement "bVar7 = uVar3 == 4;" (assignment_expression "bVar7 = uVar3 == 4" identifier = (binary_expression "uVar3 == 4" identifier == number_literal)) ;) (if_statement "if (4 < (long)uVar3) {\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }" if (parenthesized_expression "(4 < (long)uVar3)" ( (binary_expression "4 < (long)uVar3" number_literal < (cast_expression "(long)uVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }" { (expression_statement "lVar2 = 4;" (assignment_expression "lVar2 = 4" identifier = number_literal) ;) (expression_statement "pbVar4 = local_10[0];" (assignment_expression "pbVar4 = local_10[0]" identifier = (subscript_expression "local_10[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar5 = (byte *)0x146a06;" (assignment_expression "pbVar5 = (byte *)0x146a06" identifier = (cast_expression "(byte *)0x146a06" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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 (lVar2 == 0) break;\n      lVar2 = lVar2 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    }" { (if_statement "if (lVar2 == 0) break;" if (parenthesized_expression "(lVar2 == 0)" ( (binary_expression "lVar2 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar2 = lVar2 + -1;" (assignment_expression "lVar2 = lVar2 + -1" identifier = (binary_expression "lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }" if (parenthesized_expression "(((!bVar6 && !bVar7) == bVar6) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e))))" ( (binary_expression "((!bVar6 && !bVar7) == bVar6) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))" (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) )) && (parenthesized_expression "((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))" ( (parenthesized_expression "(local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e))" ( (binary_expression "local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)" (binary_expression "local_10[0][4] == 0x24" (subscript_expression "local_10[0][4]" (subscript_expression "local_10[0]" identifier [ number_literal ]) [ number_literal ]) == number_literal) || (parenthesized_expression "(local_10[0][4] == 0x2e)" ( (binary_expression "local_10[0][4] == 0x2e" (subscript_expression "local_10[0][4]" (subscript_expression "local_10[0]" identifier [ number_literal ]) [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }" { (expression_statement "local_10[0] = local_10[0] + 5;" (assignment_expression "local_10[0] = local_10[0] + 5" (subscript_expression "local_10[0]" identifier [ number_literal ]) = (binary_expression "local_10[0] + 5" (subscript_expression "local_10[0]" identifier [ number_literal ]) + number_literal)) ;) (goto_statement "goto LAB_00130ff4;" goto statement_identifier ;) })) })) (if_statement "if (*local_10[0] != 0x5f) {\n    return 1;\n  }" if (parenthesized_expression "(*local_10[0] != 0x5f)" ( (binary_expression "*local_10[0] != 0x5f" (pointer_expression "*local_10[0]" * (subscript_expression "local_10[0]" identifier [ number_literal ])) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_10[0][1] != 0x5f) {\n    return 1;\n  }" if (parenthesized_expression "(local_10[0][1] != 0x5f)" ( (binary_expression "local_10[0][1] != 0x5f" (subscript_expression "local_10[0][1]" (subscript_expression "local_10[0]" identifier [ number_literal ]) [ number_literal ]) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_10[0][2] != 0x6f) {\n    return 1;\n  }" if (parenthesized_expression "(local_10[0][2] != 0x6f)" ( (binary_expression "local_10[0][2] != 0x6f" (subscript_expression "local_10[0][2]" (subscript_expression "local_10[0]" identifier [ number_literal ]) [ number_literal ]) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_10[0][3] != 0x70) {\n    return 1;\n  }" if (parenthesized_expression "(local_10[0][3] != 0x70)" ( (binary_expression "local_10[0][3] != 0x70" (subscript_expression "local_10[0][3]" (subscript_expression "local_10[0]" identifier [ number_literal ]) [ number_literal ]) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_10[0] = local_10[0] + 4;" (assignment_expression "local_10[0] = local_10[0] + 4" (subscript_expression "local_10[0]" identifier [ number_literal ]) = (binary_expression "local_10[0] + 4" (subscript_expression "local_10[0]" identifier [ number_literal ]) + number_literal)) ;) (labeled_statement "LAB_00130ff4:\n  iVar1 = FUN_0012f960(param_1,local_10,0);" statement_identifier : (expression_statement "iVar1 = FUN_0012f960(param_1,local_10,0);" (assignment_expression "iVar1 = FUN_0012f960(param_1,local_10,0)" identifier = (call_expression "FUN_0012f960(param_1,local_10,0)" identifier (argument_list "(param_1,local_10,0)" ( identifier , identifier , number_literal )))) ;)) (if_statement "if (iVar1 != 0) {\n    iVar1 = 1;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = 1;\n  }" { (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit "bfd_boolean stab_demangle_function_name(stab_demangle_info *minfo,char **pp,char *scan)\n\n{\n  byte *pbVar1;\n  bfd_boolean bVar2;\n  long lVar3;\n  ulong uVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  char *tem;\n  \n  pbVar1 = (byte *)*pp;\n  *pp = scan + 2;\n  uVar4 = (long)(scan + 2) - (long)pbVar1;\n  bVar7 = uVar4 < 4;\n  bVar8 = uVar4 == 4;\n  if (4 < (long)uVar4) {\n    lVar3 = 4;\n    pbVar5 = pbVar1;\n    pbVar6 = (byte *)0x146a06;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar8 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar8);\n    if (((!bVar7 && !bVar8) == bVar7) && ((pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e)))) {\n      tem = (char *)(pbVar1 + 5);\n      goto LAB_00130ff4;\n    }\n  }\n  if (*pbVar1 != 0x5f) {\n    return 1;\n  }\n  if (pbVar1[1] != 0x5f) {\n    return 1;\n  }\n  if (pbVar1[2] != 0x6f) {\n    return 1;\n  }\n  if (pbVar1[3] != 0x70) {\n    return 1;\n  }\n  tem = (char *)(pbVar1 + 4);\nLAB_00130ff4:\n  bVar2 = stab_demangle_type(minfo,&tem,(debug_type_conflict *)0x0);\n  if (bVar2 != 0) {\n    bVar2 = 1;\n  }\n  return bVar2;\n}\n\n" (function_definition "bfd_boolean stab_demangle_function_name(stab_demangle_info *minfo,char **pp,char *scan)\n\n{\n  byte *pbVar1;\n  bfd_boolean bVar2;\n  long lVar3;\n  ulong uVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  char *tem;\n  \n  pbVar1 = (byte *)*pp;\n  *pp = scan + 2;\n  uVar4 = (long)(scan + 2) - (long)pbVar1;\n  bVar7 = uVar4 < 4;\n  bVar8 = uVar4 == 4;\n  if (4 < (long)uVar4) {\n    lVar3 = 4;\n    pbVar5 = pbVar1;\n    pbVar6 = (byte *)0x146a06;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar8 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar8);\n    if (((!bVar7 && !bVar8) == bVar7) && ((pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e)))) {\n      tem = (char *)(pbVar1 + 5);\n      goto LAB_00130ff4;\n    }\n  }\n  if (*pbVar1 != 0x5f) {\n    return 1;\n  }\n  if (pbVar1[1] != 0x5f) {\n    return 1;\n  }\n  if (pbVar1[2] != 0x6f) {\n    return 1;\n  }\n  if (pbVar1[3] != 0x70) {\n    return 1;\n  }\n  tem = (char *)(pbVar1 + 4);\nLAB_00130ff4:\n  bVar2 = stab_demangle_type(minfo,&tem,(debug_type_conflict *)0x0);\n  if (bVar2 != 0) {\n    bVar2 = 1;\n  }\n  return bVar2;\n}" type_identifier (function_declarator "stab_demangle_function_name(stab_demangle_info *minfo,char **pp,char *scan)" identifier (parameter_list "(stab_demangle_info *minfo,char **pp,char *scan)" ( (parameter_declaration "stab_demangle_info *minfo" type_identifier (pointer_declarator "*minfo" * identifier)) , (parameter_declaration "char **pp" primitive_type (pointer_declarator "**pp" * (pointer_declarator "*pp" * identifier))) , (parameter_declaration "char *scan" primitive_type (pointer_declarator "*scan" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  bfd_boolean bVar2;\n  long lVar3;\n  ulong uVar4;\n  byte *pbVar5;\n  byte *pbVar6;\n  bool bVar7;\n  bool bVar8;\n  char *tem;\n  \n  pbVar1 = (byte *)*pp;\n  *pp = scan + 2;\n  uVar4 = (long)(scan + 2) - (long)pbVar1;\n  bVar7 = uVar4 < 4;\n  bVar8 = uVar4 == 4;\n  if (4 < (long)uVar4) {\n    lVar3 = 4;\n    pbVar5 = pbVar1;\n    pbVar6 = (byte *)0x146a06;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar8 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar8);\n    if (((!bVar7 && !bVar8) == bVar7) && ((pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e)))) {\n      tem = (char *)(pbVar1 + 5);\n      goto LAB_00130ff4;\n    }\n  }\n  if (*pbVar1 != 0x5f) {\n    return 1;\n  }\n  if (pbVar1[1] != 0x5f) {\n    return 1;\n  }\n  if (pbVar1[2] != 0x6f) {\n    return 1;\n  }\n  if (pbVar1[3] != 0x70) {\n    return 1;\n  }\n  tem = (char *)(pbVar1 + 4);\nLAB_00130ff4:\n  bVar2 = stab_demangle_type(minfo,&tem,(debug_type_conflict *)0x0);\n  if (bVar2 != 0) {\n    bVar2 = 1;\n  }\n  return bVar2;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "bfd_boolean bVar2;" type_identifier identifier ;) (declaration "long lVar3;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "bool bVar7;" primitive_type identifier ;) (declaration "bool bVar8;" primitive_type identifier ;) (declaration "char *tem;" primitive_type (pointer_declarator "*tem" * identifier) ;) (expression_statement "pbVar1 = (byte *)*pp;" (assignment_expression "pbVar1 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "*pp = scan + 2;" (assignment_expression "*pp = scan + 2" (pointer_expression "*pp" * identifier) = (binary_expression "scan + 2" identifier + number_literal)) ;) (expression_statement "uVar4 = (long)(scan + 2) - (long)pbVar1;" (assignment_expression "uVar4 = (long)(scan + 2) - (long)pbVar1" identifier = (binary_expression "(long)(scan + 2) - (long)pbVar1" (cast_expression "(long)(scan + 2)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(scan + 2)" ( (binary_expression "scan + 2" identifier + number_literal) ))) - (cast_expression "(long)pbVar1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;) (expression_statement "bVar7 = uVar4 < 4;" (assignment_expression "bVar7 = uVar4 < 4" identifier = (binary_expression "uVar4 < 4" identifier < number_literal)) ;) (expression_statement "bVar8 = uVar4 == 4;" (assignment_expression "bVar8 = uVar4 == 4" identifier = (binary_expression "uVar4 == 4" identifier == number_literal)) ;) (if_statement "if (4 < (long)uVar4) {\n    lVar3 = 4;\n    pbVar5 = pbVar1;\n    pbVar6 = (byte *)0x146a06;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar8 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar8);\n    if (((!bVar7 && !bVar8) == bVar7) && ((pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e)))) {\n      tem = (char *)(pbVar1 + 5);\n      goto LAB_00130ff4;\n    }\n  }" if (parenthesized_expression "(4 < (long)uVar4)" ( (binary_expression "4 < (long)uVar4" number_literal < (cast_expression "(long)uVar4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n    lVar3 = 4;\n    pbVar5 = pbVar1;\n    pbVar6 = (byte *)0x146a06;\n    do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar8 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar8);\n    if (((!bVar7 && !bVar8) == bVar7) && ((pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e)))) {\n      tem = (char *)(pbVar1 + 5);\n      goto LAB_00130ff4;\n    }\n  }" { (expression_statement "lVar3 = 4;" (assignment_expression "lVar3 = 4" identifier = number_literal) ;) (expression_statement "pbVar5 = pbVar1;" (assignment_expression "pbVar5 = pbVar1" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)0x146a06;" (assignment_expression "pbVar6 = (byte *)0x146a06" identifier = (cast_expression "(byte *)0x146a06" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar8 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 1;\n    } while (bVar8);" do (compound_statement "{\n      if (lVar3 == 0) break;\n      lVar3 = lVar3 + -1;\n      bVar7 = *pbVar5 < *pbVar6;\n      bVar8 = *pbVar5 == *pbVar6;\n      pbVar5 = pbVar5 + 1;\n      pbVar6 = pbVar6 + 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 "bVar7 = *pbVar5 < *pbVar6;" (assignment_expression "bVar7 = *pbVar5 < *pbVar6" identifier = (binary_expression "*pbVar5 < *pbVar6" (pointer_expression "*pbVar5" * identifier) < (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "bVar8 = *pbVar5 == *pbVar6;" (assignment_expression "bVar8 = *pbVar5 == *pbVar6" identifier = (binary_expression "*pbVar5 == *pbVar6" (pointer_expression "*pbVar5" * identifier) == (pointer_expression "*pbVar6" * identifier))) ;) (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar8)" ( identifier )) ;) (if_statement "if (((!bVar7 && !bVar8) == bVar7) && ((pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e)))) {\n      tem = (char *)(pbVar1 + 5);\n      goto LAB_00130ff4;\n    }" if (parenthesized_expression "(((!bVar7 && !bVar8) == bVar7) && ((pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e))))" ( (binary_expression "((!bVar7 && !bVar8) == bVar7) && ((pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e)))" (parenthesized_expression "((!bVar7 && !bVar8) == bVar7)" ( (binary_expression "(!bVar7 && !bVar8) == bVar7" (parenthesized_expression "(!bVar7 && !bVar8)" ( (binary_expression "!bVar7 && !bVar8" (unary_expression "!bVar7" ! identifier) && (unary_expression "!bVar8" ! identifier)) )) == identifier) )) && (parenthesized_expression "((pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e)))" ( (parenthesized_expression "(pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e))" ( (binary_expression "pbVar1[4] == 0x24 || (pbVar1[4] == 0x2e)" (binary_expression "pbVar1[4] == 0x24" (subscript_expression "pbVar1[4]" identifier [ number_literal ]) == number_literal) || (parenthesized_expression "(pbVar1[4] == 0x2e)" ( (binary_expression "pbVar1[4] == 0x2e" (subscript_expression "pbVar1[4]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n      tem = (char *)(pbVar1 + 5);\n      goto LAB_00130ff4;\n    }" { (expression_statement "tem = (char *)(pbVar1 + 5);" (assignment_expression "tem = (char *)(pbVar1 + 5)" identifier = (cast_expression "(char *)(pbVar1 + 5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 5)" ( (binary_expression "pbVar1 + 5" identifier + number_literal) )))) ;) (goto_statement "goto LAB_00130ff4;" goto statement_identifier ;) })) })) (if_statement "if (*pbVar1 != 0x5f) {\n    return 1;\n  }" if (parenthesized_expression "(*pbVar1 != 0x5f)" ( (binary_expression "*pbVar1 != 0x5f" (pointer_expression "*pbVar1" * identifier) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (pbVar1[1] != 0x5f) {\n    return 1;\n  }" if (parenthesized_expression "(pbVar1[1] != 0x5f)" ( (binary_expression "pbVar1[1] != 0x5f" (subscript_expression "pbVar1[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (pbVar1[2] != 0x6f) {\n    return 1;\n  }" if (parenthesized_expression "(pbVar1[2] != 0x6f)" ( (binary_expression "pbVar1[2] != 0x6f" (subscript_expression "pbVar1[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (pbVar1[3] != 0x70) {\n    return 1;\n  }" if (parenthesized_expression "(pbVar1[3] != 0x70)" ( (binary_expression "pbVar1[3] != 0x70" (subscript_expression "pbVar1[3]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "tem = (char *)(pbVar1 + 4);" (assignment_expression "tem = (char *)(pbVar1 + 4)" identifier = (cast_expression "(char *)(pbVar1 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar1 + 4)" ( (binary_expression "pbVar1 + 4" identifier + number_literal) )))) ;) (labeled_statement "LAB_00130ff4:\n  bVar2 = stab_demangle_type(minfo,&tem,(debug_type_conflict *)0x0);" statement_identifier : (expression_statement "bVar2 = stab_demangle_type(minfo,&tem,(debug_type_conflict *)0x0);" (assignment_expression "bVar2 = stab_demangle_type(minfo,&tem,(debug_type_conflict *)0x0)" identifier = (call_expression "stab_demangle_type(minfo,&tem,(debug_type_conflict *)0x0)" identifier (argument_list "(minfo,&tem,(debug_type_conflict *)0x0)" ( identifier , (pointer_expression "&tem" & identifier) , (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) (if_statement "if (bVar2 != 0) {\n    bVar2 = 1;\n  }" if (parenthesized_expression "(bVar2 != 0)" ( (binary_expression "bVar2 != 0" identifier != number_literal) )) (compound_statement "{\n    bVar2 = 1;\n  }" { (expression_statement "bVar2 = 1;" (assignment_expression "bVar2 = 1" identifier = number_literal) ;) })) (return_statement "return bVar2;" return identifier ;) })))
(translation_unit "int FUN_00130f70(undefined8 param_1,long *param_2,long param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  ulong uVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  byte *local_10 [2];\n  \n  local_10[0] = (byte *)*param_2;\n  *param_2 = param_3 + 2;\n  uVar3 = (param_3 + 2) - (long)local_10[0];\n  bVar6 = uVar3 < 4;\n  bVar7 = uVar3 == 4;\n  if (4 < (long)uVar3) {\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }\n  if (*local_10[0] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][1] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][2] != 0x6f) {\n    return 1;\n  }\n  if (local_10[0][3] != 0x70) {\n    return 1;\n  }\n  local_10[0] = local_10[0] + 4;\nLAB_00130ff4:\n  iVar1 = FUN_0012f960(param_1,local_10,0);\n  if (iVar1 != 0) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}\n\n" (function_definition "int FUN_00130f70(undefined8 param_1,long *param_2,long param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  ulong uVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  byte *local_10 [2];\n  \n  local_10[0] = (byte *)*param_2;\n  *param_2 = param_3 + 2;\n  uVar3 = (param_3 + 2) - (long)local_10[0];\n  bVar6 = uVar3 < 4;\n  bVar7 = uVar3 == 4;\n  if (4 < (long)uVar3) {\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }\n  if (*local_10[0] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][1] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][2] != 0x6f) {\n    return 1;\n  }\n  if (local_10[0][3] != 0x70) {\n    return 1;\n  }\n  local_10[0] = local_10[0] + 4;\nLAB_00130ff4:\n  iVar1 = FUN_0012f960(param_1,local_10,0);\n  if (iVar1 != 0) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" primitive_type (function_declarator "FUN_00130f70(undefined8 param_1,long *param_2,long param_3)" identifier (parameter_list "(undefined8 param_1,long *param_2,long param_3)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  ulong uVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  byte *local_10 [2];\n  \n  local_10[0] = (byte *)*param_2;\n  *param_2 = param_3 + 2;\n  uVar3 = (param_3 + 2) - (long)local_10[0];\n  bVar6 = uVar3 < 4;\n  bVar7 = uVar3 == 4;\n  if (4 < (long)uVar3) {\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }\n  if (*local_10[0] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][1] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][2] != 0x6f) {\n    return 1;\n  }\n  if (local_10[0][3] != 0x70) {\n    return 1;\n  }\n  local_10[0] = local_10[0] + 4;\nLAB_00130ff4:\n  iVar1 = FUN_0012f960(param_1,local_10,0);\n  if (iVar1 != 0) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "ulong uVar3;" type_identifier 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 ;) (declaration "byte *local_10 [2];" type_identifier (pointer_declarator "*local_10 [2]" * (array_declarator "local_10 [2]" identifier [ number_literal ])) ;) (expression_statement "local_10[0] = (byte *)*param_2;" (assignment_expression "local_10[0] = (byte *)*param_2" (subscript_expression "local_10[0]" identifier [ number_literal ]) = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "*param_2 = param_3 + 2;" (assignment_expression "*param_2 = param_3 + 2" (pointer_expression "*param_2" * identifier) = (binary_expression "param_3 + 2" identifier + number_literal)) ;) (expression_statement "uVar3 = (param_3 + 2) - (long)local_10[0];" (assignment_expression "uVar3 = (param_3 + 2) - (long)local_10[0]" identifier = (binary_expression "(param_3 + 2) - (long)local_10[0]" (parenthesized_expression "(param_3 + 2)" ( (binary_expression "param_3 + 2" identifier + number_literal) )) - (cast_expression "(long)local_10[0]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "local_10[0]" identifier [ number_literal ])))) ;) (expression_statement "bVar6 = uVar3 < 4;" (assignment_expression "bVar6 = uVar3 < 4" identifier = (binary_expression "uVar3 < 4" identifier < number_literal)) ;) (expression_statement "bVar7 = uVar3 == 4;" (assignment_expression "bVar7 = uVar3 == 4" identifier = (binary_expression "uVar3 == 4" identifier == number_literal)) ;) (if_statement "if (4 < (long)uVar3) {\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }" if (parenthesized_expression "(4 < (long)uVar3)" ( (binary_expression "4 < (long)uVar3" number_literal < (cast_expression "(long)uVar3" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }" { (expression_statement "lVar2 = 4;" (assignment_expression "lVar2 = 4" identifier = number_literal) ;) (expression_statement "pbVar4 = local_10[0];" (assignment_expression "pbVar4 = local_10[0]" identifier = (subscript_expression "local_10[0]" identifier [ number_literal ])) ;) (expression_statement "pbVar5 = (byte *)0x146a06;" (assignment_expression "pbVar5 = (byte *)0x146a06" identifier = (cast_expression "(byte *)0x146a06" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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 (lVar2 == 0) break;\n      lVar2 = lVar2 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    }" { (if_statement "if (lVar2 == 0) break;" if (parenthesized_expression "(lVar2 == 0)" ( (binary_expression "lVar2 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar2 = lVar2 + -1;" (assignment_expression "lVar2 = lVar2 + -1" identifier = (binary_expression "lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }" if (parenthesized_expression "(((!bVar6 && !bVar7) == bVar6) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e))))" ( (binary_expression "((!bVar6 && !bVar7) == bVar6) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))" (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) )) && (parenthesized_expression "((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))" ( (parenthesized_expression "(local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e))" ( (binary_expression "local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)" (binary_expression "local_10[0][4] == 0x24" (subscript_expression "local_10[0][4]" (subscript_expression "local_10[0]" identifier [ number_literal ]) [ number_literal ]) == number_literal) || (parenthesized_expression "(local_10[0][4] == 0x2e)" ( (binary_expression "local_10[0][4] == 0x2e" (subscript_expression "local_10[0][4]" (subscript_expression "local_10[0]" identifier [ number_literal ]) [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }" { (expression_statement "local_10[0] = local_10[0] + 5;" (assignment_expression "local_10[0] = local_10[0] + 5" (subscript_expression "local_10[0]" identifier [ number_literal ]) = (binary_expression "local_10[0] + 5" (subscript_expression "local_10[0]" identifier [ number_literal ]) + number_literal)) ;) (goto_statement "goto LAB_00130ff4;" goto statement_identifier ;) })) })) (if_statement "if (*local_10[0] != 0x5f) {\n    return 1;\n  }" if (parenthesized_expression "(*local_10[0] != 0x5f)" ( (binary_expression "*local_10[0] != 0x5f" (pointer_expression "*local_10[0]" * (subscript_expression "local_10[0]" identifier [ number_literal ])) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_10[0][1] != 0x5f) {\n    return 1;\n  }" if (parenthesized_expression "(local_10[0][1] != 0x5f)" ( (binary_expression "local_10[0][1] != 0x5f" (subscript_expression "local_10[0][1]" (subscript_expression "local_10[0]" identifier [ number_literal ]) [ number_literal ]) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_10[0][2] != 0x6f) {\n    return 1;\n  }" if (parenthesized_expression "(local_10[0][2] != 0x6f)" ( (binary_expression "local_10[0][2] != 0x6f" (subscript_expression "local_10[0][2]" (subscript_expression "local_10[0]" identifier [ number_literal ]) [ number_literal ]) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (local_10[0][3] != 0x70) {\n    return 1;\n  }" if (parenthesized_expression "(local_10[0][3] != 0x70)" ( (binary_expression "local_10[0][3] != 0x70" (subscript_expression "local_10[0][3]" (subscript_expression "local_10[0]" identifier [ number_literal ]) [ number_literal ]) != number_literal) )) (compound_statement "{\n    return 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "local_10[0] = local_10[0] + 4;" (assignment_expression "local_10[0] = local_10[0] + 4" (subscript_expression "local_10[0]" identifier [ number_literal ]) = (binary_expression "local_10[0] + 4" (subscript_expression "local_10[0]" identifier [ number_literal ]) + number_literal)) ;) (labeled_statement "LAB_00130ff4:\n  iVar1 = FUN_0012f960(param_1,local_10,0);" statement_identifier : (expression_statement "iVar1 = FUN_0012f960(param_1,local_10,0);" (assignment_expression "iVar1 = FUN_0012f960(param_1,local_10,0)" identifier = (call_expression "FUN_0012f960(param_1,local_10,0)" identifier (argument_list "(param_1,local_10,0)" ( identifier , identifier , number_literal )))) ;)) (if_statement "if (iVar1 != 0) {\n    iVar1 = 1;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = 1;\n  }" { (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" identifier = number_literal) ;) })) (return_statement "return iVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (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 (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) == LIT) || (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (subscript_expression IDENT [ LIT ])) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_00130f70(undefined8 param_1,long *param_2,long param_3)\n\n{\n  int iVar1;\n  long lVar2;\n  ulong uVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  byte *local_10 [2];\n  \n  local_10[0] = (byte *)*param_2;\n  *param_2 = param_3 + 2;\n  uVar3 = (param_3 + 2) - (long)local_10[0];\n  bVar6 = uVar3 < 4;\n  bVar7 = uVar3 == 4;\n  if (4 < (long)uVar3) {\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }\n  if (*local_10[0] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][1] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][2] != 0x6f) {\n    return 1;\n  }\n  if (local_10[0][3] != 0x70) {\n    return 1;\n  }\n  local_10[0] = local_10[0] + 4;\nLAB_00130ff4:\n  iVar1 = FUN_0012f960(param_1,local_10,0);\n  if (iVar1 != 0) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" (primitive_type "int") (function_declarator "FUN_00130f70(undefined8 param_1,long *param_2,long param_3)" (identifier "FUN_00130f70") (parameter_list "(undefined8 param_1,long *param_2,long param_3)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) () ")"))) (compound_statement "{\n  int iVar1;\n  long lVar2;\n  ulong uVar3;\n  byte *pbVar4;\n  byte *pbVar5;\n  bool bVar6;\n  bool bVar7;\n  byte *local_10 [2];\n  \n  local_10[0] = (byte *)*param_2;\n  *param_2 = param_3 + 2;\n  uVar3 = (param_3 + 2) - (long)local_10[0];\n  bVar6 = uVar3 < 4;\n  bVar7 = uVar3 == 4;\n  if (4 < (long)uVar3) {\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }\n  if (*local_10[0] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][1] != 0x5f) {\n    return 1;\n  }\n  if (local_10[0][2] != 0x6f) {\n    return 1;\n  }\n  if (local_10[0][3] != 0x70) {\n    return 1;\n  }\n  local_10[0] = local_10[0] + 4;\nLAB_00130ff4:\n  iVar1 = FUN_0012f960(param_1,local_10,0);\n  if (iVar1 != 0) {\n    iVar1 = 1;\n  }\n  return iVar1;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "long lVar2;" (sized_type_specifier "long" (long "long")) (identifier "lVar2") (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (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") (; ";")) (declaration "byte *local_10 [2];" (type_identifier "byte") (pointer_declarator "*local_10 [2]" (* "*") (array_declarator "local_10 [2]" (identifier "local_10") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_10[0] = (byte *)*param_2;" (assignment_expression "local_10[0] = (byte *)*param_2" (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "*param_2 = param_3 + 2;" (assignment_expression "*param_2 = param_3 + 2" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar3 = (param_3 + 2) - (long)local_10[0];" (assignment_expression "uVar3 = (param_3 + 2) - (long)local_10[0]" (identifier "uVar3") (= "=") (binary_expression "(param_3 + 2) - (long)local_10[0]" (parenthesized_expression "(param_3 + 2)" (( "(") (binary_expression "param_3 + 2" (identifier "param_3") (+ "+") (number_literal "2")) () ")")) (- "-") (cast_expression "(long)local_10[0]" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]"))))) (; ";")) (expression_statement "bVar6 = uVar3 < 4;" (assignment_expression "bVar6 = uVar3 < 4" (identifier "bVar6") (= "=") (binary_expression "uVar3 < 4" (identifier "uVar3") (< "<") (number_literal "4"))) (; ";")) (expression_statement "bVar7 = uVar3 == 4;" (assignment_expression "bVar7 = uVar3 == 4" (identifier "bVar7") (= "=") (binary_expression "uVar3 == 4" (identifier "uVar3") (== "==") (number_literal "4"))) (; ";")) (if_statement "if (4 < (long)uVar3) {\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }" (if "if") (parenthesized_expression "(4 < (long)uVar3)" (( "(") (binary_expression "4 < (long)uVar3" (number_literal "4") (< "<") (cast_expression "(long)uVar3" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar3"))) () ")")) (compound_statement "{\n    lVar2 = 4;\n    pbVar4 = local_10[0];\n    pbVar5 = (byte *)0x146a06;\n    do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }\n  }" ({ "{") (expression_statement "lVar2 = 4;" (assignment_expression "lVar2 = 4" (identifier "lVar2") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar4 = local_10[0];" (assignment_expression "pbVar4 = local_10[0]" (identifier "pbVar4") (= "=") (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "pbVar5 = (byte *)0x146a06;" (assignment_expression "pbVar5 = (byte *)0x146a06" (identifier "pbVar5") (= "=") (cast_expression "(byte *)0x146a06" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x146a06"))) (; ";")) (do_statement "do {\n      if (lVar2 == 0) break;\n      lVar2 = lVar2 + -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 (lVar2 == 0) break;\n      lVar2 = lVar2 + -1;\n      bVar6 = *pbVar4 < *pbVar5;\n      bVar7 = *pbVar4 == *pbVar5;\n      pbVar4 = pbVar4 + 1;\n      pbVar5 = pbVar5 + 1;\n    }" ({ "{") (if_statement "if (lVar2 == 0) break;" (if "if") (parenthesized_expression "(lVar2 == 0)" (( "(") (binary_expression "lVar2 == 0" (identifier "lVar2") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar2 = lVar2 + -1;" (assignment_expression "lVar2 = lVar2 + -1" (identifier "lVar2") (= "=") (binary_expression "lVar2 + -1" (identifier "lVar2") (+ "+") (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) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }" (if "if") (parenthesized_expression "(((!bVar6 && !bVar7) == bVar6) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e))))" (( "(") (binary_expression "((!bVar6 && !bVar7) == bVar6) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))" (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")) () ")")) (&& "&&") (parenthesized_expression "((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))" (( "(") (parenthesized_expression "(local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e))" (( "(") (binary_expression "local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)" (binary_expression "local_10[0][4] == 0x24" (subscript_expression "local_10[0][4]" (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0x24")) (|| "||") (parenthesized_expression "(local_10[0][4] == 0x2e)" (( "(") (binary_expression "local_10[0][4] == 0x2e" (subscript_expression "local_10[0][4]" (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "4") (] "]")) (== "==") (number_literal "0x2e")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      local_10[0] = local_10[0] + 5;\n      goto LAB_00130ff4;\n    }" ({ "{") (expression_statement "local_10[0] = local_10[0] + 5;" (assignment_expression "local_10[0] = local_10[0] + 5" (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_10[0] + 5" (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "5"))) (; ";")) (goto_statement "goto LAB_00130ff4;" (goto "goto") (statement_identifier "LAB_00130ff4") (; ";")) (} "}"))) (} "}"))) (if_statement "if (*local_10[0] != 0x5f) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(*local_10[0] != 0x5f)" (( "(") (binary_expression "*local_10[0] != 0x5f" (pointer_expression "*local_10[0]" (* "*") (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]"))) (!= "!=") (number_literal "0x5f")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_10[0][1] != 0x5f) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_10[0][1] != 0x5f)" (( "(") (binary_expression "local_10[0][1] != 0x5f" (subscript_expression "local_10[0][1]" (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x5f")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_10[0][2] != 0x6f) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_10[0][2] != 0x6f)" (( "(") (binary_expression "local_10[0][2] != 0x6f" (subscript_expression "local_10[0][2]" (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0x6f")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if (local_10[0][3] != 0x70) {\n    return 1;\n  }" (if "if") (parenthesized_expression "(local_10[0][3] != 0x70)" (( "(") (binary_expression "local_10[0][3] != 0x70" (subscript_expression "local_10[0][3]" (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "3") (] "]")) (!= "!=") (number_literal "0x70")) () ")")) (compound_statement "{\n    return 1;\n  }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "local_10[0] = local_10[0] + 4;" (assignment_expression "local_10[0] = local_10[0] + 4" (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_10[0] + 4" (subscript_expression "local_10[0]" (identifier "local_10") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (labeled_statement "LAB_00130ff4:\n  iVar1 = FUN_0012f960(param_1,local_10,0);" (statement_identifier "LAB_00130ff4") (: ":") (expression_statement "iVar1 = FUN_0012f960(param_1,local_10,0);" (assignment_expression "iVar1 = FUN_0012f960(param_1,local_10,0)" (identifier "iVar1") (= "=") (call_expression "FUN_0012f960(param_1,local_10,0)" (identifier "FUN_0012f960") (argument_list "(param_1,local_10,0)" (( "(") (identifier "param_1") (, ",") (identifier "local_10") (, ",") (number_literal "0") () ")")))) (; ";"))) (if_statement "if (iVar1 != 0) {\n    iVar1 = 1;\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = 1;\n  }" ({ "{") (expression_statement "iVar1 = 1;" (assignment_expression "iVar1 = 1" (identifier "iVar1") (= "=") (number_literal "1")) (; ";")) (} "}"))) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}")))

type_1 function_1(type_2 *minfo,char **pp,char *var_1)

{
  type_3 *var_7;
  type_1 var_9;
  long var_3;
  type_4 var_2;
  type_3 *var_4;
  type_3 *var_5;
  bool var_6;
  bool bVar8;
  char *tem;
  
  var_7 = (type_3 *)*pp;
  *pp = var_1 + 2;
  var_2 = (long)(var_1 + 2) - (long)var_7;
  var_6 = var_2 < 4;
  bVar8 = var_2 == 4;
  if (4 < (long)var_2) {
    var_3 = 4;
    var_4 = var_7;
    var_5 = (type_3 *)0x146a06;
    do {
      if (var_3 == 0) break;
      var_3 = var_3 + -1;
      var_6 = *var_4 < *var_5;
      bVar8 = *var_4 == *var_5;
      var_4 = var_4 + 1;
      var_5 = var_5 + 1;
    } while (bVar8);
    if (((!var_6 && !bVar8) == var_6) && ((var_7[4] == 0x24 || (var_7[4] == 0x2e)))) {
      tem = (char *)(var_7 + 5);
      goto LAB_00130ff4;
    }
  }
  if (*var_7 != 0x5f) {
    return 1;
  }
  if (var_7[1] != 0x5f) {
    return 1;
  }
  if (var_7[2] != 0x6f) {
    return 1;
  }
  if (var_7[3] != 0x70) {
    return 1;
  }
  tem = (char *)(var_7 + 4);
LAB_00130ff4:
  var_9 = var_8(minfo,&tem,(type_5 *)0x0);
  if (var_9 != 0) {
    var_9 = 1;
  }
  return var_9;
}


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

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

{
  int iVar1;
  long lVar2;
  ulong uVar3;
  byte *pbVar4;
  byte *pbVar5;
  bool bVar6;
  bool bVar7;
  byte *local_10 [2];
  
  local_10[0] = (byte *)*param_2;
  *param_2 = param_3 + 2;
  uVar3 = (param_3 + 2) - (long)local_10[0];
  bVar6 = uVar3 < 4;
  bVar7 = uVar3 == 4;
  if (4 < (long)uVar3) {
    lVar2 = 4;
    pbVar4 = local_10[0];
    pbVar5 = (byte *)0x146a06;
    do {
      if (lVar2 == 0) break;
      lVar2 = lVar2 + -1;
      bVar6 = *pbVar4 < *pbVar5;
      bVar7 = *pbVar4 == *pbVar5;
      pbVar4 = pbVar4 + 1;
      pbVar5 = pbVar5 + 1;
    } while (bVar7);
    if (((!bVar6 && !bVar7) == bVar6) && ((local_10[0][4] == 0x24 || (local_10[0][4] == 0x2e)))) {
      local_10[0] = local_10[0] + 5;
      goto LAB_00130ff4;
    }
  }
  if (*local_10[0] != 0x5f) {
    return 1;
  }
  if (local_10[0][1] != 0x5f) {
    return 1;
  }
  if (local_10[0][2] != 0x6f) {
    return 1;
  }
  if (local_10[0][3] != 0x70) {
    return 1;
  }
  local_10[0] = local_10[0] + 4;
LAB_00130ff4:
  iVar1 = FUN_0012f960(param_1,local_10,0);
  if (iVar1 != 0) {
    iVar1 = 1;
  }
  return iVar1;
}

