
void __regparm3 walIndexWriteHdr(Wal *pWal)

{
  u32 *puVar1;
  Wal *pWal_1;
  u32 *puVar2;
  u32 *puVar3;
  u32 uVar4;
  u32 uVar5;
  
  puVar1 = *pWal->apWiData;
  (pWal->hdr).isInit = '\x01';
  uVar5 = (pWal->hdr).unused + 0x2de218;
  (pWal->hdr).iVersion = 0x2de218;
  uVar4 = 0x2de218;
  puVar2 = &(pWal->hdr).iChange;
  do {
    puVar3 = puVar2 + 2;
    uVar4 = uVar4 + *puVar2 + uVar5;
    uVar5 = uVar5 + puVar2[1] + uVar4;
    puVar2 = puVar3;
  } while (puVar3 != (pWal->hdr).aCksum);
  (pWal->hdr).aCksum[1] = uVar5;
  (pWal->hdr).aCksum[0] = uVar4;
  puVar1[0xc] = (pWal->hdr).iVersion;
  puVar1[0xd] = (pWal->hdr).unused;
  puVar1[0xe] = (pWal->hdr).iChange;
  puVar1[0xf] = *(u32 *)&(pWal->hdr).isInit;
  puVar1[0x10] = (pWal->hdr).mxFrame;
  puVar1[0x11] = (pWal->hdr).nPage;
  puVar1[0x12] = (pWal->hdr).aFrameCksum[0];
  puVar1[0x13] = (pWal->hdr).aFrameCksum[1];
  puVar1[0x14] = (pWal->hdr).aSalt[0];
  puVar1[0x15] = (pWal->hdr).aSalt[1];
  puVar1[0x16] = (pWal->hdr).aCksum[0];
  pWal_1 = (Wal *)(pWal->hdr).aCksum[1];
  puVar1[0x17] = (u32)pWal_1;
  if (pWal->exclusiveMode != '\x02') {
    walShmBarrier((Wal *)pWal->pDbFd,pWal_1);
  }
  *puVar1 = (pWal->hdr).iVersion;
  puVar1[1] = (pWal->hdr).unused;
  puVar1[2] = (pWal->hdr).iChange;
  puVar1[3] = *(u32 *)&(pWal->hdr).isInit;
  puVar1[4] = (pWal->hdr).mxFrame;
  puVar1[5] = (pWal->hdr).nPage;
  puVar1[6] = (pWal->hdr).aFrameCksum[0];
  puVar1[7] = (pWal->hdr).aFrameCksum[1];
  puVar1[8] = (pWal->hdr).aSalt[0];
  puVar1[9] = (pWal->hdr).aSalt[1];
  puVar1[10] = (pWal->hdr).aCksum[0];
  puVar1[0xb] = (pWal->hdr).aCksum[1];
  return;
}



void __regparm3 FUN_0002a9f0(int param_1)

{
  undefined4 *puVar1;
  int *piVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  
  puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);
  *(undefined1 *)(param_1 + 0x40) = 1;
  iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;
  *(undefined4 *)(param_1 + 0x34) = 0x2de218;
  iVar4 = 0x2de218;
  piVar2 = (int *)(param_1 + 0x3c);
  do {
    piVar3 = piVar2 + 2;
    iVar4 = iVar4 + *piVar2 + iVar5;
    iVar5 = iVar5 + piVar2[1] + iVar4;
    piVar2 = piVar3;
  } while (piVar3 != (int *)(param_1 + 0x5c));
  *(int *)(param_1 + 0x60) = iVar5;
  *(int *)(param_1 + 0x5c) = iVar4;
  puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);
  puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);
  puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);
  puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);
  puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);
  puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);
  puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);
  puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);
  puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);
  puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);
  puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);
  puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);
  if (*(char *)(param_1 + 0x2b) != '\x02') {
    FUN_0002a9e0();
  }
  *puVar1 = *(undefined4 *)(param_1 + 0x34);
  puVar1[1] = *(undefined4 *)(param_1 + 0x38);
  puVar1[2] = *(undefined4 *)(param_1 + 0x3c);
  puVar1[3] = *(undefined4 *)(param_1 + 0x40);
  puVar1[4] = *(undefined4 *)(param_1 + 0x44);
  puVar1[5] = *(undefined4 *)(param_1 + 0x48);
  puVar1[6] = *(undefined4 *)(param_1 + 0x4c);
  puVar1[7] = *(undefined4 *)(param_1 + 0x50);
  puVar1[8] = *(undefined4 *)(param_1 + 0x54);
  puVar1[9] = *(undefined4 *)(param_1 + 0x58);
  puVar1[10] = *(undefined4 *)(param_1 + 0x5c);
  puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);
  return;
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
LEA EBP,[EDI + 0x5c]
PUSH EBX
LEA EBX,[EDI + 0x34]
SUB ESP,0x1c
MOV EAX,dword ptr [EAX + 0x20]
MOV ECX,dword ptr [EDI + 0x38]
MOV dword ptr [ESP + 0xc],EBX
MOV ESI,dword ptr [EAX]
MOV byte ptr [EDI + 0x40],0x1
LEA EDX,[ECX + 0x2de218]
LEA EAX,[EDI + 0x3c]
MOV dword ptr [EDI + 0x34],0x2de218
MOV ECX,0x2de218
LEA ESI,[ESI]
MOV EBX,dword ptr [EAX]
ADD EAX,0x8
ADD EBX,EDX
ADD ECX,EBX
MOV EBX,dword ptr [EAX + -0x4]
ADD EBX,ECX
ADD EDX,EBX
CMP EAX,EBP
JNZ 0x0002aa28
MOV dword ptr [EDI + 0x60],EDX
MOV EBX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [EDI + 0x34]
MOV dword ptr [EDI + 0x5c],ECX
MOV dword ptr [ESI + 0x30],EDX
MOV EDX,dword ptr [EBX + 0x4]
MOV dword ptr [ESI + 0x34],EDX
MOV EDX,dword ptr [EBX + 0x8]
MOV dword ptr [ESI + 0x38],EDX
MOV EDX,dword ptr [EBX + 0xc]
MOV dword ptr [ESI + 0x3c],EDX
MOV EDX,dword ptr [EBX + 0x10]
MOV dword ptr [ESI + 0x40],EDX
MOV EDX,dword ptr [EBX + 0x14]
MOV dword ptr [ESI + 0x44],EDX
MOV EDX,dword ptr [EBX + 0x18]
MOV dword ptr [ESI + 0x48],EDX
MOV EDX,dword ptr [EBX + 0x1c]
MOV dword ptr [ESI + 0x4c],EDX
MOV EDX,dword ptr [EBX + 0x20]
MOV dword ptr [ESI + 0x50],EDX
MOV EDX,dword ptr [EBX + 0x24]
MOV dword ptr [ESI + 0x54],EDX
MOV EDX,dword ptr [EBX + 0x28]
MOV dword ptr [ESI + 0x58],EDX
MOV EDX,dword ptr [EBX + 0x2c]
MOV dword ptr [ESI + 0x5c],EDX
CMP byte ptr [EDI + 0x2b],0x2
JZ 0x0002aa9c
MOV EAX,dword ptr [EDI + 0x4]
CALL 0x0002a9e0
MOV EAX,dword ptr [EDI + 0x34]
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [EBX + 0x4]
MOV dword ptr [ESI + 0x4],EAX
MOV EAX,dword ptr [EBX + 0x8]
MOV dword ptr [ESI + 0x8],EAX
MOV EAX,dword ptr [EBX + 0xc]
MOV dword ptr [ESI + 0xc],EAX
MOV EAX,dword ptr [EBX + 0x10]
MOV dword ptr [ESI + 0x10],EAX
MOV EAX,dword ptr [EBX + 0x14]
MOV dword ptr [ESI + 0x14],EAX
MOV EAX,dword ptr [EBX + 0x18]
MOV dword ptr [ESI + 0x18],EAX
MOV EAX,dword ptr [EBX + 0x1c]
MOV dword ptr [ESI + 0x1c],EAX
MOV EAX,dword ptr [EBX + 0x20]
MOV dword ptr [ESI + 0x20],EAX
MOV EAX,dword ptr [EBX + 0x24]
MOV dword ptr [ESI + 0x24],EAX
MOV EAX,dword ptr [EBX + 0x28]
MOV dword ptr [ESI + 0x28],EAX
MOV EAX,dword ptr [EBX + 0x2c]
MOV dword ptr [ESI + 0x2c],EAX
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "void __regparm3 FUN_0002a9f0(int param_1)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  \n  puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);\n  *(undefined1 *)(param_1 + 0x40) = 1;\n  iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;\n  *(undefined4 *)(param_1 + 0x34) = 0x2de218;\n  iVar4 = 0x2de218;\n  piVar2 = (int *)(param_1 + 0x3c);\n  do {\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  } while (piVar3 != (int *)(param_1 + 0x5c));\n  *(int *)(param_1 + 0x60) = iVar5;\n  *(int *)(param_1 + 0x5c) = iVar4;\n  puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);\n  puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);\n  if (*(char *)(param_1 + 0x2b) != '\x02') {\n    FUN_0002a9e0();\n  }\n  *puVar1 = *(undefined4 *)(param_1 + 0x34);\n  puVar1[1] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[2] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[3] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[4] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[5] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[6] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[7] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[8] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[9] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[10] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0002a9f0(int param_1)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  \n  puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);\n  *(undefined1 *)(param_1 + 0x40) = 1;\n  iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;\n  *(undefined4 *)(param_1 + 0x34) = 0x2de218;\n  iVar4 = 0x2de218;\n  piVar2 = (int *)(param_1 + 0x3c);\n  do {\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  } while (piVar3 != (int *)(param_1 + 0x5c));\n  *(int *)(param_1 + 0x60) = iVar5;\n  *(int *)(param_1 + 0x5c) = iVar4;\n  puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);\n  puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);\n  if (*(char *)(param_1 + 0x2b) != '\x02') {\n    FUN_0002a9e0();\n  }\n  *puVar1 = *(undefined4 *)(param_1 + 0x34);\n  puVar1[1] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[2] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[3] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[4] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[5] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[6] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[7] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[8] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[9] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[10] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0002a9f0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  \n  puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);\n  *(undefined1 *)(param_1 + 0x40) = 1;\n  iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;\n  *(undefined4 *)(param_1 + 0x34) = 0x2de218;\n  iVar4 = 0x2de218;\n  piVar2 = (int *)(param_1 + 0x3c);\n  do {\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  } while (piVar3 != (int *)(param_1 + 0x5c));\n  *(int *)(param_1 + 0x60) = iVar5;\n  *(int *)(param_1 + 0x5c) = iVar4;\n  puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);\n  puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);\n  if (*(char *)(param_1 + 0x2b) != '\x02') {\n    FUN_0002a9e0();\n  }\n  *puVar1 = *(undefined4 *)(param_1 + 0x34);\n  puVar1[1] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[2] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[3] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[4] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[5] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[6] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[7] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[8] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[9] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[10] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);" (assignment_expression "puVar1 = (undefined4 *)**(int **)(param_1 + 0x20)" identifier = (cast_expression "(undefined4 *)**(int **)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(param_1 + 0x20)" * (pointer_expression "*(int **)(param_1 + 0x20)" * (cast_expression "(int **)(param_1 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x40) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x40) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x40)" * (cast_expression "(undefined1 *)(param_1 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;" (assignment_expression "iVar5 = *(int *)(param_1 + 0x38) + 0x2de218" identifier = (binary_expression "*(int *)(param_1 + 0x38) + 0x2de218" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x34) = 0x2de218;" (assignment_expression "*(undefined4 *)(param_1 + 0x34) = 0x2de218" (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 0x2de218;" (assignment_expression "iVar4 = 0x2de218" identifier = number_literal) ;) (expression_statement "piVar2 = (int *)(param_1 + 0x3c);" (assignment_expression "piVar2 = (int *)(param_1 + 0x3c)" identifier = (cast_expression "(int *)(param_1 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) ;) (do_statement "do {\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  } while (piVar3 != (int *)(param_1 + 0x5c));" do (compound_statement "{\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  }" { (expression_statement "piVar3 = piVar2 + 2;" (assignment_expression "piVar3 = piVar2 + 2" identifier = (binary_expression "piVar2 + 2" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + *piVar2 + iVar5;" (assignment_expression "iVar4 = iVar4 + *piVar2 + iVar5" identifier = (binary_expression "iVar4 + *piVar2 + iVar5" (binary_expression "iVar4 + *piVar2" identifier + (pointer_expression "*piVar2" * identifier)) + identifier)) ;) (expression_statement "iVar5 = iVar5 + piVar2[1] + iVar4;" (assignment_expression "iVar5 = iVar5 + piVar2[1] + iVar4" identifier = (binary_expression "iVar5 + piVar2[1] + iVar4" (binary_expression "iVar5 + piVar2[1]" identifier + (subscript_expression "piVar2[1]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "piVar2 = piVar3;" (assignment_expression "piVar2 = piVar3" identifier = identifier) ;) }) while (parenthesized_expression "(piVar3 != (int *)(param_1 + 0x5c))" ( (binary_expression "piVar3 != (int *)(param_1 + 0x5c)" identifier != (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) )) ;) (expression_statement "*(int *)(param_1 + 0x60) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x60) = iVar5" (pointer_expression "*(int *)(param_1 + 0x60)" * (cast_expression "(int *)(param_1 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x5c) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x5c) = iVar4" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "puVar1[0xc] = *(undefined4 *)(param_1 + 0x34)" (subscript_expression "puVar1[0xc]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);" (assignment_expression "puVar1[0xd] = *(undefined4 *)(param_1 + 0x38)" (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);" (assignment_expression "puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c)" (subscript_expression "puVar1[0xe]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "puVar1[0xf] = *(undefined4 *)(param_1 + 0x40)" (subscript_expression "puVar1[0xf]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);" (assignment_expression "puVar1[0x10] = *(undefined4 *)(param_1 + 0x44)" (subscript_expression "puVar1[0x10]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "puVar1[0x11] = *(undefined4 *)(param_1 + 0x48)" (subscript_expression "puVar1[0x11]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x48)" * (cast_expression "(undefined4 *)(param_1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c)" (subscript_expression "puVar1[0x12]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" * (cast_expression "(undefined4 *)(param_1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);" (assignment_expression "puVar1[0x13] = *(undefined4 *)(param_1 + 0x50)" (subscript_expression "puVar1[0x13]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);" (assignment_expression "puVar1[0x14] = *(undefined4 *)(param_1 + 0x54)" (subscript_expression "puVar1[0x14]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "puVar1[0x15] = *(undefined4 *)(param_1 + 0x58)" (subscript_expression "puVar1[0x15]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);" (assignment_expression "puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c)" (subscript_expression "puVar1[0x16]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" * (cast_expression "(undefined4 *)(param_1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);" (assignment_expression "puVar1[0x17] = *(undefined4 *)(param_1 + 0x60)" (subscript_expression "puVar1[0x17]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(param_1 + 0x2b) != '\x02') {\n    FUN_0002a9e0();\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x2b) != '\x02')" ( (binary_expression "*(char *)(param_1 + 0x2b) != '\x02'" (pointer_expression "*(char *)(param_1 + 0x2b)" * (cast_expression "(char *)(param_1 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_0002a9e0();\n  }" { (expression_statement "FUN_0002a9e0();" (call_expression "FUN_0002a9e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*puVar1 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "*puVar1 = *(undefined4 *)(param_1 + 0x34)" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar1[1] = *(undefined4 *)(param_1 + 0x38);" (assignment_expression "puVar1[1] = *(undefined4 *)(param_1 + 0x38)" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar1[2] = *(undefined4 *)(param_1 + 0x3c);" (assignment_expression "puVar1[2] = *(undefined4 *)(param_1 + 0x3c)" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[3] = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "puVar1[3] = *(undefined4 *)(param_1 + 0x40)" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar1[4] = *(undefined4 *)(param_1 + 0x44);" (assignment_expression "puVar1[4] = *(undefined4 *)(param_1 + 0x44)" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "puVar1[5] = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "puVar1[5] = *(undefined4 *)(param_1 + 0x48)" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x48)" * (cast_expression "(undefined4 *)(param_1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar1[6] = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "puVar1[6] = *(undefined4 *)(param_1 + 0x4c)" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" * (cast_expression "(undefined4 *)(param_1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[7] = *(undefined4 *)(param_1 + 0x50);" (assignment_expression "puVar1[7] = *(undefined4 *)(param_1 + 0x50)" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar1[8] = *(undefined4 *)(param_1 + 0x54);" (assignment_expression "puVar1[8] = *(undefined4 *)(param_1 + 0x54)" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "puVar1[9] = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "puVar1[9] = *(undefined4 *)(param_1 + 0x58)" (subscript_expression "puVar1[9]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar1[10] = *(undefined4 *)(param_1 + 0x5c);" (assignment_expression "puVar1[10] = *(undefined4 *)(param_1 + 0x5c)" (subscript_expression "puVar1[10]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" * (cast_expression "(undefined4 *)(param_1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);" (assignment_expression "puVar1[0xb] = *(undefined4 *)(param_1 + 0x60)" (subscript_expression "puVar1[0xb]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 walIndexWriteHdr(Wal *pWal)\n\n{\n  u32 *puVar1;\n  Wal *pWal_1;\n  u32 *puVar2;\n  u32 *puVar3;\n  u32 uVar4;\n  u32 uVar5;\n  \n  puVar1 = *pWal->apWiData;\n  (pWal->hdr).isInit = '\x01';\n  uVar5 = (pWal->hdr).unused + 0x2de218;\n  (pWal->hdr).iVersion = 0x2de218;\n  uVar4 = 0x2de218;\n  puVar2 = &(pWal->hdr).iChange;\n  do {\n    puVar3 = puVar2 + 2;\n    uVar4 = uVar4 + *puVar2 + uVar5;\n    uVar5 = uVar5 + puVar2[1] + uVar4;\n    puVar2 = puVar3;\n  } while (puVar3 != (pWal->hdr).aCksum);\n  (pWal->hdr).aCksum[1] = uVar5;\n  (pWal->hdr).aCksum[0] = uVar4;\n  puVar1[0xc] = (pWal->hdr).iVersion;\n  puVar1[0xd] = (pWal->hdr).unused;\n  puVar1[0xe] = (pWal->hdr).iChange;\n  puVar1[0xf] = *(u32 *)&(pWal->hdr).isInit;\n  puVar1[0x10] = (pWal->hdr).mxFrame;\n  puVar1[0x11] = (pWal->hdr).nPage;\n  puVar1[0x12] = (pWal->hdr).aFrameCksum[0];\n  puVar1[0x13] = (pWal->hdr).aFrameCksum[1];\n  puVar1[0x14] = (pWal->hdr).aSalt[0];\n  puVar1[0x15] = (pWal->hdr).aSalt[1];\n  puVar1[0x16] = (pWal->hdr).aCksum[0];\n  pWal_1 = (Wal *)(pWal->hdr).aCksum[1];\n  puVar1[0x17] = (u32)pWal_1;\n  if (pWal->exclusiveMode != '\x02') {\n    walShmBarrier((Wal *)pWal->pDbFd,pWal_1);\n  }\n  *puVar1 = (pWal->hdr).iVersion;\n  puVar1[1] = (pWal->hdr).unused;\n  puVar1[2] = (pWal->hdr).iChange;\n  puVar1[3] = *(u32 *)&(pWal->hdr).isInit;\n  puVar1[4] = (pWal->hdr).mxFrame;\n  puVar1[5] = (pWal->hdr).nPage;\n  puVar1[6] = (pWal->hdr).aFrameCksum[0];\n  puVar1[7] = (pWal->hdr).aFrameCksum[1];\n  puVar1[8] = (pWal->hdr).aSalt[0];\n  puVar1[9] = (pWal->hdr).aSalt[1];\n  puVar1[10] = (pWal->hdr).aCksum[0];\n  puVar1[0xb] = (pWal->hdr).aCksum[1];\n  return;\n}\n\n" (function_definition "void __regparm3 walIndexWriteHdr(Wal *pWal)\n\n{\n  u32 *puVar1;\n  Wal *pWal_1;\n  u32 *puVar2;\n  u32 *puVar3;\n  u32 uVar4;\n  u32 uVar5;\n  \n  puVar1 = *pWal->apWiData;\n  (pWal->hdr).isInit = '\x01';\n  uVar5 = (pWal->hdr).unused + 0x2de218;\n  (pWal->hdr).iVersion = 0x2de218;\n  uVar4 = 0x2de218;\n  puVar2 = &(pWal->hdr).iChange;\n  do {\n    puVar3 = puVar2 + 2;\n    uVar4 = uVar4 + *puVar2 + uVar5;\n    uVar5 = uVar5 + puVar2[1] + uVar4;\n    puVar2 = puVar3;\n  } while (puVar3 != (pWal->hdr).aCksum);\n  (pWal->hdr).aCksum[1] = uVar5;\n  (pWal->hdr).aCksum[0] = uVar4;\n  puVar1[0xc] = (pWal->hdr).iVersion;\n  puVar1[0xd] = (pWal->hdr).unused;\n  puVar1[0xe] = (pWal->hdr).iChange;\n  puVar1[0xf] = *(u32 *)&(pWal->hdr).isInit;\n  puVar1[0x10] = (pWal->hdr).mxFrame;\n  puVar1[0x11] = (pWal->hdr).nPage;\n  puVar1[0x12] = (pWal->hdr).aFrameCksum[0];\n  puVar1[0x13] = (pWal->hdr).aFrameCksum[1];\n  puVar1[0x14] = (pWal->hdr).aSalt[0];\n  puVar1[0x15] = (pWal->hdr).aSalt[1];\n  puVar1[0x16] = (pWal->hdr).aCksum[0];\n  pWal_1 = (Wal *)(pWal->hdr).aCksum[1];\n  puVar1[0x17] = (u32)pWal_1;\n  if (pWal->exclusiveMode != '\x02') {\n    walShmBarrier((Wal *)pWal->pDbFd,pWal_1);\n  }\n  *puVar1 = (pWal->hdr).iVersion;\n  puVar1[1] = (pWal->hdr).unused;\n  puVar1[2] = (pWal->hdr).iChange;\n  puVar1[3] = *(u32 *)&(pWal->hdr).isInit;\n  puVar1[4] = (pWal->hdr).mxFrame;\n  puVar1[5] = (pWal->hdr).nPage;\n  puVar1[6] = (pWal->hdr).aFrameCksum[0];\n  puVar1[7] = (pWal->hdr).aFrameCksum[1];\n  puVar1[8] = (pWal->hdr).aSalt[0];\n  puVar1[9] = (pWal->hdr).aSalt[1];\n  puVar1[10] = (pWal->hdr).aCksum[0];\n  puVar1[0xb] = (pWal->hdr).aCksum[1];\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "walIndexWriteHdr(Wal *pWal)" identifier (parameter_list "(Wal *pWal)" ( (parameter_declaration "Wal *pWal" type_identifier (pointer_declarator "*pWal" * identifier)) ))) (compound_statement "{\n  u32 *puVar1;\n  Wal *pWal_1;\n  u32 *puVar2;\n  u32 *puVar3;\n  u32 uVar4;\n  u32 uVar5;\n  \n  puVar1 = *pWal->apWiData;\n  (pWal->hdr).isInit = '\x01';\n  uVar5 = (pWal->hdr).unused + 0x2de218;\n  (pWal->hdr).iVersion = 0x2de218;\n  uVar4 = 0x2de218;\n  puVar2 = &(pWal->hdr).iChange;\n  do {\n    puVar3 = puVar2 + 2;\n    uVar4 = uVar4 + *puVar2 + uVar5;\n    uVar5 = uVar5 + puVar2[1] + uVar4;\n    puVar2 = puVar3;\n  } while (puVar3 != (pWal->hdr).aCksum);\n  (pWal->hdr).aCksum[1] = uVar5;\n  (pWal->hdr).aCksum[0] = uVar4;\n  puVar1[0xc] = (pWal->hdr).iVersion;\n  puVar1[0xd] = (pWal->hdr).unused;\n  puVar1[0xe] = (pWal->hdr).iChange;\n  puVar1[0xf] = *(u32 *)&(pWal->hdr).isInit;\n  puVar1[0x10] = (pWal->hdr).mxFrame;\n  puVar1[0x11] = (pWal->hdr).nPage;\n  puVar1[0x12] = (pWal->hdr).aFrameCksum[0];\n  puVar1[0x13] = (pWal->hdr).aFrameCksum[1];\n  puVar1[0x14] = (pWal->hdr).aSalt[0];\n  puVar1[0x15] = (pWal->hdr).aSalt[1];\n  puVar1[0x16] = (pWal->hdr).aCksum[0];\n  pWal_1 = (Wal *)(pWal->hdr).aCksum[1];\n  puVar1[0x17] = (u32)pWal_1;\n  if (pWal->exclusiveMode != '\x02') {\n    walShmBarrier((Wal *)pWal->pDbFd,pWal_1);\n  }\n  *puVar1 = (pWal->hdr).iVersion;\n  puVar1[1] = (pWal->hdr).unused;\n  puVar1[2] = (pWal->hdr).iChange;\n  puVar1[3] = *(u32 *)&(pWal->hdr).isInit;\n  puVar1[4] = (pWal->hdr).mxFrame;\n  puVar1[5] = (pWal->hdr).nPage;\n  puVar1[6] = (pWal->hdr).aFrameCksum[0];\n  puVar1[7] = (pWal->hdr).aFrameCksum[1];\n  puVar1[8] = (pWal->hdr).aSalt[0];\n  puVar1[9] = (pWal->hdr).aSalt[1];\n  puVar1[10] = (pWal->hdr).aCksum[0];\n  puVar1[0xb] = (pWal->hdr).aCksum[1];\n  return;\n}" { (declaration "u32 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "Wal *pWal_1;" type_identifier (pointer_declarator "*pWal_1" * identifier) ;) (declaration "u32 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "u32 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "u32 uVar4;" type_identifier identifier ;) (declaration "u32 uVar5;" type_identifier identifier ;) (expression_statement "puVar1 = *pWal->apWiData;" (assignment_expression "puVar1 = *pWal->apWiData" identifier = (pointer_expression "*pWal->apWiData" * (field_expression "pWal->apWiData" identifier -> field_identifier))) ;) (expression_statement "(pWal->hdr).isInit = '\x01';" (assignment_expression "(pWal->hdr).isInit = '\x01'" (field_expression "(pWal->hdr).isInit" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "uVar5 = (pWal->hdr).unused + 0x2de218;" (assignment_expression "uVar5 = (pWal->hdr).unused + 0x2de218" identifier = (binary_expression "(pWal->hdr).unused + 0x2de218" (field_expression "(pWal->hdr).unused" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) + number_literal)) ;) (expression_statement "(pWal->hdr).iVersion = 0x2de218;" (assignment_expression "(pWal->hdr).iVersion = 0x2de218" (field_expression "(pWal->hdr).iVersion" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) (expression_statement "uVar4 = 0x2de218;" (assignment_expression "uVar4 = 0x2de218" identifier = number_literal) ;) (expression_statement "puVar2 = &(pWal->hdr).iChange;" (assignment_expression "puVar2 = &(pWal->hdr).iChange" identifier = (pointer_expression "&(pWal->hdr).iChange" & (field_expression "(pWal->hdr).iChange" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier))) ;) (do_statement "do {\n    puVar3 = puVar2 + 2;\n    uVar4 = uVar4 + *puVar2 + uVar5;\n    uVar5 = uVar5 + puVar2[1] + uVar4;\n    puVar2 = puVar3;\n  } while (puVar3 != (pWal->hdr).aCksum);" do (compound_statement "{\n    puVar3 = puVar2 + 2;\n    uVar4 = uVar4 + *puVar2 + uVar5;\n    uVar5 = uVar5 + puVar2[1] + uVar4;\n    puVar2 = puVar3;\n  }" { (expression_statement "puVar3 = puVar2 + 2;" (assignment_expression "puVar3 = puVar2 + 2" identifier = (binary_expression "puVar2 + 2" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar4 + *puVar2 + uVar5;" (assignment_expression "uVar4 = uVar4 + *puVar2 + uVar5" identifier = (binary_expression "uVar4 + *puVar2 + uVar5" (binary_expression "uVar4 + *puVar2" identifier + (pointer_expression "*puVar2" * identifier)) + identifier)) ;) (expression_statement "uVar5 = uVar5 + puVar2[1] + uVar4;" (assignment_expression "uVar5 = uVar5 + puVar2[1] + uVar4" identifier = (binary_expression "uVar5 + puVar2[1] + uVar4" (binary_expression "uVar5 + puVar2[1]" identifier + (subscript_expression "puVar2[1]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "puVar2 = puVar3;" (assignment_expression "puVar2 = puVar3" identifier = identifier) ;) }) while (parenthesized_expression "(puVar3 != (pWal->hdr).aCksum)" ( (binary_expression "puVar3 != (pWal->hdr).aCksum" identifier != (field_expression "(pWal->hdr).aCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) )) ;) (expression_statement "(pWal->hdr).aCksum[1] = uVar5;" (assignment_expression "(pWal->hdr).aCksum[1] = uVar5" (subscript_expression "(pWal->hdr).aCksum[1]" (field_expression "(pWal->hdr).aCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "(pWal->hdr).aCksum[0] = uVar4;" (assignment_expression "(pWal->hdr).aCksum[0] = uVar4" (subscript_expression "(pWal->hdr).aCksum[0]" (field_expression "(pWal->hdr).aCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "puVar1[0xc] = (pWal->hdr).iVersion;" (assignment_expression "puVar1[0xc] = (pWal->hdr).iVersion" (subscript_expression "puVar1[0xc]" identifier [ number_literal ]) = (field_expression "(pWal->hdr).iVersion" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1[0xd] = (pWal->hdr).unused;" (assignment_expression "puVar1[0xd] = (pWal->hdr).unused" (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) = (field_expression "(pWal->hdr).unused" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1[0xe] = (pWal->hdr).iChange;" (assignment_expression "puVar1[0xe] = (pWal->hdr).iChange" (subscript_expression "puVar1[0xe]" identifier [ number_literal ]) = (field_expression "(pWal->hdr).iChange" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1[0xf] = *(u32 *)&(pWal->hdr).isInit;" (assignment_expression "puVar1[0xf] = *(u32 *)&(pWal->hdr).isInit" (subscript_expression "puVar1[0xf]" identifier [ number_literal ]) = (pointer_expression "*(u32 *)&(pWal->hdr).isInit" * (cast_expression "(u32 *)&(pWal->hdr).isInit" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pWal->hdr).isInit" & (field_expression "(pWal->hdr).isInit" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "puVar1[0x10] = (pWal->hdr).mxFrame;" (assignment_expression "puVar1[0x10] = (pWal->hdr).mxFrame" (subscript_expression "puVar1[0x10]" identifier [ number_literal ]) = (field_expression "(pWal->hdr).mxFrame" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1[0x11] = (pWal->hdr).nPage;" (assignment_expression "puVar1[0x11] = (pWal->hdr).nPage" (subscript_expression "puVar1[0x11]" identifier [ number_literal ]) = (field_expression "(pWal->hdr).nPage" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1[0x12] = (pWal->hdr).aFrameCksum[0];" (assignment_expression "puVar1[0x12] = (pWal->hdr).aFrameCksum[0]" (subscript_expression "puVar1[0x12]" identifier [ number_literal ]) = (subscript_expression "(pWal->hdr).aFrameCksum[0]" (field_expression "(pWal->hdr).aFrameCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "puVar1[0x13] = (pWal->hdr).aFrameCksum[1];" (assignment_expression "puVar1[0x13] = (pWal->hdr).aFrameCksum[1]" (subscript_expression "puVar1[0x13]" identifier [ number_literal ]) = (subscript_expression "(pWal->hdr).aFrameCksum[1]" (field_expression "(pWal->hdr).aFrameCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "puVar1[0x14] = (pWal->hdr).aSalt[0];" (assignment_expression "puVar1[0x14] = (pWal->hdr).aSalt[0]" (subscript_expression "puVar1[0x14]" identifier [ number_literal ]) = (subscript_expression "(pWal->hdr).aSalt[0]" (field_expression "(pWal->hdr).aSalt" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "puVar1[0x15] = (pWal->hdr).aSalt[1];" (assignment_expression "puVar1[0x15] = (pWal->hdr).aSalt[1]" (subscript_expression "puVar1[0x15]" identifier [ number_literal ]) = (subscript_expression "(pWal->hdr).aSalt[1]" (field_expression "(pWal->hdr).aSalt" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "puVar1[0x16] = (pWal->hdr).aCksum[0];" (assignment_expression "puVar1[0x16] = (pWal->hdr).aCksum[0]" (subscript_expression "puVar1[0x16]" identifier [ number_literal ]) = (subscript_expression "(pWal->hdr).aCksum[0]" (field_expression "(pWal->hdr).aCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "pWal_1 = (Wal *)(pWal->hdr).aCksum[1];" (assignment_expression "pWal_1 = (Wal *)(pWal->hdr).aCksum[1]" identifier = (cast_expression "(Wal *)(pWal->hdr).aCksum[1]" ( (type_descriptor "Wal *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "(pWal->hdr).aCksum[1]" (field_expression "(pWal->hdr).aCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ]))) ;) (expression_statement "puVar1[0x17] = (u32)pWal_1;" (assignment_expression "puVar1[0x17] = (u32)pWal_1" (subscript_expression "puVar1[0x17]" identifier [ number_literal ]) = (cast_expression "(u32)pWal_1" ( (type_descriptor "u32" type_identifier) ) identifier)) ;) (if_statement "if (pWal->exclusiveMode != '\x02') {\n    walShmBarrier((Wal *)pWal->pDbFd,pWal_1);\n  }" if (parenthesized_expression "(pWal->exclusiveMode != '\x02')" ( (binary_expression "pWal->exclusiveMode != '\x02'" (field_expression "pWal->exclusiveMode" identifier -> field_identifier) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    walShmBarrier((Wal *)pWal->pDbFd,pWal_1);\n  }" { (expression_statement "walShmBarrier((Wal *)pWal->pDbFd,pWal_1);" (call_expression "walShmBarrier((Wal *)pWal->pDbFd,pWal_1)" identifier (argument_list "((Wal *)pWal->pDbFd,pWal_1)" ( (cast_expression "(Wal *)pWal->pDbFd" ( (type_descriptor "Wal *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pWal->pDbFd" identifier -> field_identifier)) , identifier ))) ;) })) (expression_statement "*puVar1 = (pWal->hdr).iVersion;" (assignment_expression "*puVar1 = (pWal->hdr).iVersion" (pointer_expression "*puVar1" * identifier) = (field_expression "(pWal->hdr).iVersion" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1[1] = (pWal->hdr).unused;" (assignment_expression "puVar1[1] = (pWal->hdr).unused" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (field_expression "(pWal->hdr).unused" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1[2] = (pWal->hdr).iChange;" (assignment_expression "puVar1[2] = (pWal->hdr).iChange" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (field_expression "(pWal->hdr).iChange" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1[3] = *(u32 *)&(pWal->hdr).isInit;" (assignment_expression "puVar1[3] = *(u32 *)&(pWal->hdr).isInit" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = (pointer_expression "*(u32 *)&(pWal->hdr).isInit" * (cast_expression "(u32 *)&(pWal->hdr).isInit" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pWal->hdr).isInit" & (field_expression "(pWal->hdr).isInit" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "puVar1[4] = (pWal->hdr).mxFrame;" (assignment_expression "puVar1[4] = (pWal->hdr).mxFrame" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = (field_expression "(pWal->hdr).mxFrame" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1[5] = (pWal->hdr).nPage;" (assignment_expression "puVar1[5] = (pWal->hdr).nPage" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = (field_expression "(pWal->hdr).nPage" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1[6] = (pWal->hdr).aFrameCksum[0];" (assignment_expression "puVar1[6] = (pWal->hdr).aFrameCksum[0]" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = (subscript_expression "(pWal->hdr).aFrameCksum[0]" (field_expression "(pWal->hdr).aFrameCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "puVar1[7] = (pWal->hdr).aFrameCksum[1];" (assignment_expression "puVar1[7] = (pWal->hdr).aFrameCksum[1]" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = (subscript_expression "(pWal->hdr).aFrameCksum[1]" (field_expression "(pWal->hdr).aFrameCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "puVar1[8] = (pWal->hdr).aSalt[0];" (assignment_expression "puVar1[8] = (pWal->hdr).aSalt[0]" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = (subscript_expression "(pWal->hdr).aSalt[0]" (field_expression "(pWal->hdr).aSalt" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "puVar1[9] = (pWal->hdr).aSalt[1];" (assignment_expression "puVar1[9] = (pWal->hdr).aSalt[1]" (subscript_expression "puVar1[9]" identifier [ number_literal ]) = (subscript_expression "(pWal->hdr).aSalt[1]" (field_expression "(pWal->hdr).aSalt" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "puVar1[10] = (pWal->hdr).aCksum[0];" (assignment_expression "puVar1[10] = (pWal->hdr).aCksum[0]" (subscript_expression "puVar1[10]" identifier [ number_literal ]) = (subscript_expression "(pWal->hdr).aCksum[0]" (field_expression "(pWal->hdr).aCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (expression_statement "puVar1[0xb] = (pWal->hdr).aCksum[1];" (assignment_expression "puVar1[0xb] = (pWal->hdr).aCksum[1]" (subscript_expression "puVar1[0xb]" identifier [ number_literal ]) = (subscript_expression "(pWal->hdr).aCksum[1]" (field_expression "(pWal->hdr).aCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) [ number_literal ])) ;) (return_statement "return;" return ;) })))
(translation_unit "void __regparm3 FUN_0002a9f0(int param_1)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  \n  puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);\n  *(undefined1 *)(param_1 + 0x40) = 1;\n  iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;\n  *(undefined4 *)(param_1 + 0x34) = 0x2de218;\n  iVar4 = 0x2de218;\n  piVar2 = (int *)(param_1 + 0x3c);\n  do {\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  } while (piVar3 != (int *)(param_1 + 0x5c));\n  *(int *)(param_1 + 0x60) = iVar5;\n  *(int *)(param_1 + 0x5c) = iVar4;\n  puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);\n  puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);\n  if (*(char *)(param_1 + 0x2b) != '\x02') {\n    FUN_0002a9e0();\n  }\n  *puVar1 = *(undefined4 *)(param_1 + 0x34);\n  puVar1[1] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[2] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[3] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[4] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[5] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[6] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[7] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[8] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[9] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[10] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);\n  return;\n}\n\n" (function_definition "void __regparm3 FUN_0002a9f0(int param_1)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  \n  puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);\n  *(undefined1 *)(param_1 + 0x40) = 1;\n  iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;\n  *(undefined4 *)(param_1 + 0x34) = 0x2de218;\n  iVar4 = 0x2de218;\n  piVar2 = (int *)(param_1 + 0x3c);\n  do {\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  } while (piVar3 != (int *)(param_1 + 0x5c));\n  *(int *)(param_1 + 0x60) = iVar5;\n  *(int *)(param_1 + 0x5c) = iVar4;\n  puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);\n  puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);\n  if (*(char *)(param_1 + 0x2b) != '\x02') {\n    FUN_0002a9e0();\n  }\n  *puVar1 = *(undefined4 *)(param_1 + 0x34);\n  puVar1[1] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[2] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[3] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[4] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[5] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[6] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[7] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[8] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[9] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[10] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);\n  return;\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0002a9f0(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  \n  puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);\n  *(undefined1 *)(param_1 + 0x40) = 1;\n  iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;\n  *(undefined4 *)(param_1 + 0x34) = 0x2de218;\n  iVar4 = 0x2de218;\n  piVar2 = (int *)(param_1 + 0x3c);\n  do {\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  } while (piVar3 != (int *)(param_1 + 0x5c));\n  *(int *)(param_1 + 0x60) = iVar5;\n  *(int *)(param_1 + 0x5c) = iVar4;\n  puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);\n  puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);\n  if (*(char *)(param_1 + 0x2b) != '\x02') {\n    FUN_0002a9e0();\n  }\n  *puVar1 = *(undefined4 *)(param_1 + 0x34);\n  puVar1[1] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[2] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[3] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[4] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[5] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[6] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[7] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[8] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[9] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[10] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);\n  return;\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int *piVar3;" primitive_type (pointer_declarator "*piVar3" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (expression_statement "puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);" (assignment_expression "puVar1 = (undefined4 *)**(int **)(param_1 + 0x20)" identifier = (cast_expression "(undefined4 *)**(int **)(param_1 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(param_1 + 0x20)" * (pointer_expression "*(int **)(param_1 + 0x20)" * (cast_expression "(int **)(param_1 + 0x20)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x20)" ( (binary_expression "param_1 + 0x20" identifier + number_literal) ))))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x40) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x40) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x40)" * (cast_expression "(undefined1 *)(param_1 + 0x40)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;" (assignment_expression "iVar5 = *(int *)(param_1 + 0x38) + 0x2de218" identifier = (binary_expression "*(int *)(param_1 + 0x38) + 0x2de218" (pointer_expression "*(int *)(param_1 + 0x38)" * (cast_expression "(int *)(param_1 + 0x38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x34) = 0x2de218;" (assignment_expression "*(undefined4 *)(param_1 + 0x34) = 0x2de218" (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar4 = 0x2de218;" (assignment_expression "iVar4 = 0x2de218" identifier = number_literal) ;) (expression_statement "piVar2 = (int *)(param_1 + 0x3c);" (assignment_expression "piVar2 = (int *)(param_1 + 0x3c)" identifier = (cast_expression "(int *)(param_1 + 0x3c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) )))) ;) (do_statement "do {\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  } while (piVar3 != (int *)(param_1 + 0x5c));" do (compound_statement "{\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  }" { (expression_statement "piVar3 = piVar2 + 2;" (assignment_expression "piVar3 = piVar2 + 2" identifier = (binary_expression "piVar2 + 2" identifier + number_literal)) ;) (expression_statement "iVar4 = iVar4 + *piVar2 + iVar5;" (assignment_expression "iVar4 = iVar4 + *piVar2 + iVar5" identifier = (binary_expression "iVar4 + *piVar2 + iVar5" (binary_expression "iVar4 + *piVar2" identifier + (pointer_expression "*piVar2" * identifier)) + identifier)) ;) (expression_statement "iVar5 = iVar5 + piVar2[1] + iVar4;" (assignment_expression "iVar5 = iVar5 + piVar2[1] + iVar4" identifier = (binary_expression "iVar5 + piVar2[1] + iVar4" (binary_expression "iVar5 + piVar2[1]" identifier + (subscript_expression "piVar2[1]" identifier [ number_literal ])) + identifier)) ;) (expression_statement "piVar2 = piVar3;" (assignment_expression "piVar2 = piVar3" identifier = identifier) ;) }) while (parenthesized_expression "(piVar3 != (int *)(param_1 + 0x5c))" ( (binary_expression "piVar3 != (int *)(param_1 + 0x5c)" identifier != (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) )) ;) (expression_statement "*(int *)(param_1 + 0x60) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x60) = iVar5" (pointer_expression "*(int *)(param_1 + 0x60)" * (cast_expression "(int *)(param_1 + 0x60)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(param_1 + 0x5c) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x5c) = iVar4" (pointer_expression "*(int *)(param_1 + 0x5c)" * (cast_expression "(int *)(param_1 + 0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "puVar1[0xc] = *(undefined4 *)(param_1 + 0x34)" (subscript_expression "puVar1[0xc]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);" (assignment_expression "puVar1[0xd] = *(undefined4 *)(param_1 + 0x38)" (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);" (assignment_expression "puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c)" (subscript_expression "puVar1[0xe]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "puVar1[0xf] = *(undefined4 *)(param_1 + 0x40)" (subscript_expression "puVar1[0xf]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);" (assignment_expression "puVar1[0x10] = *(undefined4 *)(param_1 + 0x44)" (subscript_expression "puVar1[0x10]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "puVar1[0x11] = *(undefined4 *)(param_1 + 0x48)" (subscript_expression "puVar1[0x11]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x48)" * (cast_expression "(undefined4 *)(param_1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c)" (subscript_expression "puVar1[0x12]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" * (cast_expression "(undefined4 *)(param_1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);" (assignment_expression "puVar1[0x13] = *(undefined4 *)(param_1 + 0x50)" (subscript_expression "puVar1[0x13]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);" (assignment_expression "puVar1[0x14] = *(undefined4 *)(param_1 + 0x54)" (subscript_expression "puVar1[0x14]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "puVar1[0x15] = *(undefined4 *)(param_1 + 0x58)" (subscript_expression "puVar1[0x15]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);" (assignment_expression "puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c)" (subscript_expression "puVar1[0x16]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" * (cast_expression "(undefined4 *)(param_1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);" (assignment_expression "puVar1[0x17] = *(undefined4 *)(param_1 + 0x60)" (subscript_expression "puVar1[0x17]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (if_statement "if (*(char *)(param_1 + 0x2b) != '\x02') {\n    FUN_0002a9e0();\n  }" if (parenthesized_expression "(*(char *)(param_1 + 0x2b) != '\x02')" ( (binary_expression "*(char *)(param_1 + 0x2b) != '\x02'" (pointer_expression "*(char *)(param_1 + 0x2b)" * (cast_expression "(char *)(param_1 + 0x2b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x2b)" ( (binary_expression "param_1 + 0x2b" identifier + number_literal) )))) != (char_literal "'\x02'" ' escape_sequence ')) )) (compound_statement "{\n    FUN_0002a9e0();\n  }" { (expression_statement "FUN_0002a9e0();" (call_expression "FUN_0002a9e0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "*puVar1 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "*puVar1 = *(undefined4 *)(param_1 + 0x34)" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*(undefined4 *)(param_1 + 0x34)" * (cast_expression "(undefined4 *)(param_1 + 0x34)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x34)" ( (binary_expression "param_1 + 0x34" identifier + number_literal) ))))) ;) (expression_statement "puVar1[1] = *(undefined4 *)(param_1 + 0x38);" (assignment_expression "puVar1[1] = *(undefined4 *)(param_1 + 0x38)" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x38)" * (cast_expression "(undefined4 *)(param_1 + 0x38)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x38)" ( (binary_expression "param_1 + 0x38" identifier + number_literal) ))))) ;) (expression_statement "puVar1[2] = *(undefined4 *)(param_1 + 0x3c);" (assignment_expression "puVar1[2] = *(undefined4 *)(param_1 + 0x3c)" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" * (cast_expression "(undefined4 *)(param_1 + 0x3c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x3c)" ( (binary_expression "param_1 + 0x3c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[3] = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "puVar1[3] = *(undefined4 *)(param_1 + 0x40)" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x40)" * (cast_expression "(undefined4 *)(param_1 + 0x40)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x40)" ( (binary_expression "param_1 + 0x40" identifier + number_literal) ))))) ;) (expression_statement "puVar1[4] = *(undefined4 *)(param_1 + 0x44);" (assignment_expression "puVar1[4] = *(undefined4 *)(param_1 + 0x44)" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x44)" * (cast_expression "(undefined4 *)(param_1 + 0x44)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x44)" ( (binary_expression "param_1 + 0x44" identifier + number_literal) ))))) ;) (expression_statement "puVar1[5] = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "puVar1[5] = *(undefined4 *)(param_1 + 0x48)" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x48)" * (cast_expression "(undefined4 *)(param_1 + 0x48)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar1[6] = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "puVar1[6] = *(undefined4 *)(param_1 + 0x4c)" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" * (cast_expression "(undefined4 *)(param_1 + 0x4c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4c)" ( (binary_expression "param_1 + 0x4c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[7] = *(undefined4 *)(param_1 + 0x50);" (assignment_expression "puVar1[7] = *(undefined4 *)(param_1 + 0x50)" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x50)" * (cast_expression "(undefined4 *)(param_1 + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar1[8] = *(undefined4 *)(param_1 + 0x54);" (assignment_expression "puVar1[8] = *(undefined4 *)(param_1 + 0x54)" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x54)" * (cast_expression "(undefined4 *)(param_1 + 0x54)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) ))))) ;) (expression_statement "puVar1[9] = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "puVar1[9] = *(undefined4 *)(param_1 + 0x58)" (subscript_expression "puVar1[9]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x58)" * (cast_expression "(undefined4 *)(param_1 + 0x58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar1[10] = *(undefined4 *)(param_1 + 0x5c);" (assignment_expression "puVar1[10] = *(undefined4 *)(param_1 + 0x5c)" (subscript_expression "puVar1[10]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" * (cast_expression "(undefined4 *)(param_1 + 0x5c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x5c)" ( (binary_expression "param_1 + 0x5c" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);" (assignment_expression "puVar1[0xb] = *(undefined4 *)(param_1 + 0x60)" (subscript_expression "puVar1[0xb]" identifier [ number_literal ]) = (pointer_expression "*(undefined4 *)(param_1 + 0x60)" * (cast_expression "(undefined4 *)(param_1 + 0x60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (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 * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (pointer_expression * IDENT)) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_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 (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 ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (return_statement return ;) })))
(function_definition "void __regparm3 FUN_0002a9f0(int param_1)\n\n{\n  undefined4 *puVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  \n  puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);\n  *(undefined1 *)(param_1 + 0x40) = 1;\n  iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;\n  *(undefined4 *)(param_1 + 0x34) = 0x2de218;\n  iVar4 = 0x2de218;\n  piVar2 = (int *)(param_1 + 0x3c);\n  do {\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  } while (piVar3 != (int *)(param_1 + 0x5c));\n  *(int *)(param_1 + 0x60) = iVar5;\n  *(int *)(param_1 + 0x5c) = iVar4;\n  puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);\n  puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);\n  if (*(char *)(param_1 + 0x2b) != '\x02') {\n    FUN_0002a9e0();\n  }\n  *puVar1 = *(undefined4 *)(param_1 + 0x34);\n  puVar1[1] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[2] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[3] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[4] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[5] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[6] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[7] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[8] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[9] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[10] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);\n  return;\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0002a9f0(int param_1)" (identifier "FUN_0002a9f0") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int *piVar2;\n  int *piVar3;\n  int iVar4;\n  int iVar5;\n  \n  puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);\n  *(undefined1 *)(param_1 + 0x40) = 1;\n  iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;\n  *(undefined4 *)(param_1 + 0x34) = 0x2de218;\n  iVar4 = 0x2de218;\n  piVar2 = (int *)(param_1 + 0x3c);\n  do {\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  } while (piVar3 != (int *)(param_1 + 0x5c));\n  *(int *)(param_1 + 0x60) = iVar5;\n  *(int *)(param_1 + 0x5c) = iVar4;\n  puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);\n  puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);\n  if (*(char *)(param_1 + 0x2b) != '\x02') {\n    FUN_0002a9e0();\n  }\n  *puVar1 = *(undefined4 *)(param_1 + 0x34);\n  puVar1[1] = *(undefined4 *)(param_1 + 0x38);\n  puVar1[2] = *(undefined4 *)(param_1 + 0x3c);\n  puVar1[3] = *(undefined4 *)(param_1 + 0x40);\n  puVar1[4] = *(undefined4 *)(param_1 + 0x44);\n  puVar1[5] = *(undefined4 *)(param_1 + 0x48);\n  puVar1[6] = *(undefined4 *)(param_1 + 0x4c);\n  puVar1[7] = *(undefined4 *)(param_1 + 0x50);\n  puVar1[8] = *(undefined4 *)(param_1 + 0x54);\n  puVar1[9] = *(undefined4 *)(param_1 + 0x58);\n  puVar1[10] = *(undefined4 *)(param_1 + 0x5c);\n  puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);\n  return;\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int *piVar3;" (primitive_type "int") (pointer_declarator "*piVar3" (* "*") (identifier "piVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (expression_statement "puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);" (assignment_expression "puVar1 = (undefined4 *)**(int **)(param_1 + 0x20)" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)**(int **)(param_1 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(int **)(param_1 + 0x20)" (* "*") (pointer_expression "*(int **)(param_1 + 0x20)" (* "*") (cast_expression "(int **)(param_1 + 0x20)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x20)" (( "(") (binary_expression "param_1 + 0x20" (identifier "param_1") (+ "+") (number_literal "0x20")) () ")"))))))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x40) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x40) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;" (assignment_expression "iVar5 = *(int *)(param_1 + 0x38) + 0x2de218" (identifier "iVar5") (= "=") (binary_expression "*(int *)(param_1 + 0x38) + 0x2de218" (pointer_expression "*(int *)(param_1 + 0x38)" (* "*") (cast_expression "(int *)(param_1 + 0x38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")")))) (+ "+") (number_literal "0x2de218"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x34) = 0x2de218;" (assignment_expression "*(undefined4 *)(param_1 + 0x34) = 0x2de218" (pointer_expression "*(undefined4 *)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")")))) (= "=") (number_literal "0x2de218")) (; ";")) (expression_statement "iVar4 = 0x2de218;" (assignment_expression "iVar4 = 0x2de218" (identifier "iVar4") (= "=") (number_literal "0x2de218")) (; ";")) (expression_statement "piVar2 = (int *)(param_1 + 0x3c);" (assignment_expression "piVar2 = (int *)(param_1 + 0x3c)" (identifier "piVar2") (= "=") (cast_expression "(int *)(param_1 + 0x3c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")")))) (; ";")) (do_statement "do {\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  } while (piVar3 != (int *)(param_1 + 0x5c));" (do "do") (compound_statement "{\n    piVar3 = piVar2 + 2;\n    iVar4 = iVar4 + *piVar2 + iVar5;\n    iVar5 = iVar5 + piVar2[1] + iVar4;\n    piVar2 = piVar3;\n  }" ({ "{") (expression_statement "piVar3 = piVar2 + 2;" (assignment_expression "piVar3 = piVar2 + 2" (identifier "piVar3") (= "=") (binary_expression "piVar2 + 2" (identifier "piVar2") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "iVar4 = iVar4 + *piVar2 + iVar5;" (assignment_expression "iVar4 = iVar4 + *piVar2 + iVar5" (identifier "iVar4") (= "=") (binary_expression "iVar4 + *piVar2 + iVar5" (binary_expression "iVar4 + *piVar2" (identifier "iVar4") (+ "+") (pointer_expression "*piVar2" (* "*") (identifier "piVar2"))) (+ "+") (identifier "iVar5"))) (; ";")) (expression_statement "iVar5 = iVar5 + piVar2[1] + iVar4;" (assignment_expression "iVar5 = iVar5 + piVar2[1] + iVar4" (identifier "iVar5") (= "=") (binary_expression "iVar5 + piVar2[1] + iVar4" (binary_expression "iVar5 + piVar2[1]" (identifier "iVar5") (+ "+") (subscript_expression "piVar2[1]" (identifier "piVar2") ([ "[") (number_literal "1") (] "]"))) (+ "+") (identifier "iVar4"))) (; ";")) (expression_statement "piVar2 = piVar3;" (assignment_expression "piVar2 = piVar3" (identifier "piVar2") (= "=") (identifier "piVar3")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar3 != (int *)(param_1 + 0x5c))" (( "(") (binary_expression "piVar3 != (int *)(param_1 + 0x5c)" (identifier "piVar3") (!= "!=") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))) () ")")) (; ";")) (expression_statement "*(int *)(param_1 + 0x60) = iVar5;" (assignment_expression "*(int *)(param_1 + 0x60) = iVar5" (pointer_expression "*(int *)(param_1 + 0x60)" (* "*") (cast_expression "(int *)(param_1 + 0x60)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")")))) (= "=") (identifier "iVar5")) (; ";")) (expression_statement "*(int *)(param_1 + 0x5c) = iVar4;" (assignment_expression "*(int *)(param_1 + 0x5c) = iVar4" (pointer_expression "*(int *)(param_1 + 0x5c)" (* "*") (cast_expression "(int *)(param_1 + 0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")")))) (= "=") (identifier "iVar4")) (; ";")) (expression_statement "puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "puVar1[0xc] = *(undefined4 *)(param_1 + 0x34)" (subscript_expression "puVar1[0xc]" (identifier "puVar1") ([ "[") (number_literal "0xc") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);" (assignment_expression "puVar1[0xd] = *(undefined4 *)(param_1 + 0x38)" (subscript_expression "puVar1[0xd]" (identifier "puVar1") ([ "[") (number_literal "0xd") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);" (assignment_expression "puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c)" (subscript_expression "puVar1[0xe]" (identifier "puVar1") ([ "[") (number_literal "0xe") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "puVar1[0xf] = *(undefined4 *)(param_1 + 0x40)" (subscript_expression "puVar1[0xf]" (identifier "puVar1") ([ "[") (number_literal "0xf") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);" (assignment_expression "puVar1[0x10] = *(undefined4 *)(param_1 + 0x44)" (subscript_expression "puVar1[0x10]" (identifier "puVar1") ([ "[") (number_literal "0x10") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "puVar1[0x11] = *(undefined4 *)(param_1 + 0x48)" (subscript_expression "puVar1[0x11]" (identifier "puVar1") ([ "[") (number_literal "0x11") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c)" (subscript_expression "puVar1[0x12]" (identifier "puVar1") ([ "[") (number_literal "0x12") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);" (assignment_expression "puVar1[0x13] = *(undefined4 *)(param_1 + 0x50)" (subscript_expression "puVar1[0x13]" (identifier "puVar1") ([ "[") (number_literal "0x13") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);" (assignment_expression "puVar1[0x14] = *(undefined4 *)(param_1 + 0x54)" (subscript_expression "puVar1[0x14]" (identifier "puVar1") ([ "[") (number_literal "0x14") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "puVar1[0x15] = *(undefined4 *)(param_1 + 0x58)" (subscript_expression "puVar1[0x15]" (identifier "puVar1") ([ "[") (number_literal "0x15") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x58)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);" (assignment_expression "puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c)" (subscript_expression "puVar1[0x16]" (identifier "puVar1") ([ "[") (number_literal "0x16") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);" (assignment_expression "puVar1[0x17] = *(undefined4 *)(param_1 + 0x60)" (subscript_expression "puVar1[0x17]" (identifier "puVar1") ([ "[") (number_literal "0x17") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x60)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (if_statement "if (*(char *)(param_1 + 0x2b) != '\x02') {\n    FUN_0002a9e0();\n  }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x2b) != '\x02')" (( "(") (binary_expression "*(char *)(param_1 + 0x2b) != '\x02'" (pointer_expression "*(char *)(param_1 + 0x2b)" (* "*") (cast_expression "(char *)(param_1 + 0x2b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x2b)" (( "(") (binary_expression "param_1 + 0x2b" (identifier "param_1") (+ "+") (number_literal "0x2b")) () ")")))) (!= "!=") (char_literal "'\x02'" (' "'") (escape_sequence "\x02") (' "'"))) () ")")) (compound_statement "{\n    FUN_0002a9e0();\n  }" ({ "{") (expression_statement "FUN_0002a9e0();" (call_expression "FUN_0002a9e0()" (identifier "FUN_0002a9e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "*puVar1 = *(undefined4 *)(param_1 + 0x34);" (assignment_expression "*puVar1 = *(undefined4 *)(param_1 + 0x34)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x34)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x34)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x34)" (( "(") (binary_expression "param_1 + 0x34" (identifier "param_1") (+ "+") (number_literal "0x34")) () ")"))))) (; ";")) (expression_statement "puVar1[1] = *(undefined4 *)(param_1 + 0x38);" (assignment_expression "puVar1[1] = *(undefined4 *)(param_1 + 0x38)" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x38)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x38)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x38)" (( "(") (binary_expression "param_1 + 0x38" (identifier "param_1") (+ "+") (number_literal "0x38")) () ")"))))) (; ";")) (expression_statement "puVar1[2] = *(undefined4 *)(param_1 + 0x3c);" (assignment_expression "puVar1[2] = *(undefined4 *)(param_1 + 0x3c)" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x3c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x3c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x3c)" (( "(") (binary_expression "param_1 + 0x3c" (identifier "param_1") (+ "+") (number_literal "0x3c")) () ")"))))) (; ";")) (expression_statement "puVar1[3] = *(undefined4 *)(param_1 + 0x40);" (assignment_expression "puVar1[3] = *(undefined4 *)(param_1 + 0x40)" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x40)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x40)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x40)" (( "(") (binary_expression "param_1 + 0x40" (identifier "param_1") (+ "+") (number_literal "0x40")) () ")"))))) (; ";")) (expression_statement "puVar1[4] = *(undefined4 *)(param_1 + 0x44);" (assignment_expression "puVar1[4] = *(undefined4 *)(param_1 + 0x44)" (subscript_expression "puVar1[4]" (identifier "puVar1") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x44)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x44)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x44)" (( "(") (binary_expression "param_1 + 0x44" (identifier "param_1") (+ "+") (number_literal "0x44")) () ")"))))) (; ";")) (expression_statement "puVar1[5] = *(undefined4 *)(param_1 + 0x48);" (assignment_expression "puVar1[5] = *(undefined4 *)(param_1 + 0x48)" (subscript_expression "puVar1[5]" (identifier "puVar1") ([ "[") (number_literal "5") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "puVar1[6] = *(undefined4 *)(param_1 + 0x4c);" (assignment_expression "puVar1[6] = *(undefined4 *)(param_1 + 0x4c)" (subscript_expression "puVar1[6]" (identifier "puVar1") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x4c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x4c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4c)" (( "(") (binary_expression "param_1 + 0x4c" (identifier "param_1") (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (expression_statement "puVar1[7] = *(undefined4 *)(param_1 + 0x50);" (assignment_expression "puVar1[7] = *(undefined4 *)(param_1 + 0x50)" (subscript_expression "puVar1[7]" (identifier "puVar1") ([ "[") (number_literal "7") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "puVar1[8] = *(undefined4 *)(param_1 + 0x54);" (assignment_expression "puVar1[8] = *(undefined4 *)(param_1 + 0x54)" (subscript_expression "puVar1[8]" (identifier "puVar1") ([ "[") (number_literal "8") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")"))))) (; ";")) (expression_statement "puVar1[9] = *(undefined4 *)(param_1 + 0x58);" (assignment_expression "puVar1[9] = *(undefined4 *)(param_1 + 0x58)" (subscript_expression "puVar1[9]" (identifier "puVar1") ([ "[") (number_literal "9") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x58)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "puVar1[10] = *(undefined4 *)(param_1 + 0x5c);" (assignment_expression "puVar1[10] = *(undefined4 *)(param_1 + 0x5c)" (subscript_expression "puVar1[10]" (identifier "puVar1") ([ "[") (number_literal "10") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x5c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x5c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x5c)" (( "(") (binary_expression "param_1 + 0x5c" (identifier "param_1") (+ "+") (number_literal "0x5c")) () ")"))))) (; ";")) (expression_statement "puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);" (assignment_expression "puVar1[0xb] = *(undefined4 *)(param_1 + 0x60)" (subscript_expression "puVar1[0xb]" (identifier "puVar1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x60)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void __regparm3 function_1(type_1 *pWal)

{
  type_2 *puVar1;
  type_1 *pWal_1;
  type_2 *var_1;
  type_2 *var_4;
  type_2 var_2;
  type_2 var_3;
  
  puVar1 = *pWal->apWiData;
  (pWal->hdr).isInit = '\x01';
  var_3 = (pWal->hdr).unused + 0x2de218;
  (pWal->hdr).iVersion = 0x2de218;
  var_2 = 0x2de218;
  var_1 = &(pWal->hdr).iChange;
  do {
    var_4 = var_1 + 2;
    var_2 = var_2 + *var_1 + var_3;
    var_3 = var_3 + var_1[1] + var_2;
    var_1 = var_4;
  } while (var_4 != (pWal->hdr).aCksum);
  (pWal->hdr).aCksum[1] = var_3;
  (pWal->hdr).aCksum[0] = var_2;
  puVar1[0xc] = (pWal->hdr).iVersion;
  puVar1[0xd] = (pWal->hdr).unused;
  puVar1[0xe] = (pWal->hdr).iChange;
  puVar1[0xf] = *(type_2 *)&(pWal->hdr).isInit;
  puVar1[0x10] = (pWal->hdr).mxFrame;
  puVar1[0x11] = (pWal->hdr).nPage;
  puVar1[0x12] = (pWal->hdr).aFrameCksum[0];
  puVar1[0x13] = (pWal->hdr).aFrameCksum[1];
  puVar1[0x14] = (pWal->hdr).aSalt[0];
  puVar1[0x15] = (pWal->hdr).aSalt[1];
  puVar1[0x16] = (pWal->hdr).aCksum[0];
  pWal_1 = (type_1 *)(pWal->hdr).aCksum[1];
  puVar1[0x17] = (type_2)pWal_1;
  if (pWal->exclusiveMode != '\x02') {
    var_5((type_1 *)pWal->pDbFd,pWal_1);
  }
  *puVar1 = (pWal->hdr).iVersion;
  puVar1[1] = (pWal->hdr).unused;
  puVar1[2] = (pWal->hdr).iChange;
  puVar1[3] = *(type_2 *)&(pWal->hdr).isInit;
  puVar1[4] = (pWal->hdr).mxFrame;
  puVar1[5] = (pWal->hdr).nPage;
  puVar1[6] = (pWal->hdr).aFrameCksum[0];
  puVar1[7] = (pWal->hdr).aFrameCksum[1];
  puVar1[8] = (pWal->hdr).aSalt[0];
  puVar1[9] = (pWal->hdr).aSalt[1];
  puVar1[10] = (pWal->hdr).aCksum[0];
  puVar1[0xb] = (pWal->hdr).aCksum[1];
  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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) 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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (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)))) (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (pointer_expression argument: (identifier))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (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: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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))))))) (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: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) 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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (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))))))) (return_statement))))

void __regparm3 MASKED(int param_1)

{
  undefined4 *puVar1;
  int *piVar2;
  int *piVar3;
  int iVar4;
  int iVar5;
  
  puVar1 = (undefined4 *)**(int **)(param_1 + 0x20);
  *(undefined1 *)(param_1 + 0x40) = 1;
  iVar5 = *(int *)(param_1 + 0x38) + 0x2de218;
  *(undefined4 *)(param_1 + 0x34) = 0x2de218;
  iVar4 = 0x2de218;
  piVar2 = (int *)(param_1 + 0x3c);
  do {
    piVar3 = piVar2 + 2;
    iVar4 = iVar4 + *piVar2 + iVar5;
    iVar5 = iVar5 + piVar2[1] + iVar4;
    piVar2 = piVar3;
  } while (piVar3 != (int *)(param_1 + 0x5c));
  *(int *)(param_1 + 0x60) = iVar5;
  *(int *)(param_1 + 0x5c) = iVar4;
  puVar1[0xc] = *(undefined4 *)(param_1 + 0x34);
  puVar1[0xd] = *(undefined4 *)(param_1 + 0x38);
  puVar1[0xe] = *(undefined4 *)(param_1 + 0x3c);
  puVar1[0xf] = *(undefined4 *)(param_1 + 0x40);
  puVar1[0x10] = *(undefined4 *)(param_1 + 0x44);
  puVar1[0x11] = *(undefined4 *)(param_1 + 0x48);
  puVar1[0x12] = *(undefined4 *)(param_1 + 0x4c);
  puVar1[0x13] = *(undefined4 *)(param_1 + 0x50);
  puVar1[0x14] = *(undefined4 *)(param_1 + 0x54);
  puVar1[0x15] = *(undefined4 *)(param_1 + 0x58);
  puVar1[0x16] = *(undefined4 *)(param_1 + 0x5c);
  puVar1[0x17] = *(undefined4 *)(param_1 + 0x60);
  if (*(char *)(param_1 + 0x2b) != '\x02') {
    FUN_0002a9e0();
  }
  *puVar1 = *(undefined4 *)(param_1 + 0x34);
  puVar1[1] = *(undefined4 *)(param_1 + 0x38);
  puVar1[2] = *(undefined4 *)(param_1 + 0x3c);
  puVar1[3] = *(undefined4 *)(param_1 + 0x40);
  puVar1[4] = *(undefined4 *)(param_1 + 0x44);
  puVar1[5] = *(undefined4 *)(param_1 + 0x48);
  puVar1[6] = *(undefined4 *)(param_1 + 0x4c);
  puVar1[7] = *(undefined4 *)(param_1 + 0x50);
  puVar1[8] = *(undefined4 *)(param_1 + 0x54);
  puVar1[9] = *(undefined4 *)(param_1 + 0x58);
  puVar1[10] = *(undefined4 *)(param_1 + 0x5c);
  puVar1[0xb] = *(undefined4 *)(param_1 + 0x60);
  return;
}

