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

void bb_write_blocks(FILE *ofp,char *filename)

{
  int iVar1;
  Sym *pSVar2;
  bfd_vma *pbVar3;
  uint val;
  ulong *puVar4;
  
  val = 0;
  pSVar2 = symtab.base;
  if (symtab.base < symtab.limit) {
    do {
      iVar1 = 0;
      do {
        if (pSVar2->bb_addr[iVar1] == 0) goto LAB_0001398d;
        iVar1 = iVar1 + 1;
      } while (iVar1 != 10);
      iVar1 = 10;
LAB_0001398d:
      pSVar2 = pSVar2 + 1;
      val = val + iVar1;
    } while (pSVar2 < symtab.limit);
  }
  iVar1 = gmon_io_write_8(ofp,2);
  if ((iVar1 != 0) || (iVar1 = gmon_io_write_32(ofp,val), iVar1 != 0)) {
LAB_00013a28:
    perror(filename);
                    /* WARNING: Subroutine does not return */
    done(1);
  }
  puVar4 = (symtab.base)->bb_calls;
  if (symtab.base < symtab.limit) {
    do {
      pbVar3 = puVar4 + -10;
      do {
        if (*pbVar3 == 0) break;
        iVar1 = gmon_io_write_vma(ofp,*pbVar3);
        if ((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))
        goto LAB_00013a28;
        pbVar3 = pbVar3 + 1;
      } while (pbVar3 != puVar4);
      pSVar2 = (Sym *)(puVar4 + 0x20);
      puVar4 = puVar4 + 0x32;
    } while (pSVar2 < symtab.limit);
  }
  return;
}



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

void FUN_00013940(undefined4 param_1,char *param_2)

{
  int iVar1;
  int *piVar2;
  int *piVar3;
  int iVar4;
  
  iVar4 = 0;
  piVar2 = DAT_0002d4ac;
  if (DAT_0002d4ac < DAT_0002d4b0) {
    do {
      iVar1 = 0;
      do {
        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;
        iVar1 = iVar1 + 1;
      } while (iVar1 != 10);
      iVar1 = 10;
LAB_0001398d:
      piVar2 = piVar2 + 0x32;
      iVar4 = iVar4 + iVar1;
    } while (piVar2 < DAT_0002d4b0);
  }
  iVar1 = FUN_00019b60(param_1,2);
  if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {
LAB_00013a28:
    perror(param_2);
                    /* WARNING: Subroutine does not return */
    FUN_0001a990(1);
  }
  piVar2 = DAT_0002d4ac + 0x12;
  if (DAT_0002d4ac < DAT_0002d4b0) {
    do {
      piVar3 = piVar2 + -10;
      do {
        if (*piVar3 == 0) break;
        iVar4 = FUN_00019b00(param_1,*piVar3);
        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))
        goto LAB_00013a28;
        piVar3 = piVar3 + 1;
      } while (piVar3 != piVar2);
      piVar3 = piVar2 + 0x20;
      piVar2 = piVar2 + 0x32;
    } while (piVar3 < DAT_0002d4b0);
  }
  return;
}


PUSH EBP
PUSH EDI
XOR EDI,EDI
PUSH ESI
PUSH EBX
CALL 0x00013030
ADD EBX,0x186b5
SUB ESP,0x1c
MOV ESI,dword ptr [ESP + 0x30]
LEA EAX,[EBX + 0x14a8]
MOV EDX,dword ptr [EAX + 0x4]
MOV ECX,dword ptr [EAX + 0x8]
MOV dword ptr [ESP + 0xc],EAX
CMP EDX,ECX
JNC 0x00013999
LEA ESI,[ESI]
XOR EAX,EAX
LEA ESI,[ESI]
MOV EBP,dword ptr [EDX + EAX*0x4 + 0x20]
TEST EBP,EBP
JZ 0x0001398d
ADD EAX,0x1
CMP EAX,0xa
JNZ 0x00013978
MOV EAX,0xa
ADD EDX,0xc8
ADD EDI,EAX
CMP EDX,ECX
JC 0x00013970
SUB ESP,0x8
PUSH 0x2
PUSH ESI
CALL 0x00019b60
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00013a28
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL 0x00019ab0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00013a28
MOV ECX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ECX + 0x4]
LEA EDI,[EAX + 0x48]
CMP EAX,dword ptr [ECX + 0x8]
JNC 0x00013a20
LEA ESI,[ESI]
NOP
LEA EBP,[EDI + -0x28]
LEA ESI,[ESI]
NOP
MOV EAX,dword ptr [EBP]
TEST EAX,EAX
JZ 0x00013a0a
SUB ESP,0x8
PUSH EAX
PUSH ESI
CALL 0x00019b00
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00013a28
SUB ESP,0x8
PUSH dword ptr [EBP + 0x28]
PUSH ESI
CALL 0x00019b00
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00013a28
ADD EBP,0x4
CMP EBP,EDI
JNZ 0x000139d8
MOV ECX,dword ptr [ESP + 0xc]
LEA EAX,[EDI + 0xc8]
SUB EDI,-0x80
CMP dword ptr [ECX + 0x8],EDI
JBE 0x00013a20
MOV EDI,EAX
JMP 0x000139d0
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
SUB ESP,0xc
PUSH dword ptr [ESP + 0x40]
CALL 0x000121b0
MOV dword ptr [ESP],0x1
CALL 0x0001a990
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_00013940(undefined4 param_1,char *param_2)\n\n{\n  int iVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  piVar2 = DAT_0002d4ac;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }\n  iVar1 = FUN_00019b60(param_1,2);\n  if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {\nLAB_00013a28:\n    perror(param_2);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a990(1);\n  }\n  piVar2 = DAT_0002d4ac + 0x12;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }\n  return;\n}\n\n" comment (function_definition "void FUN_00013940(undefined4 param_1,char *param_2)\n\n{\n  int iVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  piVar2 = DAT_0002d4ac;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }\n  iVar1 = FUN_00019b60(param_1,2);\n  if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {\nLAB_00013a28:\n    perror(param_2);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a990(1);\n  }\n  piVar2 = DAT_0002d4ac + 0x12;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00013940(undefined4 param_1,char *param_2)" identifier (parameter_list "(undefined4 param_1,char *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  piVar2 = DAT_0002d4ac;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }\n  iVar1 = FUN_00019b60(param_1,2);\n  if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {\nLAB_00013a28:\n    perror(param_2);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a990(1);\n  }\n  piVar2 = DAT_0002d4ac + 0x12;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "piVar2 = DAT_0002d4ac;" (assignment_expression "piVar2 = DAT_0002d4ac" identifier = identifier) ;) (if_statement "if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }" if (parenthesized_expression "(DAT_0002d4ac < DAT_0002d4b0)" ( (binary_expression "DAT_0002d4ac < DAT_0002d4b0" identifier < identifier) )) (compound_statement "{\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }" { (do_statement "do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);" do (compound_statement "{\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);" do (compound_statement "{\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      }" { (if_statement "if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;" if (parenthesized_expression "(piVar2[iVar1 + 8] == 0)" ( (binary_expression "piVar2[iVar1 + 8] == 0" (subscript_expression "piVar2[iVar1 + 8]" identifier [ (binary_expression "iVar1 + 8" identifier + number_literal) ]) == number_literal) )) (goto_statement "goto LAB_0001398d;" goto statement_identifier ;)) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 10)" ( (binary_expression "iVar1 != 10" identifier != number_literal) )) ;) (expression_statement "iVar1 = 10;" (assignment_expression "iVar1 = 10" identifier = number_literal) ;) (labeled_statement "LAB_0001398d:\n      piVar2 = piVar2 + 0x32;" statement_identifier : (expression_statement "piVar2 = piVar2 + 0x32;" (assignment_expression "piVar2 = piVar2 + 0x32" identifier = (binary_expression "piVar2 + 0x32" identifier + number_literal)) ;)) (expression_statement "iVar4 = iVar4 + iVar1;" (assignment_expression "iVar4 = iVar4 + iVar1" identifier = (binary_expression "iVar4 + iVar1" identifier + identifier)) ;) }) while (parenthesized_expression "(piVar2 < DAT_0002d4b0)" ( (binary_expression "piVar2 < DAT_0002d4b0" identifier < identifier) )) ;) })) (expression_statement "iVar1 = FUN_00019b60(param_1,2);" (assignment_expression "iVar1 = FUN_00019b60(param_1,2)" identifier = (call_expression "FUN_00019b60(param_1,2)" identifier (argument_list "(param_1,2)" ( identifier , number_literal )))) ;) (if_statement "if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {\nLAB_00013a28:\n    perror(param_2);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a990(1);\n  }" if (parenthesized_expression "((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0))" ( (binary_expression "(iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0" (assignment_expression "iVar4 = FUN_00019ab0(param_1,iVar4)" identifier = (call_expression "FUN_00019ab0(param_1,iVar4)" identifier (argument_list "(param_1,iVar4)" ( identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_00013a28:\n    perror(param_2);\n                    /* WARNING: Subroutine does not return */\n    FUN_0001a990(1);\n  }" { (labeled_statement "LAB_00013a28:\n    perror(param_2);" statement_identifier : (expression_statement "perror(param_2);" (call_expression "perror(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;)) comment (expression_statement "FUN_0001a990(1);" (call_expression "FUN_0001a990(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "piVar2 = DAT_0002d4ac + 0x12;" (assignment_expression "piVar2 = DAT_0002d4ac + 0x12" identifier = (binary_expression "DAT_0002d4ac + 0x12" identifier + number_literal)) ;) (if_statement "if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }" if (parenthesized_expression "(DAT_0002d4ac < DAT_0002d4b0)" ( (binary_expression "DAT_0002d4ac < DAT_0002d4b0" identifier < identifier) )) (compound_statement "{\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }" { (do_statement "do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);" do (compound_statement "{\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    }" { (expression_statement "piVar3 = piVar2 + -10;" (assignment_expression "piVar3 = piVar2 + -10" identifier = (binary_expression "piVar2 + -10" identifier + number_literal)) ;) (do_statement "do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);" do (compound_statement "{\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      }" { (if_statement "if (*piVar3 == 0) break;" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = FUN_00019b00(param_1,*piVar3);" (assignment_expression "iVar4 = FUN_00019b00(param_1,*piVar3)" identifier = (call_expression "FUN_00019b00(param_1,*piVar3)" identifier (argument_list "(param_1,*piVar3)" ( identifier , (pointer_expression "*piVar3" * identifier) )))) ;) (if_statement "if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;" if (parenthesized_expression "((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))" ( (binary_expression "(iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0" (assignment_expression "iVar4 = FUN_00019b00(param_1,piVar3[10])" identifier = (call_expression "FUN_00019b00(param_1,piVar3[10])" identifier (argument_list "(param_1,piVar3[10])" ( identifier , (subscript_expression "piVar3[10]" identifier [ number_literal ]) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00013a28;" goto statement_identifier ;)) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" identifier = (binary_expression "piVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar3 != piVar2)" ( (binary_expression "piVar3 != piVar2" identifier != identifier) )) ;) (expression_statement "piVar3 = piVar2 + 0x20;" (assignment_expression "piVar3 = piVar2 + 0x20" identifier = (binary_expression "piVar2 + 0x20" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 0x32;" (assignment_expression "piVar2 = piVar2 + 0x32" identifier = (binary_expression "piVar2 + 0x32" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar3 < DAT_0002d4b0)" ( (binary_expression "piVar3 < DAT_0002d4b0" identifier < identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Unknown calling convention */\n\nvoid bb_write_blocks(FILE *ofp,char *filename)\n\n{\n  int iVar1;\n  Sym *pSVar2;\n  bfd_vma *pbVar3;\n  uint val;\n  ulong *puVar4;\n  \n  val = 0;\n  pSVar2 = symtab.base;\n  if (symtab.base < symtab.limit) {\n    do {\n      iVar1 = 0;\n      do {\n        if (pSVar2->bb_addr[iVar1] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      pSVar2 = pSVar2 + 1;\n      val = val + iVar1;\n    } while (pSVar2 < symtab.limit);\n  }\n  iVar1 = gmon_io_write_8(ofp,2);\n  if ((iVar1 != 0) || (iVar1 = gmon_io_write_32(ofp,val), iVar1 != 0)) {\nLAB_00013a28:\n    perror(filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  puVar4 = (symtab.base)->bb_calls;\n  if (symtab.base < symtab.limit) {\n    do {\n      pbVar3 = puVar4 + -10;\n      do {\n        if (*pbVar3 == 0) break;\n        iVar1 = gmon_io_write_vma(ofp,*pbVar3);\n        if ((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))\n        goto LAB_00013a28;\n        pbVar3 = pbVar3 + 1;\n      } while (pbVar3 != puVar4);\n      pSVar2 = (Sym *)(puVar4 + 0x20);\n      puVar4 = puVar4 + 0x32;\n    } while (pSVar2 < symtab.limit);\n  }\n  return;\n}\n\n" comment comment (function_definition "void bb_write_blocks(FILE *ofp,char *filename)\n\n{\n  int iVar1;\n  Sym *pSVar2;\n  bfd_vma *pbVar3;\n  uint val;\n  ulong *puVar4;\n  \n  val = 0;\n  pSVar2 = symtab.base;\n  if (symtab.base < symtab.limit) {\n    do {\n      iVar1 = 0;\n      do {\n        if (pSVar2->bb_addr[iVar1] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      pSVar2 = pSVar2 + 1;\n      val = val + iVar1;\n    } while (pSVar2 < symtab.limit);\n  }\n  iVar1 = gmon_io_write_8(ofp,2);\n  if ((iVar1 != 0) || (iVar1 = gmon_io_write_32(ofp,val), iVar1 != 0)) {\nLAB_00013a28:\n    perror(filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  puVar4 = (symtab.base)->bb_calls;\n  if (symtab.base < symtab.limit) {\n    do {\n      pbVar3 = puVar4 + -10;\n      do {\n        if (*pbVar3 == 0) break;\n        iVar1 = gmon_io_write_vma(ofp,*pbVar3);\n        if ((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))\n        goto LAB_00013a28;\n        pbVar3 = pbVar3 + 1;\n      } while (pbVar3 != puVar4);\n      pSVar2 = (Sym *)(puVar4 + 0x20);\n      puVar4 = puVar4 + 0x32;\n    } while (pSVar2 < symtab.limit);\n  }\n  return;\n}" primitive_type (function_declarator "bb_write_blocks(FILE *ofp,char *filename)" identifier (parameter_list "(FILE *ofp,char *filename)" ( (parameter_declaration "FILE *ofp" type_identifier (pointer_declarator "*ofp" * identifier)) , (parameter_declaration "char *filename" primitive_type (pointer_declarator "*filename" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  Sym *pSVar2;\n  bfd_vma *pbVar3;\n  uint val;\n  ulong *puVar4;\n  \n  val = 0;\n  pSVar2 = symtab.base;\n  if (symtab.base < symtab.limit) {\n    do {\n      iVar1 = 0;\n      do {\n        if (pSVar2->bb_addr[iVar1] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      pSVar2 = pSVar2 + 1;\n      val = val + iVar1;\n    } while (pSVar2 < symtab.limit);\n  }\n  iVar1 = gmon_io_write_8(ofp,2);\n  if ((iVar1 != 0) || (iVar1 = gmon_io_write_32(ofp,val), iVar1 != 0)) {\nLAB_00013a28:\n    perror(filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }\n  puVar4 = (symtab.base)->bb_calls;\n  if (symtab.base < symtab.limit) {\n    do {\n      pbVar3 = puVar4 + -10;\n      do {\n        if (*pbVar3 == 0) break;\n        iVar1 = gmon_io_write_vma(ofp,*pbVar3);\n        if ((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))\n        goto LAB_00013a28;\n        pbVar3 = pbVar3 + 1;\n      } while (pbVar3 != puVar4);\n      pSVar2 = (Sym *)(puVar4 + 0x20);\n      puVar4 = puVar4 + 0x32;\n    } while (pSVar2 < symtab.limit);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "Sym *pSVar2;" type_identifier (pointer_declarator "*pSVar2" * identifier) ;) (declaration "bfd_vma *pbVar3;" type_identifier (pointer_declarator "*pbVar3" * identifier) ;) (declaration "uint val;" type_identifier identifier ;) (declaration "ulong *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (expression_statement "val = 0;" (assignment_expression "val = 0" identifier = number_literal) ;) (expression_statement "pSVar2 = symtab.base;" (assignment_expression "pSVar2 = symtab.base" identifier = (field_expression "symtab.base" identifier . field_identifier)) ;) (if_statement "if (symtab.base < symtab.limit) {\n    do {\n      iVar1 = 0;\n      do {\n        if (pSVar2->bb_addr[iVar1] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      pSVar2 = pSVar2 + 1;\n      val = val + iVar1;\n    } while (pSVar2 < symtab.limit);\n  }" if (parenthesized_expression "(symtab.base < symtab.limit)" ( (binary_expression "symtab.base < symtab.limit" (field_expression "symtab.base" identifier . field_identifier) < (field_expression "symtab.limit" identifier . field_identifier)) )) (compound_statement "{\n    do {\n      iVar1 = 0;\n      do {\n        if (pSVar2->bb_addr[iVar1] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      pSVar2 = pSVar2 + 1;\n      val = val + iVar1;\n    } while (pSVar2 < symtab.limit);\n  }" { (do_statement "do {\n      iVar1 = 0;\n      do {\n        if (pSVar2->bb_addr[iVar1] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      pSVar2 = pSVar2 + 1;\n      val = val + iVar1;\n    } while (pSVar2 < symtab.limit);" do (compound_statement "{\n      iVar1 = 0;\n      do {\n        if (pSVar2->bb_addr[iVar1] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      pSVar2 = pSVar2 + 1;\n      val = val + iVar1;\n    }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (pSVar2->bb_addr[iVar1] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);" do (compound_statement "{\n        if (pSVar2->bb_addr[iVar1] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      }" { (if_statement "if (pSVar2->bb_addr[iVar1] == 0) goto LAB_0001398d;" if (parenthesized_expression "(pSVar2->bb_addr[iVar1] == 0)" ( (binary_expression "pSVar2->bb_addr[iVar1] == 0" (subscript_expression "pSVar2->bb_addr[iVar1]" (field_expression "pSVar2->bb_addr" identifier -> field_identifier) [ identifier ]) == number_literal) )) (goto_statement "goto LAB_0001398d;" goto statement_identifier ;)) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 10)" ( (binary_expression "iVar1 != 10" identifier != number_literal) )) ;) (expression_statement "iVar1 = 10;" (assignment_expression "iVar1 = 10" identifier = number_literal) ;) (labeled_statement "LAB_0001398d:\n      pSVar2 = pSVar2 + 1;" statement_identifier : (expression_statement "pSVar2 = pSVar2 + 1;" (assignment_expression "pSVar2 = pSVar2 + 1" identifier = (binary_expression "pSVar2 + 1" identifier + number_literal)) ;)) (expression_statement "val = val + iVar1;" (assignment_expression "val = val + iVar1" identifier = (binary_expression "val + iVar1" identifier + identifier)) ;) }) while (parenthesized_expression "(pSVar2 < symtab.limit)" ( (binary_expression "pSVar2 < symtab.limit" identifier < (field_expression "symtab.limit" identifier . field_identifier)) )) ;) })) (expression_statement "iVar1 = gmon_io_write_8(ofp,2);" (assignment_expression "iVar1 = gmon_io_write_8(ofp,2)" identifier = (call_expression "gmon_io_write_8(ofp,2)" identifier (argument_list "(ofp,2)" ( identifier , number_literal )))) ;) (if_statement "if ((iVar1 != 0) || (iVar1 = gmon_io_write_32(ofp,val), iVar1 != 0)) {\nLAB_00013a28:\n    perror(filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" if (parenthesized_expression "((iVar1 != 0) || (iVar1 = gmon_io_write_32(ofp,val), iVar1 != 0))" ( (binary_expression "(iVar1 != 0) || (iVar1 = gmon_io_write_32(ofp,val), iVar1 != 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar1 = gmon_io_write_32(ofp,val), iVar1 != 0)" ( (comma_expression "iVar1 = gmon_io_write_32(ofp,val), iVar1 != 0" (assignment_expression "iVar1 = gmon_io_write_32(ofp,val)" identifier = (call_expression "gmon_io_write_32(ofp,val)" identifier (argument_list "(ofp,val)" ( identifier , identifier )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_00013a28:\n    perror(filename);\n                    /* WARNING: Subroutine does not return */\n    done(1);\n  }" { (labeled_statement "LAB_00013a28:\n    perror(filename);" statement_identifier : (expression_statement "perror(filename);" (call_expression "perror(filename)" identifier (argument_list "(filename)" ( identifier ))) ;)) comment (expression_statement "done(1);" (call_expression "done(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "puVar4 = (symtab.base)->bb_calls;" (assignment_expression "puVar4 = (symtab.base)->bb_calls" identifier = (field_expression "(symtab.base)->bb_calls" (parenthesized_expression "(symtab.base)" ( (field_expression "symtab.base" identifier . field_identifier) )) -> field_identifier)) ;) (if_statement "if (symtab.base < symtab.limit) {\n    do {\n      pbVar3 = puVar4 + -10;\n      do {\n        if (*pbVar3 == 0) break;\n        iVar1 = gmon_io_write_vma(ofp,*pbVar3);\n        if ((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))\n        goto LAB_00013a28;\n        pbVar3 = pbVar3 + 1;\n      } while (pbVar3 != puVar4);\n      pSVar2 = (Sym *)(puVar4 + 0x20);\n      puVar4 = puVar4 + 0x32;\n    } while (pSVar2 < symtab.limit);\n  }" if (parenthesized_expression "(symtab.base < symtab.limit)" ( (binary_expression "symtab.base < symtab.limit" (field_expression "symtab.base" identifier . field_identifier) < (field_expression "symtab.limit" identifier . field_identifier)) )) (compound_statement "{\n    do {\n      pbVar3 = puVar4 + -10;\n      do {\n        if (*pbVar3 == 0) break;\n        iVar1 = gmon_io_write_vma(ofp,*pbVar3);\n        if ((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))\n        goto LAB_00013a28;\n        pbVar3 = pbVar3 + 1;\n      } while (pbVar3 != puVar4);\n      pSVar2 = (Sym *)(puVar4 + 0x20);\n      puVar4 = puVar4 + 0x32;\n    } while (pSVar2 < symtab.limit);\n  }" { (do_statement "do {\n      pbVar3 = puVar4 + -10;\n      do {\n        if (*pbVar3 == 0) break;\n        iVar1 = gmon_io_write_vma(ofp,*pbVar3);\n        if ((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))\n        goto LAB_00013a28;\n        pbVar3 = pbVar3 + 1;\n      } while (pbVar3 != puVar4);\n      pSVar2 = (Sym *)(puVar4 + 0x20);\n      puVar4 = puVar4 + 0x32;\n    } while (pSVar2 < symtab.limit);" do (compound_statement "{\n      pbVar3 = puVar4 + -10;\n      do {\n        if (*pbVar3 == 0) break;\n        iVar1 = gmon_io_write_vma(ofp,*pbVar3);\n        if ((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))\n        goto LAB_00013a28;\n        pbVar3 = pbVar3 + 1;\n      } while (pbVar3 != puVar4);\n      pSVar2 = (Sym *)(puVar4 + 0x20);\n      puVar4 = puVar4 + 0x32;\n    }" { (expression_statement "pbVar3 = puVar4 + -10;" (assignment_expression "pbVar3 = puVar4 + -10" identifier = (binary_expression "puVar4 + -10" identifier + number_literal)) ;) (do_statement "do {\n        if (*pbVar3 == 0) break;\n        iVar1 = gmon_io_write_vma(ofp,*pbVar3);\n        if ((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))\n        goto LAB_00013a28;\n        pbVar3 = pbVar3 + 1;\n      } while (pbVar3 != puVar4);" do (compound_statement "{\n        if (*pbVar3 == 0) break;\n        iVar1 = gmon_io_write_vma(ofp,*pbVar3);\n        if ((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))\n        goto LAB_00013a28;\n        pbVar3 = pbVar3 + 1;\n      }" { (if_statement "if (*pbVar3 == 0) break;" if (parenthesized_expression "(*pbVar3 == 0)" ( (binary_expression "*pbVar3 == 0" (pointer_expression "*pbVar3" * identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar1 = gmon_io_write_vma(ofp,*pbVar3);" (assignment_expression "iVar1 = gmon_io_write_vma(ofp,*pbVar3)" identifier = (call_expression "gmon_io_write_vma(ofp,*pbVar3)" identifier (argument_list "(ofp,*pbVar3)" ( identifier , (pointer_expression "*pbVar3" * identifier) )))) ;) (if_statement "if ((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))\n        goto LAB_00013a28;" if (parenthesized_expression "((iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0))" ( (binary_expression "(iVar1 != 0) || (iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0)" ( (comma_expression "iVar1 = gmon_io_write_vma(ofp,pbVar3[10]), iVar1 != 0" (assignment_expression "iVar1 = gmon_io_write_vma(ofp,pbVar3[10])" identifier = (call_expression "gmon_io_write_vma(ofp,pbVar3[10])" identifier (argument_list "(ofp,pbVar3[10])" ( identifier , (subscript_expression "pbVar3[10]" identifier [ number_literal ]) )))) , (binary_expression "iVar1 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00013a28;" goto statement_identifier ;)) (expression_statement "pbVar3 = pbVar3 + 1;" (assignment_expression "pbVar3 = pbVar3 + 1" identifier = (binary_expression "pbVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar3 != puVar4)" ( (binary_expression "pbVar3 != puVar4" identifier != identifier) )) ;) (expression_statement "pSVar2 = (Sym *)(puVar4 + 0x20);" (assignment_expression "pSVar2 = (Sym *)(puVar4 + 0x20)" identifier = (cast_expression "(Sym *)(puVar4 + 0x20)" ( (type_descriptor "Sym *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 0x20)" ( (binary_expression "puVar4 + 0x20" identifier + number_literal) )))) ;) (expression_statement "puVar4 = puVar4 + 0x32;" (assignment_expression "puVar4 = puVar4 + 0x32" identifier = (binary_expression "puVar4 + 0x32" identifier + number_literal)) ;) }) while (parenthesized_expression "(pSVar2 < symtab.limit)" ( (binary_expression "pSVar2 < symtab.limit" identifier < (field_expression "symtab.limit" identifier . field_identifier)) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00013940(undefined4 param_1,char *param_2)\n\n{\n  int iVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  piVar2 = DAT_0002d4ac;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }\n  iVar1 = FUN_00019b60(param_1,2);\n  if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {\nLAB_00013a28:\n    perror(param_2);\n                    \n    FUN_0001a990(1);\n  }\n  piVar2 = DAT_0002d4ac + 0x12;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }\n  return;\n}\n\n" (function_definition "void FUN_00013940(undefined4 param_1,char *param_2)\n\n{\n  int iVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  piVar2 = DAT_0002d4ac;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }\n  iVar1 = FUN_00019b60(param_1,2);\n  if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {\nLAB_00013a28:\n    perror(param_2);\n                    \n    FUN_0001a990(1);\n  }\n  piVar2 = DAT_0002d4ac + 0x12;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00013940(undefined4 param_1,char *param_2)" identifier (parameter_list "(undefined4 param_1,char *param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  piVar2 = DAT_0002d4ac;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }\n  iVar1 = FUN_00019b60(param_1,2);\n  if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {\nLAB_00013a28:\n    perror(param_2);\n                    \n    FUN_0001a990(1);\n  }\n  piVar2 = DAT_0002d4ac + 0x12;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" identifier = number_literal) ;) (expression_statement "piVar2 = DAT_0002d4ac;" (assignment_expression "piVar2 = DAT_0002d4ac" identifier = identifier) ;) (if_statement "if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }" if (parenthesized_expression "(DAT_0002d4ac < DAT_0002d4b0)" ( (binary_expression "DAT_0002d4ac < DAT_0002d4b0" identifier < identifier) )) (compound_statement "{\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }" { (do_statement "do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);" do (compound_statement "{\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);" do (compound_statement "{\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      }" { (if_statement "if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;" if (parenthesized_expression "(piVar2[iVar1 + 8] == 0)" ( (binary_expression "piVar2[iVar1 + 8] == 0" (subscript_expression "piVar2[iVar1 + 8]" identifier [ (binary_expression "iVar1 + 8" identifier + number_literal) ]) == number_literal) )) (goto_statement "goto LAB_0001398d;" goto statement_identifier ;)) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 10)" ( (binary_expression "iVar1 != 10" identifier != number_literal) )) ;) (expression_statement "iVar1 = 10;" (assignment_expression "iVar1 = 10" identifier = number_literal) ;) (labeled_statement "LAB_0001398d:\n      piVar2 = piVar2 + 0x32;" statement_identifier : (expression_statement "piVar2 = piVar2 + 0x32;" (assignment_expression "piVar2 = piVar2 + 0x32" identifier = (binary_expression "piVar2 + 0x32" identifier + number_literal)) ;)) (expression_statement "iVar4 = iVar4 + iVar1;" (assignment_expression "iVar4 = iVar4 + iVar1" identifier = (binary_expression "iVar4 + iVar1" identifier + identifier)) ;) }) while (parenthesized_expression "(piVar2 < DAT_0002d4b0)" ( (binary_expression "piVar2 < DAT_0002d4b0" identifier < identifier) )) ;) })) (expression_statement "iVar1 = FUN_00019b60(param_1,2);" (assignment_expression "iVar1 = FUN_00019b60(param_1,2)" identifier = (call_expression "FUN_00019b60(param_1,2)" identifier (argument_list "(param_1,2)" ( identifier , number_literal )))) ;) (if_statement "if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {\nLAB_00013a28:\n    perror(param_2);\n                    \n    FUN_0001a990(1);\n  }" if (parenthesized_expression "((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0))" ( (binary_expression "(iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)" (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0" (assignment_expression "iVar4 = FUN_00019ab0(param_1,iVar4)" identifier = (call_expression "FUN_00019ab0(param_1,iVar4)" identifier (argument_list "(param_1,iVar4)" ( identifier , identifier )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_00013a28:\n    perror(param_2);\n                    \n    FUN_0001a990(1);\n  }" { (labeled_statement "LAB_00013a28:\n    perror(param_2);" statement_identifier : (expression_statement "perror(param_2);" (call_expression "perror(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;)) (expression_statement "FUN_0001a990(1);" (call_expression "FUN_0001a990(1)" identifier (argument_list "(1)" ( number_literal ))) ;) })) (expression_statement "piVar2 = DAT_0002d4ac + 0x12;" (assignment_expression "piVar2 = DAT_0002d4ac + 0x12" identifier = (binary_expression "DAT_0002d4ac + 0x12" identifier + number_literal)) ;) (if_statement "if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }" if (parenthesized_expression "(DAT_0002d4ac < DAT_0002d4b0)" ( (binary_expression "DAT_0002d4ac < DAT_0002d4b0" identifier < identifier) )) (compound_statement "{\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }" { (do_statement "do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);" do (compound_statement "{\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    }" { (expression_statement "piVar3 = piVar2 + -10;" (assignment_expression "piVar3 = piVar2 + -10" identifier = (binary_expression "piVar2 + -10" identifier + number_literal)) ;) (do_statement "do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);" do (compound_statement "{\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      }" { (if_statement "if (*piVar3 == 0) break;" if (parenthesized_expression "(*piVar3 == 0)" ( (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" * identifier) == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar4 = FUN_00019b00(param_1,*piVar3);" (assignment_expression "iVar4 = FUN_00019b00(param_1,*piVar3)" identifier = (call_expression "FUN_00019b00(param_1,*piVar3)" identifier (argument_list "(param_1,*piVar3)" ( identifier , (pointer_expression "*piVar3" * identifier) )))) ;) (if_statement "if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;" if (parenthesized_expression "((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))" ( (binary_expression "(iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0)" (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0" (assignment_expression "iVar4 = FUN_00019b00(param_1,piVar3[10])" identifier = (call_expression "FUN_00019b00(param_1,piVar3[10])" identifier (argument_list "(param_1,piVar3[10])" ( identifier , (subscript_expression "piVar3[10]" identifier [ number_literal ]) )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_00013a28;" goto statement_identifier ;)) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" identifier = (binary_expression "piVar3 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar3 != piVar2)" ( (binary_expression "piVar3 != piVar2" identifier != identifier) )) ;) (expression_statement "piVar3 = piVar2 + 0x20;" (assignment_expression "piVar3 = piVar2 + 0x20" identifier = (binary_expression "piVar2 + 0x20" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 0x32;" (assignment_expression "piVar2 = piVar2 + 0x32" identifier = (binary_expression "piVar2 + 0x32" identifier + number_literal)) ;) }) while (parenthesized_expression "(piVar3 < DAT_0002d4b0)" ( (binary_expression "piVar3 < DAT_0002d4b0" identifier < identifier) )) ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) })) (return_statement return ;) })))
(function_definition "void FUN_00013940(undefined4 param_1,char *param_2)\n\n{\n  int iVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  piVar2 = DAT_0002d4ac;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }\n  iVar1 = FUN_00019b60(param_1,2);\n  if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {\nLAB_00013a28:\n    perror(param_2);\n                    \n    FUN_0001a990(1);\n  }\n  piVar2 = DAT_0002d4ac + 0x12;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00013940(undefined4 param_1,char *param_2)" (identifier "FUN_00013940") (parameter_list "(undefined4 param_1,char *param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  \n  iVar4 = 0;\n  piVar2 = DAT_0002d4ac;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }\n  iVar1 = FUN_00019b60(param_1,2);\n  if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {\nLAB_00013a28:\n    perror(param_2);\n                    \n    FUN_0001a990(1);\n  }\n  piVar2 = DAT_0002d4ac + 0x12;\n  if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (expression_statement "iVar4 = 0;" (assignment_expression "iVar4 = 0" (identifier "iVar4") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar2 = DAT_0002d4ac;" (assignment_expression "piVar2 = DAT_0002d4ac" (identifier "piVar2") (= "=") (identifier "DAT_0002d4ac")) (; ";")) (if_statement "if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }" (if "if") (parenthesized_expression "(DAT_0002d4ac < DAT_0002d4b0)" (( "(") (binary_expression "DAT_0002d4ac < DAT_0002d4b0" (identifier "DAT_0002d4ac") (< "<") (identifier "DAT_0002d4b0")) () ")")) (compound_statement "{\n    do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);\n  }" ({ "{") (do_statement "do {\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    } while (piVar2 < DAT_0002d4b0);" (do "do") (compound_statement "{\n      iVar1 = 0;\n      do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);\n      iVar1 = 10;\nLAB_0001398d:\n      piVar2 = piVar2 + 0x32;\n      iVar4 = iVar4 + iVar1;\n    }" ({ "{") (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      } while (iVar1 != 10);" (do "do") (compound_statement "{\n        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;\n        iVar1 = iVar1 + 1;\n      }" ({ "{") (if_statement "if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;" (if "if") (parenthesized_expression "(piVar2[iVar1 + 8] == 0)" (( "(") (binary_expression "piVar2[iVar1 + 8] == 0" (subscript_expression "piVar2[iVar1 + 8]" (identifier "piVar2") ([ "[") (binary_expression "iVar1 + 8" (identifier "iVar1") (+ "+") (number_literal "8")) (] "]")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0001398d;" (goto "goto") (statement_identifier "LAB_0001398d") (; ";"))) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" (identifier "iVar1") (= "=") (binary_expression "iVar1 + 1" (identifier "iVar1") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 != 10)" (( "(") (binary_expression "iVar1 != 10" (identifier "iVar1") (!= "!=") (number_literal "10")) () ")")) (; ";")) (expression_statement "iVar1 = 10;" (assignment_expression "iVar1 = 10" (identifier "iVar1") (= "=") (number_literal "10")) (; ";")) (labeled_statement "LAB_0001398d:\n      piVar2 = piVar2 + 0x32;" (statement_identifier "LAB_0001398d") (: ":") (expression_statement "piVar2 = piVar2 + 0x32;" (assignment_expression "piVar2 = piVar2 + 0x32" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 0x32" (identifier "piVar2") (+ "+") (number_literal "0x32"))) (; ";"))) (expression_statement "iVar4 = iVar4 + iVar1;" (assignment_expression "iVar4 = iVar4 + iVar1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + iVar1" (identifier "iVar4") (+ "+") (identifier "iVar1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar2 < DAT_0002d4b0)" (( "(") (binary_expression "piVar2 < DAT_0002d4b0" (identifier "piVar2") (< "<") (identifier "DAT_0002d4b0")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar1 = FUN_00019b60(param_1,2);" (assignment_expression "iVar1 = FUN_00019b60(param_1,2)" (identifier "iVar1") (= "=") (call_expression "FUN_00019b60(param_1,2)" (identifier "FUN_00019b60") (argument_list "(param_1,2)" (( "(") (identifier "param_1") (, ",") (number_literal "2") () ")")))) (; ";")) (if_statement "if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {\nLAB_00013a28:\n    perror(param_2);\n                    \n    FUN_0001a990(1);\n  }" (if "if") (parenthesized_expression "((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0))" (( "(") (binary_expression "(iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)" (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)" (( "(") (comma_expression "iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0" (assignment_expression "iVar4 = FUN_00019ab0(param_1,iVar4)" (identifier "iVar4") (= "=") (call_expression "FUN_00019ab0(param_1,iVar4)" (identifier "FUN_00019ab0") (argument_list "(param_1,iVar4)" (( "(") (identifier "param_1") (, ",") (identifier "iVar4") () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_00013a28:\n    perror(param_2);\n                    \n    FUN_0001a990(1);\n  }" ({ "{") (labeled_statement "LAB_00013a28:\n    perror(param_2);" (statement_identifier "LAB_00013a28") (: ":") (expression_statement "perror(param_2);" (call_expression "perror(param_2)" (identifier "perror") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";"))) (expression_statement "FUN_0001a990(1);" (call_expression "FUN_0001a990(1)" (identifier "FUN_0001a990") (argument_list "(1)" (( "(") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar2 = DAT_0002d4ac + 0x12;" (assignment_expression "piVar2 = DAT_0002d4ac + 0x12" (identifier "piVar2") (= "=") (binary_expression "DAT_0002d4ac + 0x12" (identifier "DAT_0002d4ac") (+ "+") (number_literal "0x12"))) (; ";")) (if_statement "if (DAT_0002d4ac < DAT_0002d4b0) {\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }" (if "if") (parenthesized_expression "(DAT_0002d4ac < DAT_0002d4b0)" (( "(") (binary_expression "DAT_0002d4ac < DAT_0002d4b0" (identifier "DAT_0002d4ac") (< "<") (identifier "DAT_0002d4b0")) () ")")) (compound_statement "{\n    do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);\n  }" ({ "{") (do_statement "do {\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    } while (piVar3 < DAT_0002d4b0);" (do "do") (compound_statement "{\n      piVar3 = piVar2 + -10;\n      do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);\n      piVar3 = piVar2 + 0x20;\n      piVar2 = piVar2 + 0x32;\n    }" ({ "{") (expression_statement "piVar3 = piVar2 + -10;" (assignment_expression "piVar3 = piVar2 + -10" (identifier "piVar3") (= "=") (binary_expression "piVar2 + -10" (identifier "piVar2") (+ "+") (number_literal "-10"))) (; ";")) (do_statement "do {\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      } while (piVar3 != piVar2);" (do "do") (compound_statement "{\n        if (*piVar3 == 0) break;\n        iVar4 = FUN_00019b00(param_1,*piVar3);\n        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;\n        piVar3 = piVar3 + 1;\n      }" ({ "{") (if_statement "if (*piVar3 == 0) break;" (if "if") (parenthesized_expression "(*piVar3 == 0)" (( "(") (binary_expression "*piVar3 == 0" (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar4 = FUN_00019b00(param_1,*piVar3);" (assignment_expression "iVar4 = FUN_00019b00(param_1,*piVar3)" (identifier "iVar4") (= "=") (call_expression "FUN_00019b00(param_1,*piVar3)" (identifier "FUN_00019b00") (argument_list "(param_1,*piVar3)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) () ")")))) (; ";")) (if_statement "if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))\n        goto LAB_00013a28;" (if "if") (parenthesized_expression "((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))" (( "(") (binary_expression "(iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0)" (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0)" (( "(") (comma_expression "iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0" (assignment_expression "iVar4 = FUN_00019b00(param_1,piVar3[10])" (identifier "iVar4") (= "=") (call_expression "FUN_00019b00(param_1,piVar3[10])" (identifier "FUN_00019b00") (argument_list "(param_1,piVar3[10])" (( "(") (identifier "param_1") (, ",") (subscript_expression "piVar3[10]" (identifier "piVar3") ([ "[") (number_literal "10") (] "]")) () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_00013a28;" (goto "goto") (statement_identifier "LAB_00013a28") (; ";"))) (expression_statement "piVar3 = piVar3 + 1;" (assignment_expression "piVar3 = piVar3 + 1" (identifier "piVar3") (= "=") (binary_expression "piVar3 + 1" (identifier "piVar3") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar3 != piVar2)" (( "(") (binary_expression "piVar3 != piVar2" (identifier "piVar3") (!= "!=") (identifier "piVar2")) () ")")) (; ";")) (expression_statement "piVar3 = piVar2 + 0x20;" (assignment_expression "piVar3 = piVar2 + 0x20" (identifier "piVar3") (= "=") (binary_expression "piVar2 + 0x20" (identifier "piVar2") (+ "+") (number_literal "0x20"))) (; ";")) (expression_statement "piVar2 = piVar2 + 0x32;" (assignment_expression "piVar2 = piVar2 + 0x32" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 0x32" (identifier "piVar2") (+ "+") (number_literal "0x32"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar3 < DAT_0002d4b0)" (( "(") (binary_expression "piVar3 < DAT_0002d4b0" (identifier "piVar3") (< "<") (identifier "DAT_0002d4b0")) () ")")) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

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

void function_1(type_1 *ofp,char *filename)

{
  int var_1;
  type_2 *var_2;
  type_3 *var_10;
  type_4 var_3;
  type_5 *var_8;
  
  var_3 = 0;
  var_2 = symtab.base;
  if (symtab.base < symtab.limit) {
    do {
      var_1 = 0;
      do {
        if (var_2->bb_addr[var_1] == 0) goto LAB_0001398d;
        var_1 = var_1 + 1;
      } while (var_1 != 10);
      var_1 = 10;
LAB_0001398d:
      var_2 = var_2 + 1;
      var_3 = var_3 + var_1;
    } while (var_2 < symtab.limit);
  }
  var_1 = var_4(ofp,2);
  if ((var_1 != 0) || (var_1 = var_5(ofp,var_3), var_1 != 0)) {
LAB_00013a28:
    var_6(filename);
                    /* WARNING: Subroutine does not return */
    var_7(1);
  }
  var_8 = (symtab.base)->bb_calls;
  if (symtab.base < symtab.limit) {
    do {
      var_10 = var_8 + -10;
      do {
        if (*var_10 == 0) break;
        var_1 = var_9(ofp,*var_10);
        if ((var_1 != 0) || (var_1 = var_9(ofp,var_10[10]), var_1 != 0))
        goto LAB_00013a28;
        var_10 = var_10 + 1;
      } while (var_10 != var_8);
      var_2 = (type_2 *)(var_8 + 0x20);
      var_8 = var_8 + 0x32;
    } while (var_2 < symtab.limit);
  }
  return;
}


(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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_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: (identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (binary_expression left: (identifier) right: (identifier)))))) (return_statement))))

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

void MASKED(undefined4 param_1,char *param_2)

{
  int iVar1;
  int *piVar2;
  int *piVar3;
  int iVar4;
  
  iVar4 = 0;
  piVar2 = DAT_0002d4ac;
  if (DAT_0002d4ac < DAT_0002d4b0) {
    do {
      iVar1 = 0;
      do {
        if (piVar2[iVar1 + 8] == 0) goto LAB_0001398d;
        iVar1 = iVar1 + 1;
      } while (iVar1 != 10);
      iVar1 = 10;
LAB_0001398d:
      piVar2 = piVar2 + 0x32;
      iVar4 = iVar4 + iVar1;
    } while (piVar2 < DAT_0002d4b0);
  }
  iVar1 = FUN_00019b60(param_1,2);
  if ((iVar1 != 0) || (iVar4 = FUN_00019ab0(param_1,iVar4), iVar4 != 0)) {
LAB_00013a28:
    perror(param_2);
                    /* WARNING: Subroutine does not return */
    FUN_0001a990(1);
  }
  piVar2 = DAT_0002d4ac + 0x12;
  if (DAT_0002d4ac < DAT_0002d4b0) {
    do {
      piVar3 = piVar2 + -10;
      do {
        if (*piVar3 == 0) break;
        iVar4 = FUN_00019b00(param_1,*piVar3);
        if ((iVar4 != 0) || (iVar4 = FUN_00019b00(param_1,piVar3[10]), iVar4 != 0))
        goto LAB_00013a28;
        piVar3 = piVar3 + 1;
      } while (piVar3 != piVar2);
      piVar3 = piVar2 + 0x20;
      piVar2 = piVar2 + 0x32;
    } while (piVar3 < DAT_0002d4b0);
  }
  return;
}

