
void yyStackOverflow(yyParser *yypParser)

{
  yyStackEntry *pyVar1;
  Parse *pPVar2;
  code *pcVar3;
  Parse *pParse;
  
  pyVar1 = yypParser->yytos;
  pParse = yypParser->pParse;
  if (yypParser->yystack < pyVar1) {
    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);
    pPVar2 = pParse;
    while( true ) {
      yypParser->yytos = pyVar1 + -1;
      (*pcVar3)(pPVar2,pyVar1->major,&pyVar1->minor,(undefined1 *)((int)&pyVar1->minor + 4));
      pyVar1 = yypParser->yytos;
      if (pyVar1 <= yypParser->yystack) break;
      pPVar2 = yypParser->pParse;
    }
  }
  sqlite3ErrorMsg(pParse,PTR_LAB_0015b5e8 + 0x74cc);
  yypParser->pParse = pParse;
  return;
}



void FUN_000711fc(uint *param_1)

{
  uint *puVar1;
  uint uVar2;
  code *pcVar3;
  uint uVar4;
  
  puVar1 = (uint *)*param_1;
  uVar4 = param_1[1];
  if (param_1 + 2 < puVar1) {
    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);
    uVar2 = uVar4;
    while( true ) {
      *param_1 = (uint)(puVar1 + -3);
      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);
      puVar1 = (uint *)*param_1;
      if (puVar1 <= param_1 + 2) break;
      uVar2 = param_1[1];
    }
  }
  FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);
  param_1[1] = uVar4;
  return;
}


lui gp,0xf
addiu gp,gp,0x23b4
addu gp,gp,t9
addiu sp,sp,-0x30
sw s2,0x24(sp)
addiu s2,a0,0x8
sw s0,0x1c(sp)
or s0,a0,zero
sw gp,0x10(sp)
sw ra,0x2c(sp)
sw s3,0x28(sp)
sw s1,0x20(sp)
lw v0,0x0(a0)
sltu v1,s2,v0
beq v1,zero,0x0007127c
_lw s3,0x4(a0)
lw s1,-0x7eb0(gp)
or a0,s3,zero
b 0x00071250
_addiu s1,s1,-0x5c38
lw a0,0x4(s0)
addiu v1,v0,-0xc
addiu a3,v0,0x8
sw v1,0x0(s0)
addiu a2,v0,0x4
or t9,s1,zero
jalr t9
_lhu a1,0x2(v0)
lw v0,0x0(s0)
sltu v1,s2,v0
bne v1,zero,0x0007124c
_lw gp,0x10(sp)
lw a1,-0x7fc8(gp)
or a0,s3,zero
lw t9,-0x7e70(gp)
addiu t9,t9,0x1104
bal 0x00071104
_addiu a1,a1,0x74cc
sw s3,0x4(s0)
lw ra,0x2c(sp)
lw s3,0x28(sp)
lw s2,0x24(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr ra
_addiu sp,sp,0x30
(translation_unit "void FUN_000711fc(uint *param_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  code *pcVar3;\n  uint uVar4;\n  \n  puVar1 = (uint *)*param_1;\n  uVar4 = param_1[1];\n  if (param_1 + 2 < puVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }\n  FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);\n  param_1[1] = uVar4;\n  return;\n}\n\n" (function_definition "void FUN_000711fc(uint *param_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  code *pcVar3;\n  uint uVar4;\n  \n  puVar1 = (uint *)*param_1;\n  uVar4 = param_1[1];\n  if (param_1 + 2 < puVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }\n  FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);\n  param_1[1] = uVar4;\n  return;\n}" primitive_type (function_declarator "FUN_000711fc(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  code *pcVar3;\n  uint uVar4;\n  \n  puVar1 = (uint *)*param_1;\n  uVar4 = param_1[1];\n  if (param_1 + 2 < puVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }\n  FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);\n  param_1[1] = uVar4;\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "puVar1 = (uint *)*param_1;" (assignment_expression "puVar1 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (param_1 + 2 < puVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }" if (parenthesized_expression "(param_1 + 2 < puVar1)" ( (binary_expression "param_1 + 2 < puVar1" (binary_expression "param_1 + 2" identifier + number_literal) < identifier) )) (compound_statement "{\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }" { (expression_statement "pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);" (assignment_expression "pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38)" identifier = (cast_expression "(code *)(PTR_LAB_0015b700 + -0x5c38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b700 + -0x5c38)" ( (binary_expression "PTR_LAB_0015b700 + -0x5c38" identifier + number_literal) )))) ;) (expression_statement "uVar2 = uVar4;" (assignment_expression "uVar2 = uVar4" identifier = identifier) ;) (while_statement "while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }" { (expression_statement "*param_1 = (uint)(puVar1 + -3);" (assignment_expression "*param_1 = (uint)(puVar1 + -3)" (pointer_expression "*param_1" * identifier) = (call_expression "(uint)(puVar1 + -3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar1 + -3)" ( (binary_expression "puVar1 + -3" identifier + number_literal) )))) ;) (expression_statement "(*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);" (call_expression "(*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2)" ( identifier , (cast_expression "(short)*puVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*puVar1" * identifier)) , (binary_expression "puVar1 + 1" identifier + number_literal) , (binary_expression "puVar1 + 2" identifier + number_literal) ))) ;) (expression_statement "puVar1 = (uint *)*param_1;" (assignment_expression "puVar1 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (puVar1 <= param_1 + 2) break;" if (parenthesized_expression "(puVar1 <= param_1 + 2)" ( (binary_expression "puVar1 <= param_1 + 2" identifier <= (binary_expression "param_1 + 2" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })) })) (expression_statement "FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);" (call_expression "FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc)" identifier (argument_list "(uVar4,PTR_LAB_0015b5e8 + 0x74cc)" ( identifier , (binary_expression "PTR_LAB_0015b5e8 + 0x74cc" identifier + number_literal) ))) ;) (expression_statement "param_1[1] = uVar4;" (assignment_expression "param_1[1] = uVar4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void yyStackOverflow(yyParser *yypParser)\n\n{\n  yyStackEntry *pyVar1;\n  Parse *pPVar2;\n  code *pcVar3;\n  Parse *pParse;\n  \n  pyVar1 = yypParser->yytos;\n  pParse = yypParser->pParse;\n  if (yypParser->yystack < pyVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    pPVar2 = pParse;\n    while( true ) {\n      yypParser->yytos = pyVar1 + -1;\n      (*pcVar3)(pPVar2,pyVar1->major,&pyVar1->minor,(undefined1 *)((int)&pyVar1->minor + 4));\n      pyVar1 = yypParser->yytos;\n      if (pyVar1 <= yypParser->yystack) break;\n      pPVar2 = yypParser->pParse;\n    }\n  }\n  sqlite3ErrorMsg(pParse,PTR_LAB_0015b5e8 + 0x74cc);\n  yypParser->pParse = pParse;\n  return;\n}\n\n" (function_definition "void yyStackOverflow(yyParser *yypParser)\n\n{\n  yyStackEntry *pyVar1;\n  Parse *pPVar2;\n  code *pcVar3;\n  Parse *pParse;\n  \n  pyVar1 = yypParser->yytos;\n  pParse = yypParser->pParse;\n  if (yypParser->yystack < pyVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    pPVar2 = pParse;\n    while( true ) {\n      yypParser->yytos = pyVar1 + -1;\n      (*pcVar3)(pPVar2,pyVar1->major,&pyVar1->minor,(undefined1 *)((int)&pyVar1->minor + 4));\n      pyVar1 = yypParser->yytos;\n      if (pyVar1 <= yypParser->yystack) break;\n      pPVar2 = yypParser->pParse;\n    }\n  }\n  sqlite3ErrorMsg(pParse,PTR_LAB_0015b5e8 + 0x74cc);\n  yypParser->pParse = pParse;\n  return;\n}" primitive_type (function_declarator "yyStackOverflow(yyParser *yypParser)" identifier (parameter_list "(yyParser *yypParser)" ( (parameter_declaration "yyParser *yypParser" type_identifier (pointer_declarator "*yypParser" * identifier)) ))) (compound_statement "{\n  yyStackEntry *pyVar1;\n  Parse *pPVar2;\n  code *pcVar3;\n  Parse *pParse;\n  \n  pyVar1 = yypParser->yytos;\n  pParse = yypParser->pParse;\n  if (yypParser->yystack < pyVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    pPVar2 = pParse;\n    while( true ) {\n      yypParser->yytos = pyVar1 + -1;\n      (*pcVar3)(pPVar2,pyVar1->major,&pyVar1->minor,(undefined1 *)((int)&pyVar1->minor + 4));\n      pyVar1 = yypParser->yytos;\n      if (pyVar1 <= yypParser->yystack) break;\n      pPVar2 = yypParser->pParse;\n    }\n  }\n  sqlite3ErrorMsg(pParse,PTR_LAB_0015b5e8 + 0x74cc);\n  yypParser->pParse = pParse;\n  return;\n}" { (declaration "yyStackEntry *pyVar1;" type_identifier (pointer_declarator "*pyVar1" * identifier) ;) (declaration "Parse *pPVar2;" type_identifier (pointer_declarator "*pPVar2" * identifier) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "Parse *pParse;" type_identifier (pointer_declarator "*pParse" * identifier) ;) (expression_statement "pyVar1 = yypParser->yytos;" (assignment_expression "pyVar1 = yypParser->yytos" identifier = (field_expression "yypParser->yytos" identifier -> field_identifier)) ;) (expression_statement "pParse = yypParser->pParse;" (assignment_expression "pParse = yypParser->pParse" identifier = (field_expression "yypParser->pParse" identifier -> field_identifier)) ;) (if_statement "if (yypParser->yystack < pyVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    pPVar2 = pParse;\n    while( true ) {\n      yypParser->yytos = pyVar1 + -1;\n      (*pcVar3)(pPVar2,pyVar1->major,&pyVar1->minor,(undefined1 *)((int)&pyVar1->minor + 4));\n      pyVar1 = yypParser->yytos;\n      if (pyVar1 <= yypParser->yystack) break;\n      pPVar2 = yypParser->pParse;\n    }\n  }" if (parenthesized_expression "(yypParser->yystack < pyVar1)" ( (binary_expression "yypParser->yystack < pyVar1" (field_expression "yypParser->yystack" identifier -> field_identifier) < identifier) )) (compound_statement "{\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    pPVar2 = pParse;\n    while( true ) {\n      yypParser->yytos = pyVar1 + -1;\n      (*pcVar3)(pPVar2,pyVar1->major,&pyVar1->minor,(undefined1 *)((int)&pyVar1->minor + 4));\n      pyVar1 = yypParser->yytos;\n      if (pyVar1 <= yypParser->yystack) break;\n      pPVar2 = yypParser->pParse;\n    }\n  }" { (expression_statement "pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);" (assignment_expression "pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38)" identifier = (cast_expression "(code *)(PTR_LAB_0015b700 + -0x5c38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b700 + -0x5c38)" ( (binary_expression "PTR_LAB_0015b700 + -0x5c38" identifier + number_literal) )))) ;) (expression_statement "pPVar2 = pParse;" (assignment_expression "pPVar2 = pParse" identifier = identifier) ;) (while_statement "while( true ) {\n      yypParser->yytos = pyVar1 + -1;\n      (*pcVar3)(pPVar2,pyVar1->major,&pyVar1->minor,(undefined1 *)((int)&pyVar1->minor + 4));\n      pyVar1 = yypParser->yytos;\n      if (pyVar1 <= yypParser->yystack) break;\n      pPVar2 = yypParser->pParse;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      yypParser->yytos = pyVar1 + -1;\n      (*pcVar3)(pPVar2,pyVar1->major,&pyVar1->minor,(undefined1 *)((int)&pyVar1->minor + 4));\n      pyVar1 = yypParser->yytos;\n      if (pyVar1 <= yypParser->yystack) break;\n      pPVar2 = yypParser->pParse;\n    }" { (expression_statement "yypParser->yytos = pyVar1 + -1;" (assignment_expression "yypParser->yytos = pyVar1 + -1" (field_expression "yypParser->yytos" identifier -> field_identifier) = (binary_expression "pyVar1 + -1" identifier + number_literal)) ;) (expression_statement "(*pcVar3)(pPVar2,pyVar1->major,&pyVar1->minor,(undefined1 *)((int)&pyVar1->minor + 4));" (call_expression "(*pcVar3)(pPVar2,pyVar1->major,&pyVar1->minor,(undefined1 *)((int)&pyVar1->minor + 4))" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(pPVar2,pyVar1->major,&pyVar1->minor,(undefined1 *)((int)&pyVar1->minor + 4))" ( identifier , (field_expression "pyVar1->major" identifier -> field_identifier) , (pointer_expression "&pyVar1->minor" & (field_expression "pyVar1->minor" identifier -> field_identifier)) , (cast_expression "(undefined1 *)((int)&pyVar1->minor + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pyVar1->minor + 4)" ( (binary_expression "(int)&pyVar1->minor + 4" (cast_expression "(int)&pyVar1->minor" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pyVar1->minor" & (field_expression "pyVar1->minor" identifier -> field_identifier))) + number_literal) ))) ))) ;) (expression_statement "pyVar1 = yypParser->yytos;" (assignment_expression "pyVar1 = yypParser->yytos" identifier = (field_expression "yypParser->yytos" identifier -> field_identifier)) ;) (if_statement "if (pyVar1 <= yypParser->yystack) break;" if (parenthesized_expression "(pyVar1 <= yypParser->yystack)" ( (binary_expression "pyVar1 <= yypParser->yystack" identifier <= (field_expression "yypParser->yystack" identifier -> field_identifier)) )) (break_statement "break;" break ;)) (expression_statement "pPVar2 = yypParser->pParse;" (assignment_expression "pPVar2 = yypParser->pParse" identifier = (field_expression "yypParser->pParse" identifier -> field_identifier)) ;) })) })) (expression_statement "sqlite3ErrorMsg(pParse,PTR_LAB_0015b5e8 + 0x74cc);" (call_expression "sqlite3ErrorMsg(pParse,PTR_LAB_0015b5e8 + 0x74cc)" identifier (argument_list "(pParse,PTR_LAB_0015b5e8 + 0x74cc)" ( identifier , (binary_expression "PTR_LAB_0015b5e8 + 0x74cc" identifier + number_literal) ))) ;) (expression_statement "yypParser->pParse = pParse;" (assignment_expression "yypParser->pParse = pParse" (field_expression "yypParser->pParse" identifier -> field_identifier) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_000711fc(uint *param_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  code *pcVar3;\n  uint uVar4;\n  \n  puVar1 = (uint *)*param_1;\n  uVar4 = param_1[1];\n  if (param_1 + 2 < puVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }\n  FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);\n  param_1[1] = uVar4;\n  return;\n}\n\n" (function_definition "void FUN_000711fc(uint *param_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  code *pcVar3;\n  uint uVar4;\n  \n  puVar1 = (uint *)*param_1;\n  uVar4 = param_1[1];\n  if (param_1 + 2 < puVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }\n  FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);\n  param_1[1] = uVar4;\n  return;\n}" primitive_type (function_declarator "FUN_000711fc(uint *param_1)" identifier (parameter_list "(uint *param_1)" ( (parameter_declaration "uint *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  code *pcVar3;\n  uint uVar4;\n  \n  puVar1 = (uint *)*param_1;\n  uVar4 = param_1[1];\n  if (param_1 + 2 < puVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }\n  FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);\n  param_1[1] = uVar4;\n  return;\n}" { (declaration "uint *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (expression_statement "puVar1 = (uint *)*param_1;" (assignment_expression "puVar1 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (param_1 + 2 < puVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }" if (parenthesized_expression "(param_1 + 2 < puVar1)" ( (binary_expression "param_1 + 2 < puVar1" (binary_expression "param_1 + 2" identifier + number_literal) < identifier) )) (compound_statement "{\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }" { (expression_statement "pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);" (assignment_expression "pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38)" identifier = (cast_expression "(code *)(PTR_LAB_0015b700 + -0x5c38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b700 + -0x5c38)" ( (binary_expression "PTR_LAB_0015b700 + -0x5c38" identifier + number_literal) )))) ;) (expression_statement "uVar2 = uVar4;" (assignment_expression "uVar2 = uVar4" identifier = identifier) ;) (while_statement "while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }" { (expression_statement "*param_1 = (uint)(puVar1 + -3);" (assignment_expression "*param_1 = (uint)(puVar1 + -3)" (pointer_expression "*param_1" * identifier) = (call_expression "(uint)(puVar1 + -3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar1 + -3)" ( (binary_expression "puVar1 + -3" identifier + number_literal) )))) ;) (expression_statement "(*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);" (call_expression "(*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2)" ( identifier , (cast_expression "(short)*puVar1" ( (type_descriptor "short" (sized_type_specifier "short" short)) ) (pointer_expression "*puVar1" * identifier)) , (binary_expression "puVar1 + 1" identifier + number_literal) , (binary_expression "puVar1 + 2" identifier + number_literal) ))) ;) (expression_statement "puVar1 = (uint *)*param_1;" (assignment_expression "puVar1 = (uint *)*param_1" identifier = (cast_expression "(uint *)*param_1" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (puVar1 <= param_1 + 2) break;" if (parenthesized_expression "(puVar1 <= param_1 + 2)" ( (binary_expression "puVar1 <= param_1 + 2" identifier <= (binary_expression "param_1 + 2" identifier + number_literal)) )) (break_statement "break;" break ;)) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) })) })) (expression_statement "FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);" (call_expression "FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc)" identifier (argument_list "(uVar4,PTR_LAB_0015b5e8 + 0x74cc)" ( identifier , (binary_expression "PTR_LAB_0015b5e8 + 0x74cc" identifier + number_literal) ))) ;) (expression_statement "param_1[1] = uVar4;" (assignment_expression "param_1[1] = uVar4" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (cast_expression ( (type_descriptor (sized_type_specifier short)) ) (pointer_expression * IDENT)) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= (binary_expression IDENT + LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_000711fc(uint *param_1)\n\n{\n  uint *puVar1;\n  uint uVar2;\n  code *pcVar3;\n  uint uVar4;\n  \n  puVar1 = (uint *)*param_1;\n  uVar4 = param_1[1];\n  if (param_1 + 2 < puVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }\n  FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);\n  param_1[1] = uVar4;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_000711fc(uint *param_1)" (identifier "FUN_000711fc") (parameter_list "(uint *param_1)" (( "(") (parameter_declaration "uint *param_1" (type_identifier "uint") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  uint *puVar1;\n  uint uVar2;\n  code *pcVar3;\n  uint uVar4;\n  \n  puVar1 = (uint *)*param_1;\n  uVar4 = param_1[1];\n  if (param_1 + 2 < puVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }\n  FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);\n  param_1[1] = uVar4;\n  return;\n}" ({ "{") (declaration "uint *puVar1;" (type_identifier "uint") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "code *pcVar3;" (type_identifier "code") (pointer_declarator "*pcVar3" (* "*") (identifier "pcVar3")) (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (expression_statement "puVar1 = (uint *)*param_1;" (assignment_expression "puVar1 = (uint *)*param_1" (identifier "puVar1") (= "=") (cast_expression "(uint *)*param_1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "uVar4 = param_1[1];" (assignment_expression "uVar4 = param_1[1]" (identifier "uVar4") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (param_1 + 2 < puVar1) {\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }" (if "if") (parenthesized_expression "(param_1 + 2 < puVar1)" (( "(") (binary_expression "param_1 + 2 < puVar1" (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2")) (< "<") (identifier "puVar1")) () ")")) (compound_statement "{\n    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);\n    uVar2 = uVar4;\n    while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }\n  }" ({ "{") (expression_statement "pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);" (assignment_expression "pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38)" (identifier "pcVar3") (= "=") (cast_expression "(code *)(PTR_LAB_0015b700 + -0x5c38)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b700 + -0x5c38)" (( "(") (binary_expression "PTR_LAB_0015b700 + -0x5c38" (identifier "PTR_LAB_0015b700") (+ "+") (number_literal "-0x5c38")) () ")")))) (; ";")) (expression_statement "uVar2 = uVar4;" (assignment_expression "uVar2 = uVar4" (identifier "uVar2") (= "=") (identifier "uVar4")) (; ";")) (while_statement "while( true ) {\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      *param_1 = (uint)(puVar1 + -3);\n      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);\n      puVar1 = (uint *)*param_1;\n      if (puVar1 <= param_1 + 2) break;\n      uVar2 = param_1[1];\n    }" ({ "{") (expression_statement "*param_1 = (uint)(puVar1 + -3);" (assignment_expression "*param_1 = (uint)(puVar1 + -3)" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (= "=") (call_expression "(uint)(puVar1 + -3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar1 + -3)" (( "(") (binary_expression "puVar1 + -3" (identifier "puVar1") (+ "+") (number_literal "-3")) () ")")))) (; ";")) (expression_statement "(*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);" (call_expression "(*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2)" (parenthesized_expression "(*pcVar3)" (( "(") (pointer_expression "*pcVar3" (* "*") (identifier "pcVar3")) () ")")) (argument_list "(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2)" (( "(") (identifier "uVar2") (, ",") (cast_expression "(short)*puVar1" (( "(") (type_descriptor "short" (sized_type_specifier "short" (short "short"))) () ")") (pointer_expression "*puVar1" (* "*") (identifier "puVar1"))) (, ",") (binary_expression "puVar1 + 1" (identifier "puVar1") (+ "+") (number_literal "1")) (, ",") (binary_expression "puVar1 + 2" (identifier "puVar1") (+ "+") (number_literal "2")) () ")"))) (; ";")) (expression_statement "puVar1 = (uint *)*param_1;" (assignment_expression "puVar1 = (uint *)*param_1" (identifier "puVar1") (= "=") (cast_expression "(uint *)*param_1" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if (puVar1 <= param_1 + 2) break;" (if "if") (parenthesized_expression "(puVar1 <= param_1 + 2)" (( "(") (binary_expression "puVar1 <= param_1 + 2" (identifier "puVar1") (<= "<=") (binary_expression "param_1 + 2" (identifier "param_1") (+ "+") (number_literal "2"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar2 = param_1[1];" (assignment_expression "uVar2 = param_1[1]" (identifier "uVar2") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);" (call_expression "FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc)" (identifier "FUN_00071104") (argument_list "(uVar4,PTR_LAB_0015b5e8 + 0x74cc)" (( "(") (identifier "uVar4") (, ",") (binary_expression "PTR_LAB_0015b5e8 + 0x74cc" (identifier "PTR_LAB_0015b5e8") (+ "+") (number_literal "0x74cc")) () ")"))) (; ";")) (expression_statement "param_1[1] = uVar4;" (assignment_expression "param_1[1] = uVar4" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar4")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (cast_expression type: (type_descriptor type: (sized_type_specifier)) value: (pointer_expression argument: (identifier))) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (return_statement))))

void MASKED(uint *param_1)

{
  uint *puVar1;
  uint uVar2;
  code *pcVar3;
  uint uVar4;
  
  puVar1 = (uint *)*param_1;
  uVar4 = param_1[1];
  if (param_1 + 2 < puVar1) {
    pcVar3 = (code *)(PTR_LAB_0015b700 + -0x5c38);
    uVar2 = uVar4;
    while( true ) {
      *param_1 = (uint)(puVar1 + -3);
      (*pcVar3)(uVar2,(short)*puVar1,puVar1 + 1,puVar1 + 2);
      puVar1 = (uint *)*param_1;
      if (puVar1 <= param_1 + 2) break;
      uVar2 = param_1[1];
    }
  }
  FUN_00071104(uVar4,PTR_LAB_0015b5e8 + 0x74cc);
  param_1[1] = uVar4;
  return;
}

