
void __regparm3 renameParseCleanup(Parse *pParse)

{
  sqlite3 *db;
  Index *p;
  RenameToken *pRVar1;
  RenameToken *p_00;
  
  db = pParse->db;
  if (pParse->pVdbe != (Vdbe *)0x0) {
    sqlite3VdbeFinalize(pParse->pVdbe);
  }
  sqlite3DeleteTable(db,pParse->pNewTable);
  p = pParse->pNewIndex;
  while (p != (Index *)0x0) {
    pParse->pNewIndex = p->pNext;
    sqlite3FreeIndex(db,p);
    p = pParse->pNewIndex;
  }
  if (pParse->pNewTrigger != (Trigger *)0x0) {
    sqlite3DeleteTrigger(db,pParse->pNewTrigger);
  }
  if (pParse->zErrMsg != (char *)0x0) {
    sqlite3DbFreeNN(db,pParse->zErrMsg);
  }
  p_00 = pParse->pRename;
  while (p_00 != (RenameToken *)0x0) {
    pRVar1 = p_00->pNext;
    sqlite3DbFreeNN(db,p_00);
    p_00 = pRVar1;
  }
  sqlite3ParserReset(pParse);
  return;
}



void __regparm3 FUN_0008fdc0(int param_1)

{
  int iVar1;
  
  if (*(int *)(param_1 + 8) != 0) {
    FUN_0008b3e0();
  }
  FUN_0003afc0();
  iVar1 = *(int *)(param_1 + 0xe4);
  while (iVar1 != 0) {
    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);
    FUN_0003a230();
    iVar1 = *(int *)(param_1 + 0xe4);
  }
  if (*(int *)(param_1 + 0xe8) != 0) {
    FUN_0003ad00();
  }
  if (*(int *)(param_1 + 4) != 0) {
    FUN_00026590();
  }
  iVar1 = *(int *)(param_1 + 0x10c);
  while (iVar1 != 0) {
    iVar1 = *(int *)(iVar1 + 0xc);
    FUN_00026590();
  }
  FUN_0003a110();
  return;
}


PUSH EDI
PUSH ESI
PUSH EBX
MOV EBX,EAX
MOV ESI,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x8]
TEST EAX,EAX
JZ 0x0008fdd3
CALL 0x0008b3e0
MOV EDX,dword ptr [EBX + 0xe0]
MOV EAX,ESI
CALL 0x0003afc0
MOV EDX,dword ptr [EBX + 0xe4]
TEST EDX,EDX
JZ 0x0008fe0a
LEA ESI,[ESI]
MOV EAX,dword ptr [EDX + 0x14]
MOV dword ptr [EBX + 0xe4],EAX
MOV EAX,ESI
CALL 0x0003a230
MOV EDX,dword ptr [EBX + 0xe4]
TEST EDX,EDX
JNZ 0x0008fdf0
MOV EDX,dword ptr [EBX + 0xe8]
TEST EDX,EDX
JZ 0x0008fe1b
MOV EAX,ESI
CALL 0x0003ad00
MOV EDX,dword ptr [EBX + 0x4]
TEST EDX,EDX
JZ 0x0008fe29
MOV EAX,ESI
CALL 0x00026590
MOV EDX,dword ptr [EBX + 0x10c]
TEST EDX,EDX
JZ 0x0008fe48
LEA ESI,[ESI]
NOP
MOV EDI,dword ptr [EDX + 0xc]
MOV EAX,ESI
CALL 0x00026590
MOV EDX,EDI
TEST EDI,EDI
JNZ 0x0008fe38
MOV EAX,EBX
POP EBX
POP ESI
POP EDI
JMP 0x0003a110
(translation_unit "void __regparm3 FUN_0008fdc0(int param_1)\n\n{\n  int iVar1;\n  \n  if (*(int *)(param_1 + 8) != 0) {\n    FUN_0008b3e0();\n  }\n  FUN_0003afc0();\n  iVar1 = *(int *)(param_1 + 0xe4);\n  while (iVar1 != 0) {\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }\n  if (*(int *)(param_1 + 0xe8) != 0) {\n    FUN_0003ad00();\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    FUN_00026590();\n  }\n  iVar1 = *(int *)(param_1 + 0x10c);\n  while (iVar1 != 0) {\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }\n  FUN_0003a110();\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0008fdc0(int param_1)\n\n{\n  int iVar1;\n  \n  if (*(int *)(param_1 + 8) != 0) {\n    FUN_0008b3e0();\n  }\n  FUN_0003afc0();\n  iVar1 = *(int *)(param_1 + 0xe4);\n  while (iVar1 != 0) {\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }\n  if (*(int *)(param_1 + 0xe8) != 0) {\n    FUN_0003ad00();\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    FUN_00026590();\n  }\n  iVar1 = *(int *)(param_1 + 0x10c);\n  while (iVar1 != 0) {\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }\n  FUN_0003a110();\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0008fdc0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if (*(int *)(param_1 + 8) != 0) {\n    FUN_0008b3e0();\n  }\n  FUN_0003afc0();\n  iVar1 = *(int *)(param_1 + 0xe4);\n  while (iVar1 != 0) {\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }\n  if (*(int *)(param_1 + 0xe8) != 0) {\n    FUN_0003ad00();\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    FUN_00026590();\n  }\n  iVar1 = *(int *)(param_1 + 0x10c);\n  while (iVar1 != 0) {\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }\n  FUN_0003a110();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (*(int *)(param_1 + 8) != 0) {\n    FUN_0008b3e0();\n  }" if (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" ( (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0008b3e0();\n  }" { (expression_statement "FUN_0008b3e0();" (call_expression "FUN_0008b3e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0003afc0();" (call_expression "FUN_0003afc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0xe4);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xe4)" identifier = (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) ))))) ;) (while_statement "while (iVar1 != 0) {\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }" { (expression_statement "*(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);" (assignment_expression "*(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14)" (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x14)" * (cast_expression "(undefined4 *)(iVar1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "FUN_0003a230();" (call_expression "FUN_0003a230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0xe4);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xe4)" identifier = (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(param_1 + 0xe8) != 0) {\n    FUN_0003ad00();\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0xe8) != 0)" ( (binary_expression "*(int *)(param_1 + 0xe8) != 0" (pointer_expression "*(int *)(param_1 + 0xe8)" * (cast_expression "(int *)(param_1 + 0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0003ad00();\n  }" { (expression_statement "FUN_0003ad00();" (call_expression "FUN_0003ad00()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(param_1 + 4) != 0) {\n    FUN_00026590();\n  }" if (parenthesized_expression "(*(int *)(param_1 + 4) != 0)" ( (binary_expression "*(int *)(param_1 + 4) != 0" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_00026590();\n  }" { (expression_statement "FUN_00026590();" (call_expression "FUN_00026590()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar1 = *(int *)(param_1 + 0x10c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x10c)" identifier = (pointer_expression "*(int *)(param_1 + 0x10c)" * (cast_expression "(int *)(param_1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) ;) (while_statement "while (iVar1 != 0) {\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }" { (expression_statement "iVar1 = *(int *)(iVar1 + 0xc);" (assignment_expression "iVar1 = *(int *)(iVar1 + 0xc)" identifier = (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "FUN_00026590();" (call_expression "FUN_00026590()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0003a110();" (call_expression "FUN_0003a110()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 renameParseCleanup(Parse *pParse)\n\n{\n  sqlite3 *db;\n  Index *p;\n  RenameToken *pRVar1;\n  RenameToken *p_00;\n  \n  db = pParse->db;\n  if (pParse->pVdbe != (Vdbe *)0x0) {\n    sqlite3VdbeFinalize(pParse->pVdbe);\n  }\n  sqlite3DeleteTable(db,pParse->pNewTable);\n  p = pParse->pNewIndex;\n  while (p != (Index *)0x0) {\n    pParse->pNewIndex = p->pNext;\n    sqlite3FreeIndex(db,p);\n    p = pParse->pNewIndex;\n  }\n  if (pParse->pNewTrigger != (Trigger *)0x0) {\n    sqlite3DeleteTrigger(db,pParse->pNewTrigger);\n  }\n  if (pParse->zErrMsg != (char *)0x0) {\n    sqlite3DbFreeNN(db,pParse->zErrMsg);\n  }\n  p_00 = pParse->pRename;\n  while (p_00 != (RenameToken *)0x0) {\n    pRVar1 = p_00->pNext;\n    sqlite3DbFreeNN(db,p_00);\n    p_00 = pRVar1;\n  }\n  sqlite3ParserReset(pParse);\n  return;\n}\n\n" (function_definition "void __regparm3 renameParseCleanup(Parse *pParse)\n\n{\n  sqlite3 *db;\n  Index *p;\n  RenameToken *pRVar1;\n  RenameToken *p_00;\n  \n  db = pParse->db;\n  if (pParse->pVdbe != (Vdbe *)0x0) {\n    sqlite3VdbeFinalize(pParse->pVdbe);\n  }\n  sqlite3DeleteTable(db,pParse->pNewTable);\n  p = pParse->pNewIndex;\n  while (p != (Index *)0x0) {\n    pParse->pNewIndex = p->pNext;\n    sqlite3FreeIndex(db,p);\n    p = pParse->pNewIndex;\n  }\n  if (pParse->pNewTrigger != (Trigger *)0x0) {\n    sqlite3DeleteTrigger(db,pParse->pNewTrigger);\n  }\n  if (pParse->zErrMsg != (char *)0x0) {\n    sqlite3DbFreeNN(db,pParse->zErrMsg);\n  }\n  p_00 = pParse->pRename;\n  while (p_00 != (RenameToken *)0x0) {\n    pRVar1 = p_00->pNext;\n    sqlite3DbFreeNN(db,p_00);\n    p_00 = pRVar1;\n  }\n  sqlite3ParserReset(pParse);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "renameParseCleanup(Parse *pParse)" identifier (parameter_list "(Parse *pParse)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) ))) (compound_statement "{\n  sqlite3 *db;\n  Index *p;\n  RenameToken *pRVar1;\n  RenameToken *p_00;\n  \n  db = pParse->db;\n  if (pParse->pVdbe != (Vdbe *)0x0) {\n    sqlite3VdbeFinalize(pParse->pVdbe);\n  }\n  sqlite3DeleteTable(db,pParse->pNewTable);\n  p = pParse->pNewIndex;\n  while (p != (Index *)0x0) {\n    pParse->pNewIndex = p->pNext;\n    sqlite3FreeIndex(db,p);\n    p = pParse->pNewIndex;\n  }\n  if (pParse->pNewTrigger != (Trigger *)0x0) {\n    sqlite3DeleteTrigger(db,pParse->pNewTrigger);\n  }\n  if (pParse->zErrMsg != (char *)0x0) {\n    sqlite3DbFreeNN(db,pParse->zErrMsg);\n  }\n  p_00 = pParse->pRename;\n  while (p_00 != (RenameToken *)0x0) {\n    pRVar1 = p_00->pNext;\n    sqlite3DbFreeNN(db,p_00);\n    p_00 = pRVar1;\n  }\n  sqlite3ParserReset(pParse);\n  return;\n}" { (declaration "sqlite3 *db;" type_identifier (pointer_declarator "*db" * identifier) ;) (declaration "Index *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "RenameToken *pRVar1;" type_identifier (pointer_declarator "*pRVar1" * identifier) ;) (declaration "RenameToken *p_00;" type_identifier (pointer_declarator "*p_00" * identifier) ;) (expression_statement "db = pParse->db;" (assignment_expression "db = pParse->db" identifier = (field_expression "pParse->db" identifier -> field_identifier)) ;) (if_statement "if (pParse->pVdbe != (Vdbe *)0x0) {\n    sqlite3VdbeFinalize(pParse->pVdbe);\n  }" if (parenthesized_expression "(pParse->pVdbe != (Vdbe *)0x0)" ( (binary_expression "pParse->pVdbe != (Vdbe *)0x0" (field_expression "pParse->pVdbe" identifier -> field_identifier) != (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3VdbeFinalize(pParse->pVdbe);\n  }" { (expression_statement "sqlite3VdbeFinalize(pParse->pVdbe);" (call_expression "sqlite3VdbeFinalize(pParse->pVdbe)" identifier (argument_list "(pParse->pVdbe)" ( (field_expression "pParse->pVdbe" identifier -> field_identifier) ))) ;) })) (expression_statement "sqlite3DeleteTable(db,pParse->pNewTable);" (call_expression "sqlite3DeleteTable(db,pParse->pNewTable)" identifier (argument_list "(db,pParse->pNewTable)" ( identifier , (field_expression "pParse->pNewTable" identifier -> field_identifier) ))) ;) (expression_statement "p = pParse->pNewIndex;" (assignment_expression "p = pParse->pNewIndex" identifier = (field_expression "pParse->pNewIndex" identifier -> field_identifier)) ;) (while_statement "while (p != (Index *)0x0) {\n    pParse->pNewIndex = p->pNext;\n    sqlite3FreeIndex(db,p);\n    p = pParse->pNewIndex;\n  }" while (parenthesized_expression "(p != (Index *)0x0)" ( (binary_expression "p != (Index *)0x0" identifier != (cast_expression "(Index *)0x0" ( (type_descriptor "Index *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pParse->pNewIndex = p->pNext;\n    sqlite3FreeIndex(db,p);\n    p = pParse->pNewIndex;\n  }" { (expression_statement "pParse->pNewIndex = p->pNext;" (assignment_expression "pParse->pNewIndex = p->pNext" (field_expression "pParse->pNewIndex" identifier -> field_identifier) = (field_expression "p->pNext" identifier -> field_identifier)) ;) (expression_statement "sqlite3FreeIndex(db,p);" (call_expression "sqlite3FreeIndex(db,p)" identifier (argument_list "(db,p)" ( identifier , identifier ))) ;) (expression_statement "p = pParse->pNewIndex;" (assignment_expression "p = pParse->pNewIndex" identifier = (field_expression "pParse->pNewIndex" identifier -> field_identifier)) ;) })) (if_statement "if (pParse->pNewTrigger != (Trigger *)0x0) {\n    sqlite3DeleteTrigger(db,pParse->pNewTrigger);\n  }" if (parenthesized_expression "(pParse->pNewTrigger != (Trigger *)0x0)" ( (binary_expression "pParse->pNewTrigger != (Trigger *)0x0" (field_expression "pParse->pNewTrigger" identifier -> field_identifier) != (cast_expression "(Trigger *)0x0" ( (type_descriptor "Trigger *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3DeleteTrigger(db,pParse->pNewTrigger);\n  }" { (expression_statement "sqlite3DeleteTrigger(db,pParse->pNewTrigger);" (call_expression "sqlite3DeleteTrigger(db,pParse->pNewTrigger)" identifier (argument_list "(db,pParse->pNewTrigger)" ( identifier , (field_expression "pParse->pNewTrigger" identifier -> field_identifier) ))) ;) })) (if_statement "if (pParse->zErrMsg != (char *)0x0) {\n    sqlite3DbFreeNN(db,pParse->zErrMsg);\n  }" if (parenthesized_expression "(pParse->zErrMsg != (char *)0x0)" ( (binary_expression "pParse->zErrMsg != (char *)0x0" (field_expression "pParse->zErrMsg" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    sqlite3DbFreeNN(db,pParse->zErrMsg);\n  }" { (expression_statement "sqlite3DbFreeNN(db,pParse->zErrMsg);" (call_expression "sqlite3DbFreeNN(db,pParse->zErrMsg)" identifier (argument_list "(db,pParse->zErrMsg)" ( identifier , (field_expression "pParse->zErrMsg" identifier -> field_identifier) ))) ;) })) (expression_statement "p_00 = pParse->pRename;" (assignment_expression "p_00 = pParse->pRename" identifier = (field_expression "pParse->pRename" identifier -> field_identifier)) ;) (while_statement "while (p_00 != (RenameToken *)0x0) {\n    pRVar1 = p_00->pNext;\n    sqlite3DbFreeNN(db,p_00);\n    p_00 = pRVar1;\n  }" while (parenthesized_expression "(p_00 != (RenameToken *)0x0)" ( (binary_expression "p_00 != (RenameToken *)0x0" identifier != (cast_expression "(RenameToken *)0x0" ( (type_descriptor "RenameToken *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pRVar1 = p_00->pNext;\n    sqlite3DbFreeNN(db,p_00);\n    p_00 = pRVar1;\n  }" { (expression_statement "pRVar1 = p_00->pNext;" (assignment_expression "pRVar1 = p_00->pNext" identifier = (field_expression "p_00->pNext" identifier -> field_identifier)) ;) (expression_statement "sqlite3DbFreeNN(db,p_00);" (call_expression "sqlite3DbFreeNN(db,p_00)" identifier (argument_list "(db,p_00)" ( identifier , identifier ))) ;) (expression_statement "p_00 = pRVar1;" (assignment_expression "p_00 = pRVar1" identifier = identifier) ;) })) (expression_statement "sqlite3ParserReset(pParse);" (call_expression "sqlite3ParserReset(pParse)" identifier (argument_list "(pParse)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_0008fdc0(int param_1)\n\n{\n  int iVar1;\n  \n  if (*(int *)(param_1 + 8) != 0) {\n    FUN_0008b3e0();\n  }\n  FUN_0003afc0();\n  iVar1 = *(int *)(param_1 + 0xe4);\n  while (iVar1 != 0) {\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }\n  if (*(int *)(param_1 + 0xe8) != 0) {\n    FUN_0003ad00();\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    FUN_00026590();\n  }\n  iVar1 = *(int *)(param_1 + 0x10c);\n  while (iVar1 != 0) {\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }\n  FUN_0003a110();\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0008fdc0(int param_1)\n\n{\n  int iVar1;\n  \n  if (*(int *)(param_1 + 8) != 0) {\n    FUN_0008b3e0();\n  }\n  FUN_0003afc0();\n  iVar1 = *(int *)(param_1 + 0xe4);\n  while (iVar1 != 0) {\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }\n  if (*(int *)(param_1 + 0xe8) != 0) {\n    FUN_0003ad00();\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    FUN_00026590();\n  }\n  iVar1 = *(int *)(param_1 + 0x10c);\n  while (iVar1 != 0) {\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }\n  FUN_0003a110();\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0008fdc0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  int iVar1;\n  \n  if (*(int *)(param_1 + 8) != 0) {\n    FUN_0008b3e0();\n  }\n  FUN_0003afc0();\n  iVar1 = *(int *)(param_1 + 0xe4);\n  while (iVar1 != 0) {\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }\n  if (*(int *)(param_1 + 0xe8) != 0) {\n    FUN_0003ad00();\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    FUN_00026590();\n  }\n  iVar1 = *(int *)(param_1 + 0x10c);\n  while (iVar1 != 0) {\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }\n  FUN_0003a110();\n  return;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (if_statement "if (*(int *)(param_1 + 8) != 0) {\n    FUN_0008b3e0();\n  }" if (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" ( (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" * (cast_expression "(int *)(param_1 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0008b3e0();\n  }" { (expression_statement "FUN_0008b3e0();" (call_expression "FUN_0008b3e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0003afc0();" (call_expression "FUN_0003afc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0xe4);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xe4)" identifier = (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) ))))) ;) (while_statement "while (iVar1 != 0) {\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }" { (expression_statement "*(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);" (assignment_expression "*(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14)" (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(iVar1 + 0x14)" * (cast_expression "(undefined4 *)(iVar1 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0x14)" ( (binary_expression "iVar1 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "FUN_0003a230();" (call_expression "FUN_0003a230()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar1 = *(int *)(param_1 + 0xe4);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xe4)" identifier = (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(param_1 + 0xe8) != 0) {\n    FUN_0003ad00();\n  }" if (parenthesized_expression "(*(int *)(param_1 + 0xe8) != 0)" ( (binary_expression "*(int *)(param_1 + 0xe8) != 0" (pointer_expression "*(int *)(param_1 + 0xe8)" * (cast_expression "(int *)(param_1 + 0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe8)" ( (binary_expression "param_1 + 0xe8" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_0003ad00();\n  }" { (expression_statement "FUN_0003ad00();" (call_expression "FUN_0003ad00()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(int *)(param_1 + 4) != 0) {\n    FUN_00026590();\n  }" if (parenthesized_expression "(*(int *)(param_1 + 4) != 0)" ( (binary_expression "*(int *)(param_1 + 4) != 0" (pointer_expression "*(int *)(param_1 + 4)" * (cast_expression "(int *)(param_1 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 4)" ( (binary_expression "param_1 + 4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n    FUN_00026590();\n  }" { (expression_statement "FUN_00026590();" (call_expression "FUN_00026590()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar1 = *(int *)(param_1 + 0x10c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x10c)" identifier = (pointer_expression "*(int *)(param_1 + 0x10c)" * (cast_expression "(int *)(param_1 + 0x10c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10c)" ( (binary_expression "param_1 + 0x10c" identifier + number_literal) ))))) ;) (while_statement "while (iVar1 != 0) {\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }" while (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }" { (expression_statement "iVar1 = *(int *)(iVar1 + 0xc);" (assignment_expression "iVar1 = *(int *)(iVar1 + 0xc)" identifier = (pointer_expression "*(int *)(iVar1 + 0xc)" * (cast_expression "(int *)(iVar1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 0xc)" ( (binary_expression "iVar1 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "FUN_00026590();" (call_expression "FUN_00026590()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_0003a110();" (call_expression "FUN_0003a110()" identifier (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_0008fdc0(int param_1)\n\n{\n  int iVar1;\n  \n  if (*(int *)(param_1 + 8) != 0) {\n    FUN_0008b3e0();\n  }\n  FUN_0003afc0();\n  iVar1 = *(int *)(param_1 + 0xe4);\n  while (iVar1 != 0) {\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }\n  if (*(int *)(param_1 + 0xe8) != 0) {\n    FUN_0003ad00();\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    FUN_00026590();\n  }\n  iVar1 = *(int *)(param_1 + 0x10c);\n  while (iVar1 != 0) {\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }\n  FUN_0003a110();\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0008fdc0(int param_1)" (identifier "FUN_0008fdc0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  if (*(int *)(param_1 + 8) != 0) {\n    FUN_0008b3e0();\n  }\n  FUN_0003afc0();\n  iVar1 = *(int *)(param_1 + 0xe4);\n  while (iVar1 != 0) {\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }\n  if (*(int *)(param_1 + 0xe8) != 0) {\n    FUN_0003ad00();\n  }\n  if (*(int *)(param_1 + 4) != 0) {\n    FUN_00026590();\n  }\n  iVar1 = *(int *)(param_1 + 0x10c);\n  while (iVar1 != 0) {\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }\n  FUN_0003a110();\n  return;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (if_statement "if (*(int *)(param_1 + 8) != 0) {\n    FUN_0008b3e0();\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 8) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 8) != 0" (pointer_expression "*(int *)(param_1 + 8)" (* "*") (cast_expression "(int *)(param_1 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0008b3e0();\n  }" ({ "{") (expression_statement "FUN_0008b3e0();" (call_expression "FUN_0008b3e0()" (identifier "FUN_0008b3e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0003afc0();" (call_expression "FUN_0003afc0()" (identifier "FUN_0003afc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(param_1 + 0xe4);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xe4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0xe4)" (* "*") (cast_expression "(int *)(param_1 + 0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")"))))) (; ";")) (while_statement "while (iVar1 != 0) {\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }" (while "while") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);\n    FUN_0003a230();\n    iVar1 = *(int *)(param_1 + 0xe4);\n  }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);" (assignment_expression "*(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14)" (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(iVar1 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0x14)" (( "(") (binary_expression "iVar1 + 0x14" (identifier "iVar1") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "FUN_0003a230();" (call_expression "FUN_0003a230()" (identifier "FUN_0003a230") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = *(int *)(param_1 + 0xe4);" (assignment_expression "iVar1 = *(int *)(param_1 + 0xe4)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0xe4)" (* "*") (cast_expression "(int *)(param_1 + 0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0xe8) != 0) {\n    FUN_0003ad00();\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xe8) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xe8) != 0" (pointer_expression "*(int *)(param_1 + 0xe8)" (* "*") (cast_expression "(int *)(param_1 + 0xe8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe8)" (( "(") (binary_expression "param_1 + 0xe8" (identifier "param_1") (+ "+") (number_literal "0xe8")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0003ad00();\n  }" ({ "{") (expression_statement "FUN_0003ad00();" (call_expression "FUN_0003ad00()" (identifier "FUN_0003ad00") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 4) != 0) {\n    FUN_00026590();\n  }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 4) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 4) != 0" (pointer_expression "*(int *)(param_1 + 4)" (* "*") (cast_expression "(int *)(param_1 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 4)" (( "(") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_00026590();\n  }" ({ "{") (expression_statement "FUN_00026590();" (call_expression "FUN_00026590()" (identifier "FUN_00026590") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar1 = *(int *)(param_1 + 0x10c);" (assignment_expression "iVar1 = *(int *)(param_1 + 0x10c)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(param_1 + 0x10c)" (* "*") (cast_expression "(int *)(param_1 + 0x10c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10c)" (( "(") (binary_expression "param_1 + 0x10c" (identifier "param_1") (+ "+") (number_literal "0x10c")) () ")"))))) (; ";")) (while_statement "while (iVar1 != 0) {\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }" (while "while") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = *(int *)(iVar1 + 0xc);\n    FUN_00026590();\n  }" ({ "{") (expression_statement "iVar1 = *(int *)(iVar1 + 0xc);" (assignment_expression "iVar1 = *(int *)(iVar1 + 0xc)" (identifier "iVar1") (= "=") (pointer_expression "*(int *)(iVar1 + 0xc)" (* "*") (cast_expression "(int *)(iVar1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 0xc)" (( "(") (binary_expression "iVar1 + 0xc" (identifier "iVar1") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "FUN_00026590();" (call_expression "FUN_00026590()" (identifier "FUN_00026590") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0003a110();" (call_expression "FUN_0003a110()" (identifier "FUN_0003a110") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void __regparm3 function_1(type_1 *pParse)

{
  type_2 *db;
  type_3 *var_3;
  type_4 *pRVar1;
  type_4 *var_7;
  
  db = pParse->db;
  if (pParse->pVdbe != (type_5 *)0x0) {
    var_1(pParse->pVdbe);
  }
  var_2(db,pParse->pNewTable);
  var_3 = pParse->pNewIndex;
  while (var_3 != (type_3 *)0x0) {
    pParse->pNewIndex = var_3->pNext;
    var_4(db,var_3);
    var_3 = pParse->pNewIndex;
  }
  if (pParse->pNewTrigger != (type_6 *)0x0) {
    var_5(db,pParse->pNewTrigger);
  }
  if (pParse->zErrMsg != (char *)0x0) {
    var_6(db,pParse->zErrMsg);
  }
  var_7 = pParse->pRename;
  while (var_7 != (type_4 *)0x0) {
    pRVar1 = var_7->pNext;
    var_6(db,var_7);
    var_7 = pRVar1;
  }
  var_8(pParse);
  return;
}


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

void __regparm3 MASKED(int param_1)

{
  int iVar1;
  
  if (*(int *)(param_1 + 8) != 0) {
    FUN_0008b3e0();
  }
  FUN_0003afc0();
  iVar1 = *(int *)(param_1 + 0xe4);
  while (iVar1 != 0) {
    *(undefined4 *)(param_1 + 0xe4) = *(undefined4 *)(iVar1 + 0x14);
    FUN_0003a230();
    iVar1 = *(int *)(param_1 + 0xe4);
  }
  if (*(int *)(param_1 + 0xe8) != 0) {
    FUN_0003ad00();
  }
  if (*(int *)(param_1 + 4) != 0) {
    FUN_00026590();
  }
  iVar1 = *(int *)(param_1 + 0x10c);
  while (iVar1 != 0) {
    iVar1 = *(int *)(iVar1 + 0xc);
    FUN_00026590();
  }
  FUN_0003a110();
  return;
}

