
void enumerate_vpds(int standard,int vendor)

{
  int iVar1;
  int iVar2;
  int *piVar3;
  undefined *puVar4;
  undefined *puVar5;
  
  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);
  if (iVar1 != 0) {
    puVar4 = PTR_LAB_00039948 + 0x1b48;
    puVar5 = PTR_LAB_00039948 + 0x1b30;
    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);
    do {
      while (iVar2 = piVar3[4], iVar2 == 0) {
LAB_00015bb4:
        iVar1 = piVar3[8];
        piVar3 = piVar3 + 5;
        if (iVar1 == 0) goto LAB_00015c08;
      }
      if (-1 < *piVar3) {
        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);
        goto LAB_00015bb4;
      }
      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);
      iVar1 = piVar3[8];
      piVar3 = piVar3 + 5;
    } while (iVar1 != 0);
  }
LAB_00015c08:
  svpd_enumerate_vendor(-2);
  return;
}



void FUN_00015b5c(void)

{
  int iVar1;
  int iVar2;
  int *piVar3;
  undefined *puVar4;
  undefined *puVar5;
  
  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);
  if (iVar1 != 0) {
    puVar4 = PTR_LAB_00039948 + 0x1b48;
    puVar5 = PTR_LAB_00039948 + 0x1b30;
    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);
    do {
      while (iVar2 = piVar3[4], iVar2 == 0) {
LAB_00015bb4:
        iVar1 = piVar3[8];
        piVar3 = piVar3 + 5;
        if (iVar1 == 0) goto LAB_00015c08;
      }
      if (-1 < *piVar3) {
        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);
        goto LAB_00015bb4;
      }
      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);
      iVar1 = piVar3[8];
      piVar3 = piVar3 + 5;
    } while (iVar1 != 0);
  }
LAB_00015c08:
  svpd_enumerate_vendor(0xfffffffe);
  return;
}


lui gp,0x3
addiu gp,gp,-0x424c
addu gp,gp,t9
addiu sp,sp,-0x30
sw s0,0x20(sp)
lw s0,-0x7fd8(gp)
sw gp,0x18(sp)
sw ra,0x2c(sp)
addiu s0,s0,-0x6e38
sw s2,0x28(sp)
sw s1,0x24(sp)
lw v0,0xc(s0)
beq v0,zero,0x00015c04
_lw s1,-0x7fc8(gp)
lw s2,-0x7fc8(gp)
addiu s1,s1,0x1b48
b 0x00015bc4
_addiu s2,s2,0x1b30
sw v1,0x10(sp)
jalr t9
_or a3,t0,zero
lw gp,0x18(sp)
addiu s0,s0,0x14
lw v0,0xc(s0)
beq v0,zero,0x00015c08
_lw ra,0x2c(sp)
lw v1,0x10(s0)
li a0,0x1
lw t1,-0x7f38(gp)
or a2,v0,zero
beq v1,zero,0x00015bb4
_or a1,s1,zero
lw t0,0x0(s0)
or a3,v1,zero
bgez t0,0x00015ba4
_or t9,t1,zero
addiu s0,s0,0x14
jalr t9
_or a1,s2,zero
lw v0,0xc(s0)
bne v0,zero,0x00015bc4
_lw gp,0x18(sp)
lw ra,0x2c(sp)
li a0,-0x2
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
lw t9,-0x7fc4(gp)
b 0x0001cf10
_addiu sp,sp,0x30
(translation_unit "void FUN_00015b5c(void)\n\n{\n  int iVar1;\n  int iVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);\n  if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }\nLAB_00015c08:\n  svpd_enumerate_vendor(0xfffffffe);\n  return;\n}\n\n" (function_definition "void FUN_00015b5c(void)\n\n{\n  int iVar1;\n  int iVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);\n  if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }\nLAB_00015c08:\n  svpd_enumerate_vendor(0xfffffffe);\n  return;\n}" primitive_type (function_declarator "FUN_00015b5c(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);\n  if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }\nLAB_00015c08:\n  svpd_enumerate_vendor(0xfffffffe);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (expression_statement "iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);" (assignment_expression "iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c)" identifier = (pointer_expression "*(int *)(PTR_DAT_00039938 + -0x6e2c)" * (cast_expression "(int *)(PTR_DAT_00039938 + -0x6e2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00039938 + -0x6e2c)" ( (binary_expression "PTR_DAT_00039938 + -0x6e2c" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }" { (expression_statement "puVar4 = PTR_LAB_00039948 + 0x1b48;" (assignment_expression "puVar4 = PTR_LAB_00039948 + 0x1b48" identifier = (binary_expression "PTR_LAB_00039948 + 0x1b48" identifier + number_literal)) ;) (expression_statement "puVar5 = PTR_LAB_00039948 + 0x1b30;" (assignment_expression "puVar5 = PTR_LAB_00039948 + 0x1b30" identifier = (binary_expression "PTR_LAB_00039948 + 0x1b30" identifier + number_literal)) ;) (expression_statement "piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);" (assignment_expression "piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38)" identifier = (cast_expression "(int *)(PTR_DAT_00039938 + -0x6e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00039938 + -0x6e38)" ( (binary_expression "PTR_DAT_00039938 + -0x6e38" identifier + number_literal) )))) ;) (do_statement "do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);" do (compound_statement "{\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    }" { (while_statement "while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }" while (parenthesized_expression "(iVar2 = piVar3[4], iVar2 == 0)" ( (comma_expression "iVar2 = piVar3[4], iVar2 == 0" (assignment_expression "iVar2 = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) , (binary_expression "iVar2 == 0" identifier == number_literal)) )) (compound_statement "{\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }" { (labeled_statement "LAB_00015bb4:\n        iVar1 = piVar3[8];" statement_identifier : (expression_statement "iVar1 = piVar3[8];" (assignment_expression "iVar1 = piVar3[8]" identifier = (subscript_expression "piVar3[8]" identifier [ number_literal ])) ;)) (expression_statement "piVar3 = piVar3 + 5;" (assignment_expression "piVar3 = piVar3 + 5" identifier = (binary_expression "piVar3 + 5" identifier + number_literal)) ;) (if_statement "if (iVar1 == 0) goto LAB_00015c08;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015c08;" goto statement_identifier ;)) })) (if_statement "if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }" if (parenthesized_expression "(-1 < *piVar3)" ( (binary_expression "-1 < *piVar3" number_literal < (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }" { (expression_statement "(*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);" (call_expression "(*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2)" (parenthesized_expression "(*(code *)PTR___printf_chk_000399d8)" ( (pointer_expression "*(code *)PTR___printf_chk_000399d8" * (cast_expression "(code *)PTR___printf_chk_000399d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar4,iVar1,*piVar3,iVar2)" ( number_literal , identifier , identifier , (pointer_expression "*piVar3" * identifier) , identifier ))) ;) (goto_statement "goto LAB_00015bb4;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);" (call_expression "(*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2)" (parenthesized_expression "(*(code *)PTR___printf_chk_000399d8)" ( (pointer_expression "*(code *)PTR___printf_chk_000399d8" * (cast_expression "(code *)PTR___printf_chk_000399d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar5,iVar1,iVar2)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "iVar1 = piVar3[8];" (assignment_expression "iVar1 = piVar3[8]" identifier = (subscript_expression "piVar3[8]" identifier [ number_literal ])) ;) (expression_statement "piVar3 = piVar3 + 5;" (assignment_expression "piVar3 = piVar3 + 5" identifier = (binary_expression "piVar3 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00015c08:\n  svpd_enumerate_vendor(0xfffffffe);" statement_identifier : (expression_statement "svpd_enumerate_vendor(0xfffffffe);" (call_expression "svpd_enumerate_vendor(0xfffffffe)" identifier (argument_list "(0xfffffffe)" ( number_literal ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void enumerate_vpds(int standard,int vendor)\n\n{\n  int iVar1;\n  int iVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);\n  if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }\nLAB_00015c08:\n  svpd_enumerate_vendor(-2);\n  return;\n}\n\n" (function_definition "void enumerate_vpds(int standard,int vendor)\n\n{\n  int iVar1;\n  int iVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);\n  if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }\nLAB_00015c08:\n  svpd_enumerate_vendor(-2);\n  return;\n}" primitive_type (function_declarator "enumerate_vpds(int standard,int vendor)" identifier (parameter_list "(int standard,int vendor)" ( (parameter_declaration "int standard" primitive_type identifier) , (parameter_declaration "int vendor" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);\n  if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }\nLAB_00015c08:\n  svpd_enumerate_vendor(-2);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (expression_statement "iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);" (assignment_expression "iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c)" identifier = (pointer_expression "*(int *)(PTR_DAT_00039938 + -0x6e2c)" * (cast_expression "(int *)(PTR_DAT_00039938 + -0x6e2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00039938 + -0x6e2c)" ( (binary_expression "PTR_DAT_00039938 + -0x6e2c" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }" { (expression_statement "puVar4 = PTR_LAB_00039948 + 0x1b48;" (assignment_expression "puVar4 = PTR_LAB_00039948 + 0x1b48" identifier = (binary_expression "PTR_LAB_00039948 + 0x1b48" identifier + number_literal)) ;) (expression_statement "puVar5 = PTR_LAB_00039948 + 0x1b30;" (assignment_expression "puVar5 = PTR_LAB_00039948 + 0x1b30" identifier = (binary_expression "PTR_LAB_00039948 + 0x1b30" identifier + number_literal)) ;) (expression_statement "piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);" (assignment_expression "piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38)" identifier = (cast_expression "(int *)(PTR_DAT_00039938 + -0x6e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00039938 + -0x6e38)" ( (binary_expression "PTR_DAT_00039938 + -0x6e38" identifier + number_literal) )))) ;) (do_statement "do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);" do (compound_statement "{\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    }" { (while_statement "while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }" while (parenthesized_expression "(iVar2 = piVar3[4], iVar2 == 0)" ( (comma_expression "iVar2 = piVar3[4], iVar2 == 0" (assignment_expression "iVar2 = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) , (binary_expression "iVar2 == 0" identifier == number_literal)) )) (compound_statement "{\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }" { (labeled_statement "LAB_00015bb4:\n        iVar1 = piVar3[8];" statement_identifier : (expression_statement "iVar1 = piVar3[8];" (assignment_expression "iVar1 = piVar3[8]" identifier = (subscript_expression "piVar3[8]" identifier [ number_literal ])) ;)) (expression_statement "piVar3 = piVar3 + 5;" (assignment_expression "piVar3 = piVar3 + 5" identifier = (binary_expression "piVar3 + 5" identifier + number_literal)) ;) (if_statement "if (iVar1 == 0) goto LAB_00015c08;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015c08;" goto statement_identifier ;)) })) (if_statement "if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }" if (parenthesized_expression "(-1 < *piVar3)" ( (binary_expression "-1 < *piVar3" number_literal < (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }" { (expression_statement "(*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);" (call_expression "(*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2)" (parenthesized_expression "(*(code *)PTR___printf_chk_000399d8)" ( (pointer_expression "*(code *)PTR___printf_chk_000399d8" * (cast_expression "(code *)PTR___printf_chk_000399d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar4,iVar1,*piVar3,iVar2)" ( number_literal , identifier , identifier , (pointer_expression "*piVar3" * identifier) , identifier ))) ;) (goto_statement "goto LAB_00015bb4;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);" (call_expression "(*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2)" (parenthesized_expression "(*(code *)PTR___printf_chk_000399d8)" ( (pointer_expression "*(code *)PTR___printf_chk_000399d8" * (cast_expression "(code *)PTR___printf_chk_000399d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar5,iVar1,iVar2)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "iVar1 = piVar3[8];" (assignment_expression "iVar1 = piVar3[8]" identifier = (subscript_expression "piVar3[8]" identifier [ number_literal ])) ;) (expression_statement "piVar3 = piVar3 + 5;" (assignment_expression "piVar3 = piVar3 + 5" identifier = (binary_expression "piVar3 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00015c08:\n  svpd_enumerate_vendor(-2);" statement_identifier : (expression_statement "svpd_enumerate_vendor(-2);" (call_expression "svpd_enumerate_vendor(-2)" identifier (argument_list "(-2)" ( number_literal ))) ;)) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00015b5c(void)\n\n{\n  int iVar1;\n  int iVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);\n  if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }\nLAB_00015c08:\n  svpd_enumerate_vendor(0xfffffffe);\n  return;\n}\n\n" (function_definition "void FUN_00015b5c(void)\n\n{\n  int iVar1;\n  int iVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);\n  if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }\nLAB_00015c08:\n  svpd_enumerate_vendor(0xfffffffe);\n  return;\n}" primitive_type (function_declarator "FUN_00015b5c(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);\n  if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }\nLAB_00015c08:\n  svpd_enumerate_vendor(0xfffffffe);\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (expression_statement "iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);" (assignment_expression "iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c)" identifier = (pointer_expression "*(int *)(PTR_DAT_00039938 + -0x6e2c)" * (cast_expression "(int *)(PTR_DAT_00039938 + -0x6e2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00039938 + -0x6e2c)" ( (binary_expression "PTR_DAT_00039938 + -0x6e2c" identifier + number_literal) ))))) ;) (if_statement "if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }" { (expression_statement "puVar4 = PTR_LAB_00039948 + 0x1b48;" (assignment_expression "puVar4 = PTR_LAB_00039948 + 0x1b48" identifier = (binary_expression "PTR_LAB_00039948 + 0x1b48" identifier + number_literal)) ;) (expression_statement "puVar5 = PTR_LAB_00039948 + 0x1b30;" (assignment_expression "puVar5 = PTR_LAB_00039948 + 0x1b30" identifier = (binary_expression "PTR_LAB_00039948 + 0x1b30" identifier + number_literal)) ;) (expression_statement "piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);" (assignment_expression "piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38)" identifier = (cast_expression "(int *)(PTR_DAT_00039938 + -0x6e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_00039938 + -0x6e38)" ( (binary_expression "PTR_DAT_00039938 + -0x6e38" identifier + number_literal) )))) ;) (do_statement "do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);" do (compound_statement "{\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    }" { (while_statement "while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }" while (parenthesized_expression "(iVar2 = piVar3[4], iVar2 == 0)" ( (comma_expression "iVar2 = piVar3[4], iVar2 == 0" (assignment_expression "iVar2 = piVar3[4]" identifier = (subscript_expression "piVar3[4]" identifier [ number_literal ])) , (binary_expression "iVar2 == 0" identifier == number_literal)) )) (compound_statement "{\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }" { (labeled_statement "LAB_00015bb4:\n        iVar1 = piVar3[8];" statement_identifier : (expression_statement "iVar1 = piVar3[8];" (assignment_expression "iVar1 = piVar3[8]" identifier = (subscript_expression "piVar3[8]" identifier [ number_literal ])) ;)) (expression_statement "piVar3 = piVar3 + 5;" (assignment_expression "piVar3 = piVar3 + 5" identifier = (binary_expression "piVar3 + 5" identifier + number_literal)) ;) (if_statement "if (iVar1 == 0) goto LAB_00015c08;" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00015c08;" goto statement_identifier ;)) })) (if_statement "if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }" if (parenthesized_expression "(-1 < *piVar3)" ( (binary_expression "-1 < *piVar3" number_literal < (pointer_expression "*piVar3" * identifier)) )) (compound_statement "{\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }" { (expression_statement "(*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);" (call_expression "(*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2)" (parenthesized_expression "(*(code *)PTR___printf_chk_000399d8)" ( (pointer_expression "*(code *)PTR___printf_chk_000399d8" * (cast_expression "(code *)PTR___printf_chk_000399d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar4,iVar1,*piVar3,iVar2)" ( number_literal , identifier , identifier , (pointer_expression "*piVar3" * identifier) , identifier ))) ;) (goto_statement "goto LAB_00015bb4;" goto statement_identifier ;) })) (expression_statement "(*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);" (call_expression "(*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2)" (parenthesized_expression "(*(code *)PTR___printf_chk_000399d8)" ( (pointer_expression "*(code *)PTR___printf_chk_000399d8" * (cast_expression "(code *)PTR___printf_chk_000399d8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(1,puVar5,iVar1,iVar2)" ( number_literal , identifier , identifier , identifier ))) ;) (expression_statement "iVar1 = piVar3[8];" (assignment_expression "iVar1 = piVar3[8]" identifier = (subscript_expression "piVar3[8]" identifier [ number_literal ])) ;) (expression_statement "piVar3 = piVar3 + 5;" (assignment_expression "piVar3 = piVar3 + 5" identifier = (binary_expression "piVar3 + 5" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) ;) })) (labeled_statement "LAB_00015c08:\n  svpd_enumerate_vendor(0xfffffffe);" statement_identifier : (expression_statement "svpd_enumerate_vendor(0xfffffffe);" (call_expression "svpd_enumerate_vendor(0xfffffffe)" identifier (argument_list "(0xfffffffe)" ( number_literal ))) ;)) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) , (binary_expression IDENT == LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , IDENT , (pointer_expression * IDENT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;)) (return_statement return ;) })))
(function_definition "void FUN_00015b5c(void)\n\n{\n  int iVar1;\n  int iVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);\n  if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }\nLAB_00015c08:\n  svpd_enumerate_vendor(0xfffffffe);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00015b5c(void)" (identifier "FUN_00015b5c") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int *piVar3;\n  undefined *puVar4;\n  undefined *puVar5;\n  \n  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);\n  if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }\nLAB_00015c08:\n  svpd_enumerate_vendor(0xfffffffe);\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined *puVar5;" (type_identifier "undefined") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (expression_statement "iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);" (assignment_expression "iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(PTR_DAT_00039938 + -0x6e2c)" (* "*") (cast_expression "(int *)(PTR_DAT_00039938 + -0x6e2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00039938 + -0x6e2c)" (( "(") (binary_expression "PTR_DAT_00039938 + -0x6e2c" (identifier "PTR_DAT_00039938") (+ "+") (number_literal "-0x6e2c")) () ")"))))) (; ";")) (if_statement "if (iVar1 != 0) {\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    puVar4 = PTR_LAB_00039948 + 0x1b48;\n    puVar5 = PTR_LAB_00039948 + 0x1b30;\n    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);\n    do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);\n  }" ({ "{") (expression_statement "puVar4 = PTR_LAB_00039948 + 0x1b48;" (assignment_expression "puVar4 = PTR_LAB_00039948 + 0x1b48" (identifier "puVar4") (= "=") (binary_expression "PTR_LAB_00039948 + 0x1b48" (identifier "PTR_LAB_00039948") (+ "+") (number_literal "0x1b48"))) (; ";")) (expression_statement "puVar5 = PTR_LAB_00039948 + 0x1b30;" (assignment_expression "puVar5 = PTR_LAB_00039948 + 0x1b30" (identifier "puVar5") (= "=") (binary_expression "PTR_LAB_00039948 + 0x1b30" (identifier "PTR_LAB_00039948") (+ "+") (number_literal "0x1b30"))) (; ";")) (expression_statement "piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);" (assignment_expression "piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38)" (identifier "piVar3") (= "=") (cast_expression "(int *)(PTR_DAT_00039938 + -0x6e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_00039938 + -0x6e38)" (( "(") (binary_expression "PTR_DAT_00039938 + -0x6e38" (identifier "PTR_DAT_00039938") (+ "+") (number_literal "-0x6e38")) () ")")))) (; ";")) (do_statement "do {\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    } while (iVar1 != 0);" (do "do") (compound_statement "{\n      while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }\n      if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }\n      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);\n      iVar1 = piVar3[8];\n      piVar3 = piVar3 + 5;\n    }" ({ "{") (while_statement "while (iVar2 = piVar3[4], iVar2 == 0) {\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }" (while "while") (parenthesized_expression "(iVar2 = piVar3[4], iVar2 == 0)" (( "(") (comma_expression "iVar2 = piVar3[4], iVar2 == 0" (assignment_expression "iVar2 = piVar3[4]" (identifier "iVar2") (= "=") (subscript_expression "piVar3[4]" (identifier "piVar3") ([ "[") (number_literal "4") (] "]"))) (, ",") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\nLAB_00015bb4:\n        iVar1 = piVar3[8];\n        piVar3 = piVar3 + 5;\n        if (iVar1 == 0) goto LAB_00015c08;\n      }" ({ "{") (labeled_statement "LAB_00015bb4:\n        iVar1 = piVar3[8];" (statement_identifier "LAB_00015bb4") (: ":") (expression_statement "iVar1 = piVar3[8];" (assignment_expression "iVar1 = piVar3[8]" (identifier "iVar1") (= "=") (subscript_expression "piVar3[8]" (identifier "piVar3") ([ "[") (number_literal "8") (] "]"))) (; ";"))) (expression_statement "piVar3 = piVar3 + 5;" (assignment_expression "piVar3 = piVar3 + 5" (identifier "piVar3") (= "=") (binary_expression "piVar3 + 5" (identifier "piVar3") (+ "+") (number_literal "5"))) (; ";")) (if_statement "if (iVar1 == 0) goto LAB_00015c08;" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00015c08;" (goto "goto") (statement_identifier "LAB_00015c08") (; ";"))) (} "}"))) (if_statement "if (-1 < *piVar3) {\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }" (if "if") (parenthesized_expression "(-1 < *piVar3)" (( "(") (binary_expression "-1 < *piVar3" (number_literal "-1") (< "<") (pointer_expression "*piVar3" (* "*") (identifier "piVar3"))) () ")")) (compound_statement "{\n        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);\n        goto LAB_00015bb4;\n      }" ({ "{") (expression_statement "(*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);" (call_expression "(*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2)" (parenthesized_expression "(*(code *)PTR___printf_chk_000399d8)" (( "(") (pointer_expression "*(code *)PTR___printf_chk_000399d8" (* "*") (cast_expression "(code *)PTR___printf_chk_000399d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___printf_chk_000399d8"))) () ")")) (argument_list "(1,puVar4,iVar1,*piVar3,iVar2)" (( "(") (number_literal "1") (, ",") (identifier "puVar4") (, ",") (identifier "iVar1") (, ",") (pointer_expression "*piVar3" (* "*") (identifier "piVar3")) (, ",") (identifier "iVar2") () ")"))) (; ";")) (goto_statement "goto LAB_00015bb4;" (goto "goto") (statement_identifier "LAB_00015bb4") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);" (call_expression "(*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2)" (parenthesized_expression "(*(code *)PTR___printf_chk_000399d8)" (( "(") (pointer_expression "*(code *)PTR___printf_chk_000399d8" (* "*") (cast_expression "(code *)PTR___printf_chk_000399d8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___printf_chk_000399d8"))) () ")")) (argument_list "(1,puVar5,iVar1,iVar2)" (( "(") (number_literal "1") (, ",") (identifier "puVar5") (, ",") (identifier "iVar1") (, ",") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "iVar1 = piVar3[8];" (assignment_expression "iVar1 = piVar3[8]" (identifier "iVar1") (= "=") (subscript_expression "piVar3[8]" (identifier "piVar3") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "piVar3 = piVar3 + 5;" (assignment_expression "piVar3 = piVar3 + 5" (identifier "piVar3") (= "=") (binary_expression "piVar3 + 5" (identifier "piVar3") (+ "+") (number_literal "5"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (labeled_statement "LAB_00015c08:\n  svpd_enumerate_vendor(0xfffffffe);" (statement_identifier "LAB_00015c08") (: ":") (expression_statement "svpd_enumerate_vendor(0xfffffffe);" (call_expression "svpd_enumerate_vendor(0xfffffffe)" (identifier "svpd_enumerate_vendor") (argument_list "(0xfffffffe)" (( "(") (number_literal "0xfffffffe") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(int standard,int vendor)

{
  int var_2;
  int var_4;
  int *var_5;
  type_1 *puVar4;
  type_1 *puVar5;
  
  var_2 = *(int *)(var_1 + -0x6e2c);
  if (var_2 != 0) {
    puVar4 = var_3 + 0x1b48;
    puVar5 = var_3 + 0x1b30;
    var_5 = (int *)(var_1 + -0x6e38);
    do {
      while (var_4 = var_5[4], var_4 == 0) {
LAB_00015bb4:
        var_2 = var_5[8];
        var_5 = var_5 + 5;
        if (var_2 == 0) goto LAB_00015c08;
      }
      if (-1 < *var_5) {
        (*(type_2 *)PTR___printf_chk_000399d8)(1,puVar4,var_2,*var_5,var_4);
        goto LAB_00015bb4;
      }
      (*(type_2 *)PTR___printf_chk_000399d8)(1,puVar5,var_2,var_4);
      var_2 = var_5[8];
      var_5 = var_5 + 5;
    } while (var_2 != 0);
  }
LAB_00015c08:
  var_6(-2);
  return;
}


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

void MASKED(void)

{
  int iVar1;
  int iVar2;
  int *piVar3;
  undefined *puVar4;
  undefined *puVar5;
  
  iVar1 = *(int *)(PTR_DAT_00039938 + -0x6e2c);
  if (iVar1 != 0) {
    puVar4 = PTR_LAB_00039948 + 0x1b48;
    puVar5 = PTR_LAB_00039948 + 0x1b30;
    piVar3 = (int *)(PTR_DAT_00039938 + -0x6e38);
    do {
      while (iVar2 = piVar3[4], iVar2 == 0) {
LAB_00015bb4:
        iVar1 = piVar3[8];
        piVar3 = piVar3 + 5;
        if (iVar1 == 0) goto LAB_00015c08;
      }
      if (-1 < *piVar3) {
        (*(code *)PTR___printf_chk_000399d8)(1,puVar4,iVar1,*piVar3,iVar2);
        goto LAB_00015bb4;
      }
      (*(code *)PTR___printf_chk_000399d8)(1,puVar5,iVar1,iVar2);
      iVar1 = piVar3[8];
      piVar3 = piVar3 + 5;
    } while (iVar1 != 0);
  }
LAB_00015c08:
  svpd_enumerate_vendor(0xfffffffe);
  return;
}

