
int __regparm3 sqlite3VdbeFrameRestore(VdbeFrame *pFrame)

{
  Vdbe *p;
  sqlite3 *psVar1;
  undefined4 uVar2;
  
  p = pFrame->v;
  if (p->apCsr != (VdbeCursor **)0x0) {
    closeCursorsInFrame(p);
  }
  psVar1 = p->db;
  p->aOp = pFrame->aOp;
  p->nOp = pFrame->nOp;
  p->aMem = pFrame->aMem;
  p->nMem = pFrame->nMem;
  p->apCsr = pFrame->apCsr;
  p->nCursor = pFrame->nCursor;
  uVar2 = *(undefined4 *)((int)&pFrame->lastRowid + 4);
  *(int *)&psVar1->lastRowid = (int)pFrame->lastRowid;
  *(undefined4 *)((int)&psVar1->lastRowid + 4) = uVar2;
  p->nChange = pFrame->nChange;
  p->db->nChange = pFrame->nDbChange;
  sqlite3VdbeDeleteAuxData(p->db,&p->pAuxData,-1,0);
  p->pAuxData = pFrame->pAuxData;
  pFrame->pAuxData = (AuxData *)0x0;
  return pFrame->pc;
}



int __regparm3 FUN_000a81d0(int *param_1)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  
  piVar1 = (int *)*param_1;
  if (piVar1[0x17] != 0) {
    FUN_000a8180();
  }
  iVar2 = *piVar1;
  piVar1[0x19] = param_1[2];
  piVar1[0x1a] = param_1[0xd];
  piVar1[0x15] = param_1[4];
  piVar1[6] = param_1[0xe];
  piVar1[0x17] = param_1[5];
  piVar1[7] = param_1[0xb];
  iVar3 = param_1[9];
  *(int *)(iVar2 + 0x24) = param_1[8];
  *(int *)(iVar2 + 0x28) = iVar3;
  piVar1[0xb] = param_1[0x11];
  *(int *)(*piVar1 + 0x60) = param_1[0x12];
  FUN_000431a0(0);
  piVar1[0x34] = param_1[10];
  param_1[10] = 0;
  return param_1[0xc];
}


PUSH ESI
MOV ESI,EAX
PUSH EBX
SUB ESP,0x4
MOV EBX,dword ptr [EAX]
MOV EAX,dword ptr [EBX + 0x5c]
TEST EAX,EAX
JZ 0x000a81e7
MOV EAX,EBX
CALL 0x000a8180
MOV EAX,dword ptr [ESI + 0x8]
MOV ECX,dword ptr [EBX]
SUB ESP,0xc
MOV dword ptr [EBX + 0x64],EAX
MOV EAX,dword ptr [ESI + 0x34]
MOV dword ptr [EBX + 0x68],EAX
MOV EAX,dword ptr [ESI + 0x10]
MOV dword ptr [EBX + 0x54],EAX
MOV EAX,dword ptr [ESI + 0x38]
MOV dword ptr [EBX + 0x18],EAX
MOV EAX,dword ptr [ESI + 0x14]
MOV dword ptr [EBX + 0x5c],EAX
MOV EAX,dword ptr [ESI + 0x2c]
MOV dword ptr [EBX + 0x1c],EAX
MOV EAX,dword ptr [ESI + 0x20]
MOV EDX,dword ptr [ESI + 0x24]
MOV dword ptr [ECX + 0x24],EAX
MOV dword ptr [ECX + 0x28],EDX
MOV EAX,dword ptr [ESI + 0x44]
MOV ECX,0xffffffff
MOV dword ptr [EBX + 0x2c],EAX
MOV EAX,dword ptr [EBX]
MOV EDX,dword ptr [ESI + 0x48]
MOV dword ptr [EAX + 0x60],EDX
LEA EDX,[EBX + 0xd0]
PUSH 0x0
MOV EAX,dword ptr [EBX]
CALL 0x000431a0
MOV EAX,dword ptr [ESI + 0x28]
MOV dword ptr [EBX + 0xd0],EAX
MOV EAX,dword ptr [ESI + 0x30]
MOV dword ptr [ESI + 0x28],0x0
ADD ESP,0x14
POP EBX
POP ESI
RET
(translation_unit "int __regparm3 FUN_000a81d0(int *param_1)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  \n  piVar1 = (int *)*param_1;\n  if (piVar1[0x17] != 0) {\n    FUN_000a8180();\n  }\n  iVar2 = *piVar1;\n  piVar1[0x19] = param_1[2];\n  piVar1[0x1a] = param_1[0xd];\n  piVar1[0x15] = param_1[4];\n  piVar1[6] = param_1[0xe];\n  piVar1[0x17] = param_1[5];\n  piVar1[7] = param_1[0xb];\n  iVar3 = param_1[9];\n  *(int *)(iVar2 + 0x24) = param_1[8];\n  *(int *)(iVar2 + 0x28) = iVar3;\n  piVar1[0xb] = param_1[0x11];\n  *(int *)(*piVar1 + 0x60) = param_1[0x12];\n  FUN_000431a0(0);\n  piVar1[0x34] = param_1[10];\n  param_1[10] = 0;\n  return param_1[0xc];\n}\n\n" (function_definition "int __regparm3 FUN_000a81d0(int *param_1)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  \n  piVar1 = (int *)*param_1;\n  if (piVar1[0x17] != 0) {\n    FUN_000a8180();\n  }\n  iVar2 = *piVar1;\n  piVar1[0x19] = param_1[2];\n  piVar1[0x1a] = param_1[0xd];\n  piVar1[0x15] = param_1[4];\n  piVar1[6] = param_1[0xe];\n  piVar1[0x17] = param_1[5];\n  piVar1[7] = param_1[0xb];\n  iVar3 = param_1[9];\n  *(int *)(iVar2 + 0x24) = param_1[8];\n  *(int *)(iVar2 + 0x28) = iVar3;\n  piVar1[0xb] = param_1[0x11];\n  *(int *)(*piVar1 + 0x60) = param_1[0x12];\n  FUN_000431a0(0);\n  piVar1[0x34] = param_1[10];\n  param_1[10] = 0;\n  return param_1[0xc];\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000a81d0(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  \n  piVar1 = (int *)*param_1;\n  if (piVar1[0x17] != 0) {\n    FUN_000a8180();\n  }\n  iVar2 = *piVar1;\n  piVar1[0x19] = param_1[2];\n  piVar1[0x1a] = param_1[0xd];\n  piVar1[0x15] = param_1[4];\n  piVar1[6] = param_1[0xe];\n  piVar1[0x17] = param_1[5];\n  piVar1[7] = param_1[0xb];\n  iVar3 = param_1[9];\n  *(int *)(iVar2 + 0x24) = param_1[8];\n  *(int *)(iVar2 + 0x28) = iVar3;\n  piVar1[0xb] = param_1[0x11];\n  *(int *)(*piVar1 + 0x60) = param_1[0x12];\n  FUN_000431a0(0);\n  piVar1[0x34] = param_1[10];\n  param_1[10] = 0;\n  return param_1[0xc];\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "piVar1 = (int *)*param_1;" (assignment_expression "piVar1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (piVar1[0x17] != 0) {\n    FUN_000a8180();\n  }" if (parenthesized_expression "(piVar1[0x17] != 0)" ( (binary_expression "piVar1[0x17] != 0" (subscript_expression "piVar1[0x17]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_000a8180();\n  }" { (expression_statement "FUN_000a8180();" (call_expression "FUN_000a8180()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "piVar1[0x19] = param_1[2];" (assignment_expression "piVar1[0x19] = param_1[2]" (subscript_expression "piVar1[0x19]" identifier [ number_literal ]) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "piVar1[0x1a] = param_1[0xd];" (assignment_expression "piVar1[0x1a] = param_1[0xd]" (subscript_expression "piVar1[0x1a]" identifier [ number_literal ]) = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (expression_statement "piVar1[0x15] = param_1[4];" (assignment_expression "piVar1[0x15] = param_1[4]" (subscript_expression "piVar1[0x15]" identifier [ number_literal ]) = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "piVar1[6] = param_1[0xe];" (assignment_expression "piVar1[6] = param_1[0xe]" (subscript_expression "piVar1[6]" identifier [ number_literal ]) = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (expression_statement "piVar1[0x17] = param_1[5];" (assignment_expression "piVar1[0x17] = param_1[5]" (subscript_expression "piVar1[0x17]" identifier [ number_literal ]) = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "piVar1[7] = param_1[0xb];" (assignment_expression "piVar1[7] = param_1[0xb]" (subscript_expression "piVar1[7]" identifier [ number_literal ]) = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = param_1[9];" (assignment_expression "iVar3 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar2 + 0x24) = param_1[8];" (assignment_expression "*(int *)(iVar2 + 0x24) = param_1[8]" (pointer_expression "*(int *)(iVar2 + 0x24)" * (cast_expression "(int *)(iVar2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar2 + 0x28) = iVar3;" (assignment_expression "*(int *)(iVar2 + 0x28) = iVar3" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar1[0xb] = param_1[0x11];" (assignment_expression "piVar1[0xb] = param_1[0x11]" (subscript_expression "piVar1[0xb]" identifier [ number_literal ]) = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(*piVar1 + 0x60) = param_1[0x12];" (assignment_expression "*(int *)(*piVar1 + 0x60) = param_1[0x12]" (pointer_expression "*(int *)(*piVar1 + 0x60)" * (cast_expression "(int *)(*piVar1 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 0x60)" ( (binary_expression "*piVar1 + 0x60" (pointer_expression "*piVar1" * identifier) + number_literal) )))) = (subscript_expression "param_1[0x12]" identifier [ number_literal ])) ;) (expression_statement "FUN_000431a0(0);" (call_expression "FUN_000431a0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "piVar1[0x34] = param_1[10];" (assignment_expression "piVar1[0x34] = param_1[10]" (subscript_expression "piVar1[0x34]" identifier [ number_literal ]) = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return param_1[0xc];" return (subscript_expression "param_1[0xc]" identifier [ number_literal ]) ;) })))
(translation_unit "int __regparm3 sqlite3VdbeFrameRestore(VdbeFrame *pFrame)\n\n{\n  Vdbe *p;\n  sqlite3 *psVar1;\n  undefined4 uVar2;\n  \n  p = pFrame->v;\n  if (p->apCsr != (VdbeCursor **)0x0) {\n    closeCursorsInFrame(p);\n  }\n  psVar1 = p->db;\n  p->aOp = pFrame->aOp;\n  p->nOp = pFrame->nOp;\n  p->aMem = pFrame->aMem;\n  p->nMem = pFrame->nMem;\n  p->apCsr = pFrame->apCsr;\n  p->nCursor = pFrame->nCursor;\n  uVar2 = *(undefined4 *)((int)&pFrame->lastRowid + 4);\n  *(int *)&psVar1->lastRowid = (int)pFrame->lastRowid;\n  *(undefined4 *)((int)&psVar1->lastRowid + 4) = uVar2;\n  p->nChange = pFrame->nChange;\n  p->db->nChange = pFrame->nDbChange;\n  sqlite3VdbeDeleteAuxData(p->db,&p->pAuxData,-1,0);\n  p->pAuxData = pFrame->pAuxData;\n  pFrame->pAuxData = (AuxData *)0x0;\n  return pFrame->pc;\n}\n\n" (function_definition "int __regparm3 sqlite3VdbeFrameRestore(VdbeFrame *pFrame)\n\n{\n  Vdbe *p;\n  sqlite3 *psVar1;\n  undefined4 uVar2;\n  \n  p = pFrame->v;\n  if (p->apCsr != (VdbeCursor **)0x0) {\n    closeCursorsInFrame(p);\n  }\n  psVar1 = p->db;\n  p->aOp = pFrame->aOp;\n  p->nOp = pFrame->nOp;\n  p->aMem = pFrame->aMem;\n  p->nMem = pFrame->nMem;\n  p->apCsr = pFrame->apCsr;\n  p->nCursor = pFrame->nCursor;\n  uVar2 = *(undefined4 *)((int)&pFrame->lastRowid + 4);\n  *(int *)&psVar1->lastRowid = (int)pFrame->lastRowid;\n  *(undefined4 *)((int)&psVar1->lastRowid + 4) = uVar2;\n  p->nChange = pFrame->nChange;\n  p->db->nChange = pFrame->nDbChange;\n  sqlite3VdbeDeleteAuxData(p->db,&p->pAuxData,-1,0);\n  p->pAuxData = pFrame->pAuxData;\n  pFrame->pAuxData = (AuxData *)0x0;\n  return pFrame->pc;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "sqlite3VdbeFrameRestore(VdbeFrame *pFrame)" identifier (parameter_list "(VdbeFrame *pFrame)" ( (parameter_declaration "VdbeFrame *pFrame" type_identifier (pointer_declarator "*pFrame" * identifier)) ))) (compound_statement "{\n  Vdbe *p;\n  sqlite3 *psVar1;\n  undefined4 uVar2;\n  \n  p = pFrame->v;\n  if (p->apCsr != (VdbeCursor **)0x0) {\n    closeCursorsInFrame(p);\n  }\n  psVar1 = p->db;\n  p->aOp = pFrame->aOp;\n  p->nOp = pFrame->nOp;\n  p->aMem = pFrame->aMem;\n  p->nMem = pFrame->nMem;\n  p->apCsr = pFrame->apCsr;\n  p->nCursor = pFrame->nCursor;\n  uVar2 = *(undefined4 *)((int)&pFrame->lastRowid + 4);\n  *(int *)&psVar1->lastRowid = (int)pFrame->lastRowid;\n  *(undefined4 *)((int)&psVar1->lastRowid + 4) = uVar2;\n  p->nChange = pFrame->nChange;\n  p->db->nChange = pFrame->nDbChange;\n  sqlite3VdbeDeleteAuxData(p->db,&p->pAuxData,-1,0);\n  p->pAuxData = pFrame->pAuxData;\n  pFrame->pAuxData = (AuxData *)0x0;\n  return pFrame->pc;\n}" { (declaration "Vdbe *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "sqlite3 *psVar1;" type_identifier (pointer_declarator "*psVar1" * identifier) ;) (declaration "undefined4 uVar2;" type_identifier identifier ;) (expression_statement "p = pFrame->v;" (assignment_expression "p = pFrame->v" identifier = (field_expression "pFrame->v" identifier -> field_identifier)) ;) (if_statement "if (p->apCsr != (VdbeCursor **)0x0) {\n    closeCursorsInFrame(p);\n  }" if (parenthesized_expression "(p->apCsr != (VdbeCursor **)0x0)" ( (binary_expression "p->apCsr != (VdbeCursor **)0x0" (field_expression "p->apCsr" identifier -> field_identifier) != (cast_expression "(VdbeCursor **)0x0" ( (type_descriptor "VdbeCursor **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    closeCursorsInFrame(p);\n  }" { (expression_statement "closeCursorsInFrame(p);" (call_expression "closeCursorsInFrame(p)" identifier (argument_list "(p)" ( identifier ))) ;) })) (expression_statement "psVar1 = p->db;" (assignment_expression "psVar1 = p->db" identifier = (field_expression "p->db" identifier -> field_identifier)) ;) (expression_statement "p->aOp = pFrame->aOp;" (assignment_expression "p->aOp = pFrame->aOp" (field_expression "p->aOp" identifier -> field_identifier) = (field_expression "pFrame->aOp" identifier -> field_identifier)) ;) (expression_statement "p->nOp = pFrame->nOp;" (assignment_expression "p->nOp = pFrame->nOp" (field_expression "p->nOp" identifier -> field_identifier) = (field_expression "pFrame->nOp" identifier -> field_identifier)) ;) (expression_statement "p->aMem = pFrame->aMem;" (assignment_expression "p->aMem = pFrame->aMem" (field_expression "p->aMem" identifier -> field_identifier) = (field_expression "pFrame->aMem" identifier -> field_identifier)) ;) (expression_statement "p->nMem = pFrame->nMem;" (assignment_expression "p->nMem = pFrame->nMem" (field_expression "p->nMem" identifier -> field_identifier) = (field_expression "pFrame->nMem" identifier -> field_identifier)) ;) (expression_statement "p->apCsr = pFrame->apCsr;" (assignment_expression "p->apCsr = pFrame->apCsr" (field_expression "p->apCsr" identifier -> field_identifier) = (field_expression "pFrame->apCsr" identifier -> field_identifier)) ;) (expression_statement "p->nCursor = pFrame->nCursor;" (assignment_expression "p->nCursor = pFrame->nCursor" (field_expression "p->nCursor" identifier -> field_identifier) = (field_expression "pFrame->nCursor" identifier -> field_identifier)) ;) (expression_statement "uVar2 = *(undefined4 *)((int)&pFrame->lastRowid + 4);" (assignment_expression "uVar2 = *(undefined4 *)((int)&pFrame->lastRowid + 4)" identifier = (pointer_expression "*(undefined4 *)((int)&pFrame->lastRowid + 4)" * (cast_expression "(undefined4 *)((int)&pFrame->lastRowid + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pFrame->lastRowid + 4)" ( (binary_expression "(int)&pFrame->lastRowid + 4" (cast_expression "(int)&pFrame->lastRowid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pFrame->lastRowid" & (field_expression "pFrame->lastRowid" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(int *)&psVar1->lastRowid = (int)pFrame->lastRowid;" (assignment_expression "*(int *)&psVar1->lastRowid = (int)pFrame->lastRowid" (pointer_expression "*(int *)&psVar1->lastRowid" * (cast_expression "(int *)&psVar1->lastRowid" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar1->lastRowid" & (field_expression "psVar1->lastRowid" identifier -> field_identifier)))) = (cast_expression "(int)pFrame->lastRowid" ( (type_descriptor "int" primitive_type) ) (field_expression "pFrame->lastRowid" identifier -> field_identifier))) ;) (expression_statement "*(undefined4 *)((int)&psVar1->lastRowid + 4) = uVar2;" (assignment_expression "*(undefined4 *)((int)&psVar1->lastRowid + 4) = uVar2" (pointer_expression "*(undefined4 *)((int)&psVar1->lastRowid + 4)" * (cast_expression "(undefined4 *)((int)&psVar1->lastRowid + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&psVar1->lastRowid + 4)" ( (binary_expression "(int)&psVar1->lastRowid + 4" (cast_expression "(int)&psVar1->lastRowid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&psVar1->lastRowid" & (field_expression "psVar1->lastRowid" identifier -> field_identifier))) + number_literal) )))) = identifier) ;) (expression_statement "p->nChange = pFrame->nChange;" (assignment_expression "p->nChange = pFrame->nChange" (field_expression "p->nChange" identifier -> field_identifier) = (field_expression "pFrame->nChange" identifier -> field_identifier)) ;) (expression_statement "p->db->nChange = pFrame->nDbChange;" (assignment_expression "p->db->nChange = pFrame->nDbChange" (field_expression "p->db->nChange" (field_expression "p->db" identifier -> field_identifier) -> field_identifier) = (field_expression "pFrame->nDbChange" identifier -> field_identifier)) ;) (expression_statement "sqlite3VdbeDeleteAuxData(p->db,&p->pAuxData,-1,0);" (call_expression "sqlite3VdbeDeleteAuxData(p->db,&p->pAuxData,-1,0)" identifier (argument_list "(p->db,&p->pAuxData,-1,0)" ( (field_expression "p->db" identifier -> field_identifier) , (pointer_expression "&p->pAuxData" & (field_expression "p->pAuxData" identifier -> field_identifier)) , number_literal , number_literal ))) ;) (expression_statement "p->pAuxData = pFrame->pAuxData;" (assignment_expression "p->pAuxData = pFrame->pAuxData" (field_expression "p->pAuxData" identifier -> field_identifier) = (field_expression "pFrame->pAuxData" identifier -> field_identifier)) ;) (expression_statement "pFrame->pAuxData = (AuxData *)0x0;" (assignment_expression "pFrame->pAuxData = (AuxData *)0x0" (field_expression "pFrame->pAuxData" identifier -> field_identifier) = (cast_expression "(AuxData *)0x0" ( (type_descriptor "AuxData *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (return_statement "return pFrame->pc;" return (field_expression "pFrame->pc" identifier -> field_identifier) ;) })))
(translation_unit "int __regparm3 FUN_000a81d0(int *param_1)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  \n  piVar1 = (int *)*param_1;\n  if (piVar1[0x17] != 0) {\n    FUN_000a8180();\n  }\n  iVar2 = *piVar1;\n  piVar1[0x19] = param_1[2];\n  piVar1[0x1a] = param_1[0xd];\n  piVar1[0x15] = param_1[4];\n  piVar1[6] = param_1[0xe];\n  piVar1[0x17] = param_1[5];\n  piVar1[7] = param_1[0xb];\n  iVar3 = param_1[9];\n  *(int *)(iVar2 + 0x24) = param_1[8];\n  *(int *)(iVar2 + 0x28) = iVar3;\n  piVar1[0xb] = param_1[0x11];\n  *(int *)(*piVar1 + 0x60) = param_1[0x12];\n  FUN_000431a0(0);\n  piVar1[0x34] = param_1[10];\n  param_1[10] = 0;\n  return param_1[0xc];\n}\n\n" (function_definition "int __regparm3 FUN_000a81d0(int *param_1)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  \n  piVar1 = (int *)*param_1;\n  if (piVar1[0x17] != 0) {\n    FUN_000a8180();\n  }\n  iVar2 = *piVar1;\n  piVar1[0x19] = param_1[2];\n  piVar1[0x1a] = param_1[0xd];\n  piVar1[0x15] = param_1[4];\n  piVar1[6] = param_1[0xe];\n  piVar1[0x17] = param_1[5];\n  piVar1[7] = param_1[0xb];\n  iVar3 = param_1[9];\n  *(int *)(iVar2 + 0x24) = param_1[8];\n  *(int *)(iVar2 + 0x28) = iVar3;\n  piVar1[0xb] = param_1[0x11];\n  *(int *)(*piVar1 + 0x60) = param_1[0x12];\n  FUN_000431a0(0);\n  piVar1[0x34] = param_1[10];\n  param_1[10] = 0;\n  return param_1[0xc];\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000a81d0(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  \n  piVar1 = (int *)*param_1;\n  if (piVar1[0x17] != 0) {\n    FUN_000a8180();\n  }\n  iVar2 = *piVar1;\n  piVar1[0x19] = param_1[2];\n  piVar1[0x1a] = param_1[0xd];\n  piVar1[0x15] = param_1[4];\n  piVar1[6] = param_1[0xe];\n  piVar1[0x17] = param_1[5];\n  piVar1[7] = param_1[0xb];\n  iVar3 = param_1[9];\n  *(int *)(iVar2 + 0x24) = param_1[8];\n  *(int *)(iVar2 + 0x28) = iVar3;\n  piVar1[0xb] = param_1[0x11];\n  *(int *)(*piVar1 + 0x60) = param_1[0x12];\n  FUN_000431a0(0);\n  piVar1[0x34] = param_1[10];\n  param_1[10] = 0;\n  return param_1[0xc];\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "piVar1 = (int *)*param_1;" (assignment_expression "piVar1 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (if_statement "if (piVar1[0x17] != 0) {\n    FUN_000a8180();\n  }" if (parenthesized_expression "(piVar1[0x17] != 0)" ( (binary_expression "piVar1[0x17] != 0" (subscript_expression "piVar1[0x17]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    FUN_000a8180();\n  }" { (expression_statement "FUN_000a8180();" (call_expression "FUN_000a8180()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" identifier = (pointer_expression "*piVar1" * identifier)) ;) (expression_statement "piVar1[0x19] = param_1[2];" (assignment_expression "piVar1[0x19] = param_1[2]" (subscript_expression "piVar1[0x19]" identifier [ number_literal ]) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "piVar1[0x1a] = param_1[0xd];" (assignment_expression "piVar1[0x1a] = param_1[0xd]" (subscript_expression "piVar1[0x1a]" identifier [ number_literal ]) = (subscript_expression "param_1[0xd]" identifier [ number_literal ])) ;) (expression_statement "piVar1[0x15] = param_1[4];" (assignment_expression "piVar1[0x15] = param_1[4]" (subscript_expression "piVar1[0x15]" identifier [ number_literal ]) = (subscript_expression "param_1[4]" identifier [ number_literal ])) ;) (expression_statement "piVar1[6] = param_1[0xe];" (assignment_expression "piVar1[6] = param_1[0xe]" (subscript_expression "piVar1[6]" identifier [ number_literal ]) = (subscript_expression "param_1[0xe]" identifier [ number_literal ])) ;) (expression_statement "piVar1[0x17] = param_1[5];" (assignment_expression "piVar1[0x17] = param_1[5]" (subscript_expression "piVar1[0x17]" identifier [ number_literal ]) = (subscript_expression "param_1[5]" identifier [ number_literal ])) ;) (expression_statement "piVar1[7] = param_1[0xb];" (assignment_expression "piVar1[7] = param_1[0xb]" (subscript_expression "piVar1[7]" identifier [ number_literal ]) = (subscript_expression "param_1[0xb]" identifier [ number_literal ])) ;) (expression_statement "iVar3 = param_1[9];" (assignment_expression "iVar3 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar2 + 0x24) = param_1[8];" (assignment_expression "*(int *)(iVar2 + 0x24) = param_1[8]" (pointer_expression "*(int *)(iVar2 + 0x24)" * (cast_expression "(int *)(iVar2 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x24)" ( (binary_expression "iVar2 + 0x24" identifier + number_literal) )))) = (subscript_expression "param_1[8]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(iVar2 + 0x28) = iVar3;" (assignment_expression "*(int *)(iVar2 + 0x28) = iVar3" (pointer_expression "*(int *)(iVar2 + 0x28)" * (cast_expression "(int *)(iVar2 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0x28)" ( (binary_expression "iVar2 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar1[0xb] = param_1[0x11];" (assignment_expression "piVar1[0xb] = param_1[0x11]" (subscript_expression "piVar1[0xb]" identifier [ number_literal ]) = (subscript_expression "param_1[0x11]" identifier [ number_literal ])) ;) (expression_statement "*(int *)(*piVar1 + 0x60) = param_1[0x12];" (assignment_expression "*(int *)(*piVar1 + 0x60) = param_1[0x12]" (pointer_expression "*(int *)(*piVar1 + 0x60)" * (cast_expression "(int *)(*piVar1 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*piVar1 + 0x60)" ( (binary_expression "*piVar1 + 0x60" (pointer_expression "*piVar1" * identifier) + number_literal) )))) = (subscript_expression "param_1[0x12]" identifier [ number_literal ])) ;) (expression_statement "FUN_000431a0(0);" (call_expression "FUN_000431a0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) (expression_statement "piVar1[0x34] = param_1[10];" (assignment_expression "piVar1[0x34] = param_1[10]" (subscript_expression "piVar1[0x34]" identifier [ number_literal ]) = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (return_statement "return param_1[0xc];" return (subscript_expression "param_1[0xc]" identifier [ number_literal ]) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (return_statement return (subscript_expression IDENT [ LIT ]) ;) })))
(function_definition "int __regparm3 FUN_000a81d0(int *param_1)\n\n{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  \n  piVar1 = (int *)*param_1;\n  if (piVar1[0x17] != 0) {\n    FUN_000a8180();\n  }\n  iVar2 = *piVar1;\n  piVar1[0x19] = param_1[2];\n  piVar1[0x1a] = param_1[0xd];\n  piVar1[0x15] = param_1[4];\n  piVar1[6] = param_1[0xe];\n  piVar1[0x17] = param_1[5];\n  piVar1[7] = param_1[0xb];\n  iVar3 = param_1[9];\n  *(int *)(iVar2 + 0x24) = param_1[8];\n  *(int *)(iVar2 + 0x28) = iVar3;\n  piVar1[0xb] = param_1[0x11];\n  *(int *)(*piVar1 + 0x60) = param_1[0x12];\n  FUN_000431a0(0);\n  piVar1[0x34] = param_1[10];\n  param_1[10] = 0;\n  return param_1[0xc];\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000a81d0(int *param_1)" (identifier "FUN_000a81d0") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  int iVar2;\n  int iVar3;\n  \n  piVar1 = (int *)*param_1;\n  if (piVar1[0x17] != 0) {\n    FUN_000a8180();\n  }\n  iVar2 = *piVar1;\n  piVar1[0x19] = param_1[2];\n  piVar1[0x1a] = param_1[0xd];\n  piVar1[0x15] = param_1[4];\n  piVar1[6] = param_1[0xe];\n  piVar1[0x17] = param_1[5];\n  piVar1[7] = param_1[0xb];\n  iVar3 = param_1[9];\n  *(int *)(iVar2 + 0x24) = param_1[8];\n  *(int *)(iVar2 + 0x28) = iVar3;\n  piVar1[0xb] = param_1[0x11];\n  *(int *)(*piVar1 + 0x60) = param_1[0x12];\n  FUN_000431a0(0);\n  piVar1[0x34] = param_1[10];\n  param_1[10] = 0;\n  return param_1[0xc];\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "piVar1 = (int *)*param_1;" (assignment_expression "piVar1 = (int *)*param_1" (identifier "piVar1") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (if_statement "if (piVar1[0x17] != 0) {\n    FUN_000a8180();\n  }" (if "if") (parenthesized_expression "(piVar1[0x17] != 0)" (( "(") (binary_expression "piVar1[0x17] != 0" (subscript_expression "piVar1[0x17]" (identifier "piVar1") ([ "[") (number_literal "0x17") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_000a8180();\n  }" ({ "{") (expression_statement "FUN_000a8180();" (call_expression "FUN_000a8180()" (identifier "FUN_000a8180") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar2 = *piVar1;" (assignment_expression "iVar2 = *piVar1" (identifier "iVar2") (= "=") (pointer_expression "*piVar1" (* "*") (identifier "piVar1"))) (; ";")) (expression_statement "piVar1[0x19] = param_1[2];" (assignment_expression "piVar1[0x19] = param_1[2]" (subscript_expression "piVar1[0x19]" (identifier "piVar1") ([ "[") (number_literal "0x19") (] "]")) (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "piVar1[0x1a] = param_1[0xd];" (assignment_expression "piVar1[0x1a] = param_1[0xd]" (subscript_expression "piVar1[0x1a]" (identifier "piVar1") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (subscript_expression "param_1[0xd]" (identifier "param_1") ([ "[") (number_literal "0xd") (] "]"))) (; ";")) (expression_statement "piVar1[0x15] = param_1[4];" (assignment_expression "piVar1[0x15] = param_1[4]" (subscript_expression "piVar1[0x15]" (identifier "piVar1") ([ "[") (number_literal "0x15") (] "]")) (= "=") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "piVar1[6] = param_1[0xe];" (assignment_expression "piVar1[6] = param_1[0xe]" (subscript_expression "piVar1[6]" (identifier "piVar1") ([ "[") (number_literal "6") (] "]")) (= "=") (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]"))) (; ";")) (expression_statement "piVar1[0x17] = param_1[5];" (assignment_expression "piVar1[0x17] = param_1[5]" (subscript_expression "piVar1[0x17]" (identifier "piVar1") ([ "[") (number_literal "0x17") (] "]")) (= "=") (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]"))) (; ";")) (expression_statement "piVar1[7] = param_1[0xb];" (assignment_expression "piVar1[7] = param_1[0xb]" (subscript_expression "piVar1[7]" (identifier "piVar1") ([ "[") (number_literal "7") (] "]")) (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (expression_statement "iVar3 = param_1[9];" (assignment_expression "iVar3 = param_1[9]" (identifier "iVar3") (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "*(int *)(iVar2 + 0x24) = param_1[8];" (assignment_expression "*(int *)(iVar2 + 0x24) = param_1[8]" (pointer_expression "*(int *)(iVar2 + 0x24)" (* "*") (cast_expression "(int *)(iVar2 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x24)" (( "(") (binary_expression "iVar2 + 0x24" (identifier "iVar2") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]"))) (; ";")) (expression_statement "*(int *)(iVar2 + 0x28) = iVar3;" (assignment_expression "*(int *)(iVar2 + 0x28) = iVar3" (pointer_expression "*(int *)(iVar2 + 0x28)" (* "*") (cast_expression "(int *)(iVar2 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 0x28)" (( "(") (binary_expression "iVar2 + 0x28" (identifier "iVar2") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "piVar1[0xb] = param_1[0x11];" (assignment_expression "piVar1[0xb] = param_1[0x11]" (subscript_expression "piVar1[0xb]" (identifier "piVar1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]"))) (; ";")) (expression_statement "*(int *)(*piVar1 + 0x60) = param_1[0x12];" (assignment_expression "*(int *)(*piVar1 + 0x60) = param_1[0x12]" (pointer_expression "*(int *)(*piVar1 + 0x60)" (* "*") (cast_expression "(int *)(*piVar1 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*piVar1 + 0x60)" (( "(") (binary_expression "*piVar1 + 0x60" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (+ "+") (number_literal "0x60")) () ")")))) (= "=") (subscript_expression "param_1[0x12]" (identifier "param_1") ([ "[") (number_literal "0x12") (] "]"))) (; ";")) (expression_statement "FUN_000431a0(0);" (call_expression "FUN_000431a0(0)" (identifier "FUN_000431a0") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar1[0x34] = param_1[10];" (assignment_expression "piVar1[0x34] = param_1[10]" (subscript_expression "piVar1[0x34]" (identifier "piVar1") ([ "[") (number_literal "0x34") (] "]")) (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (return_statement "return param_1[0xc];" (return "return") (subscript_expression "param_1[0xc]" (identifier "param_1") ([ "[") (number_literal "0xc") (] "]")) (; ";")) (} "}")))

int __regparm3 function_1(type_1 *pFrame)

{
  type_2 *p;
  type_3 *psVar1;
  type_4 uVar2;
  
  p = pFrame->v;
  if (p->apCsr != (type_5 **)0x0) {
    var_1(p);
  }
  psVar1 = p->db;
  p->aOp = pFrame->aOp;
  p->nOp = pFrame->nOp;
  p->aMem = pFrame->aMem;
  p->nMem = pFrame->nMem;
  p->apCsr = pFrame->apCsr;
  p->nCursor = pFrame->nCursor;
  uVar2 = *(type_4 *)((int)&pFrame->lastRowid + 4);
  *(int *)&psVar1->lastRowid = (int)pFrame->lastRowid;
  *(type_4 *)((int)&psVar1->lastRowid + 4) = uVar2;
  p->nChange = pFrame->nChange;
  p->db->nChange = pFrame->nDbChange;
  var_2(p->db,&p->pAuxData,-1,0);
  p->pAuxData = pFrame->pAuxData;
  pFrame->pAuxData = (type_6 *)0x0;
  return pFrame->pc;
}


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

int __regparm3 MASKED(int *param_1)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  
  piVar1 = (int *)*param_1;
  if (piVar1[0x17] != 0) {
    FUN_000a8180();
  }
  iVar2 = *piVar1;
  piVar1[0x19] = param_1[2];
  piVar1[0x1a] = param_1[0xd];
  piVar1[0x15] = param_1[4];
  piVar1[6] = param_1[0xe];
  piVar1[0x17] = param_1[5];
  piVar1[7] = param_1[0xb];
  iVar3 = param_1[9];
  *(int *)(iVar2 + 0x24) = param_1[8];
  *(int *)(iVar2 + 0x28) = iVar3;
  piVar1[0xb] = param_1[0x11];
  *(int *)(*piVar1 + 0x60) = param_1[0x12];
  FUN_000431a0(0);
  piVar1[0x34] = param_1[10];
  param_1[10] = 0;
  return param_1[0xc];
}

