
void walIndexWriteHdr(Wal *pWal)

{
  u32 *puVar1;
  undefined8 uVar2;
  u32 uVar3;
  
  puVar1 = *pWal->apWiData;
  (pWal->hdr).isInit = '\x01';
  (pWal->hdr).iVersion = 0x2de218;
  walChecksumBytes(1,(u8 *)&pWal->hdr,0x28,(u32 *)0x0,(pWal->hdr).aCksum);
  uVar3 = (pWal->hdr).unused;
  uVar2 = *(undefined8 *)&(pWal->hdr).iChange;
  puVar1[0xc] = (pWal->hdr).iVersion;
  puVar1[0xd] = uVar3;
  *(undefined8 *)(puVar1 + 0xe) = uVar2;
  uVar3 = (pWal->hdr).nPage;
  uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum;
  puVar1[0x10] = (pWal->hdr).mxFrame;
  puVar1[0x11] = uVar3;
  *(undefined8 *)(puVar1 + 0x12) = uVar2;
  uVar2 = *(undefined8 *)(pWal->hdr).aCksum;
  *(undefined8 *)(puVar1 + 0x14) = *(undefined8 *)(pWal->hdr).aSalt;
  *(undefined8 *)(puVar1 + 0x16) = uVar2;
  walShmBarrier(pWal);
  uVar3 = (pWal->hdr).unused;
  uVar2 = *(undefined8 *)&(pWal->hdr).iChange;
  puVar1[0] = (pWal->hdr).iVersion;
  puVar1[1] = uVar3;
  *(undefined8 *)(puVar1 + 2) = uVar2;
  uVar3 = (pWal->hdr).nPage;
  uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum;
  puVar1[4] = (pWal->hdr).mxFrame;
  puVar1[5] = uVar3;
  *(undefined8 *)(puVar1 + 6) = uVar2;
  uVar2 = *(undefined8 *)(pWal->hdr).aCksum;
  *(undefined8 *)(puVar1 + 8) = *(undefined8 *)(pWal->hdr).aSalt;
  *(undefined8 *)(puVar1 + 10) = uVar2;
  return;
}



void FUN_001385d4(long param_1)

{
  undefined8 *puVar1;
  undefined8 uVar2;
  
  puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);
  *(undefined1 *)(param_1 + 0x54) = 1;
  *(undefined4 *)(param_1 + 0x48) = 0x2de218;
  FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);
  uVar2 = *(undefined8 *)(param_1 + 0x50);
  puVar1[6] = *(undefined8 *)(param_1 + 0x48);
  puVar1[7] = uVar2;
  uVar2 = *(undefined8 *)(param_1 + 0x60);
  puVar1[8] = *(undefined8 *)(param_1 + 0x58);
  puVar1[9] = uVar2;
  uVar2 = *(undefined8 *)(param_1 + 0x70);
  puVar1[10] = *(undefined8 *)(param_1 + 0x68);
  puVar1[0xb] = uVar2;
  FUN_0012c93c(param_1);
  uVar2 = *(undefined8 *)(param_1 + 0x50);
  *puVar1 = *(undefined8 *)(param_1 + 0x48);
  puVar1[1] = uVar2;
  uVar2 = *(undefined8 *)(param_1 + 0x60);
  puVar1[2] = *(undefined8 *)(param_1 + 0x58);
  puVar1[3] = uVar2;
  uVar2 = *(undefined8 *)(param_1 + 0x70);
  puVar1[4] = *(undefined8 *)(param_1 + 0x68);
  puVar1[5] = uVar2;
  return;
}


PUSH R12
PUSH RBP
PUSH RBX
MOV RBX,RDI
MOV RAX,qword ptr [RDI + 0x30]
MOV RBP,qword ptr [RAX]
MOV byte ptr [RDI + 0x54],0x1
MOV dword ptr [RDI + 0x48],0x2de218
LEA R12,[RDI + 0x48]
LEA R8,[RDI + 0x70]
MOV ECX,0x0
MOV EDX,0x28
MOV RSI,R12
MOV EDI,0x1
CALL 0x0012c883
MOVDQU XMM0,xmmword ptr [RBX + 0x48]
MOVUPS xmmword ptr [RBP + 0x30],XMM0
MOVDQU XMM1,xmmword ptr [RBX + 0x58]
MOVUPS xmmword ptr [RBP + 0x40],XMM1
MOVDQU XMM2,xmmword ptr [RBX + 0x68]
MOVUPS xmmword ptr [RBP + 0x50],XMM2
MOV RDI,RBX
CALL 0x0012c93c
MOVDQU XMM3,xmmword ptr [RBX + 0x48]
MOVUPS xmmword ptr [RBP],XMM3
MOVDQU XMM4,xmmword ptr [RBX + 0x58]
MOVUPS xmmword ptr [RBP + 0x10],XMM4
MOVDQU XMM5,xmmword ptr [RBX + 0x68]
MOVUPS xmmword ptr [RBP + 0x20],XMM5
POP RBX
POP RBP
POP R12
RET
(translation_unit "void FUN_001385d4(long param_1)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);\n  *(undefined1 *)(param_1 + 0x54) = 1;\n  *(undefined4 *)(param_1 + 0x48) = 0x2de218;\n  FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  puVar1[6] = *(undefined8 *)(param_1 + 0x48);\n  puVar1[7] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[8] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[9] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[10] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[0xb] = uVar2;\n  FUN_0012c93c(param_1);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  *puVar1 = *(undefined8 *)(param_1 + 0x48);\n  puVar1[1] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[2] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[3] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[4] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[5] = uVar2;\n  return;\n}\n\n" (function_definition "void FUN_001385d4(long param_1)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);\n  *(undefined1 *)(param_1 + 0x54) = 1;\n  *(undefined4 *)(param_1 + 0x48) = 0x2de218;\n  FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  puVar1[6] = *(undefined8 *)(param_1 + 0x48);\n  puVar1[7] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[8] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[9] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[10] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[0xb] = uVar2;\n  FUN_0012c93c(param_1);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  *puVar1 = *(undefined8 *)(param_1 + 0x48);\n  puVar1[1] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[2] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[3] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[4] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[5] = uVar2;\n  return;\n}" primitive_type (function_declarator "FUN_001385d4(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);\n  *(undefined1 *)(param_1 + 0x54) = 1;\n  *(undefined4 *)(param_1 + 0x48) = 0x2de218;\n  FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  puVar1[6] = *(undefined8 *)(param_1 + 0x48);\n  puVar1[7] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[8] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[9] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[10] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[0xb] = uVar2;\n  FUN_0012c93c(param_1);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  *puVar1 = *(undefined8 *)(param_1 + 0x48);\n  puVar1[1] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[2] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[3] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[4] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[5] = uVar2;\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (expression_statement "puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);" (assignment_expression "puVar1 = (undefined8 *)**(long **)(param_1 + 0x30)" identifier = (cast_expression "(undefined8 *)**(long **)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(long **)(param_1 + 0x30)" * (pointer_expression "*(long **)(param_1 + 0x30)" * (cast_expression "(long **)(param_1 + 0x30)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x54) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x54) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x54)" * (cast_expression "(undefined1 *)(param_1 + 0x54)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x48) = 0x2de218;" (assignment_expression "*(undefined4 *)(param_1 + 0x48) = 0x2de218" (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) )))) = number_literal) ;) (expression_statement "FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);" (call_expression "FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70)" identifier (argument_list "(1,param_1 + 0x48,0x28,0,param_1 + 0x70)" ( number_literal , (binary_expression "param_1 + 0x48" identifier + number_literal) , number_literal , number_literal , (binary_expression "param_1 + 0x70" identifier + number_literal) ))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar1[6] = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "puVar1[6] = *(undefined8 *)(param_1 + 0x48)" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar1[7] = uVar2;" (assignment_expression "puVar1[7] = uVar2" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x60)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x60)" * (cast_expression "(undefined8 *)(param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "puVar1[8] = *(undefined8 *)(param_1 + 0x58);" (assignment_expression "puVar1[8] = *(undefined8 *)(param_1 + 0x58)" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(param_1 + 0x58)" * (cast_expression "(undefined8 *)(param_1 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar1[9] = uVar2;" (assignment_expression "puVar1[9] = uVar2" (subscript_expression "puVar1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x70)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x70)" * (cast_expression "(undefined8 *)(param_1 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "puVar1[10] = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "puVar1[10] = *(undefined8 *)(param_1 + 0x68)" (subscript_expression "puVar1[10]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0xb] = uVar2;" (assignment_expression "puVar1[0xb] = uVar2" (subscript_expression "puVar1[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0012c93c(param_1);" (call_expression "FUN_0012c93c(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*puVar1 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "*puVar1 = *(undefined8 *)(param_1 + 0x48)" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar1[1] = uVar2;" (assignment_expression "puVar1[1] = uVar2" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x60)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x60)" * (cast_expression "(undefined8 *)(param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "puVar1[2] = *(undefined8 *)(param_1 + 0x58);" (assignment_expression "puVar1[2] = *(undefined8 *)(param_1 + 0x58)" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(param_1 + 0x58)" * (cast_expression "(undefined8 *)(param_1 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar1[3] = uVar2;" (assignment_expression "puVar1[3] = uVar2" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x70)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x70)" * (cast_expression "(undefined8 *)(param_1 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "puVar1[4] = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "puVar1[4] = *(undefined8 *)(param_1 + 0x68)" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "puVar1[5] = uVar2;" (assignment_expression "puVar1[5] = uVar2" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void walIndexWriteHdr(Wal *pWal)\n\n{\n  u32 *puVar1;\n  undefined8 uVar2;\n  u32 uVar3;\n  \n  puVar1 = *pWal->apWiData;\n  (pWal->hdr).isInit = '\x01';\n  (pWal->hdr).iVersion = 0x2de218;\n  walChecksumBytes(1,(u8 *)&pWal->hdr,0x28,(u32 *)0x0,(pWal->hdr).aCksum);\n  uVar3 = (pWal->hdr).unused;\n  uVar2 = *(undefined8 *)&(pWal->hdr).iChange;\n  puVar1[0xc] = (pWal->hdr).iVersion;\n  puVar1[0xd] = uVar3;\n  *(undefined8 *)(puVar1 + 0xe) = uVar2;\n  uVar3 = (pWal->hdr).nPage;\n  uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum;\n  puVar1[0x10] = (pWal->hdr).mxFrame;\n  puVar1[0x11] = uVar3;\n  *(undefined8 *)(puVar1 + 0x12) = uVar2;\n  uVar2 = *(undefined8 *)(pWal->hdr).aCksum;\n  *(undefined8 *)(puVar1 + 0x14) = *(undefined8 *)(pWal->hdr).aSalt;\n  *(undefined8 *)(puVar1 + 0x16) = uVar2;\n  walShmBarrier(pWal);\n  uVar3 = (pWal->hdr).unused;\n  uVar2 = *(undefined8 *)&(pWal->hdr).iChange;\n  puVar1[0] = (pWal->hdr).iVersion;\n  puVar1[1] = uVar3;\n  *(undefined8 *)(puVar1 + 2) = uVar2;\n  uVar3 = (pWal->hdr).nPage;\n  uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum;\n  puVar1[4] = (pWal->hdr).mxFrame;\n  puVar1[5] = uVar3;\n  *(undefined8 *)(puVar1 + 6) = uVar2;\n  uVar2 = *(undefined8 *)(pWal->hdr).aCksum;\n  *(undefined8 *)(puVar1 + 8) = *(undefined8 *)(pWal->hdr).aSalt;\n  *(undefined8 *)(puVar1 + 10) = uVar2;\n  return;\n}\n\n" (function_definition "void walIndexWriteHdr(Wal *pWal)\n\n{\n  u32 *puVar1;\n  undefined8 uVar2;\n  u32 uVar3;\n  \n  puVar1 = *pWal->apWiData;\n  (pWal->hdr).isInit = '\x01';\n  (pWal->hdr).iVersion = 0x2de218;\n  walChecksumBytes(1,(u8 *)&pWal->hdr,0x28,(u32 *)0x0,(pWal->hdr).aCksum);\n  uVar3 = (pWal->hdr).unused;\n  uVar2 = *(undefined8 *)&(pWal->hdr).iChange;\n  puVar1[0xc] = (pWal->hdr).iVersion;\n  puVar1[0xd] = uVar3;\n  *(undefined8 *)(puVar1 + 0xe) = uVar2;\n  uVar3 = (pWal->hdr).nPage;\n  uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum;\n  puVar1[0x10] = (pWal->hdr).mxFrame;\n  puVar1[0x11] = uVar3;\n  *(undefined8 *)(puVar1 + 0x12) = uVar2;\n  uVar2 = *(undefined8 *)(pWal->hdr).aCksum;\n  *(undefined8 *)(puVar1 + 0x14) = *(undefined8 *)(pWal->hdr).aSalt;\n  *(undefined8 *)(puVar1 + 0x16) = uVar2;\n  walShmBarrier(pWal);\n  uVar3 = (pWal->hdr).unused;\n  uVar2 = *(undefined8 *)&(pWal->hdr).iChange;\n  puVar1[0] = (pWal->hdr).iVersion;\n  puVar1[1] = uVar3;\n  *(undefined8 *)(puVar1 + 2) = uVar2;\n  uVar3 = (pWal->hdr).nPage;\n  uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum;\n  puVar1[4] = (pWal->hdr).mxFrame;\n  puVar1[5] = uVar3;\n  *(undefined8 *)(puVar1 + 6) = uVar2;\n  uVar2 = *(undefined8 *)(pWal->hdr).aCksum;\n  *(undefined8 *)(puVar1 + 8) = *(undefined8 *)(pWal->hdr).aSalt;\n  *(undefined8 *)(puVar1 + 10) = uVar2;\n  return;\n}" primitive_type (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  undefined8 uVar2;\n  u32 uVar3;\n  \n  puVar1 = *pWal->apWiData;\n  (pWal->hdr).isInit = '\x01';\n  (pWal->hdr).iVersion = 0x2de218;\n  walChecksumBytes(1,(u8 *)&pWal->hdr,0x28,(u32 *)0x0,(pWal->hdr).aCksum);\n  uVar3 = (pWal->hdr).unused;\n  uVar2 = *(undefined8 *)&(pWal->hdr).iChange;\n  puVar1[0xc] = (pWal->hdr).iVersion;\n  puVar1[0xd] = uVar3;\n  *(undefined8 *)(puVar1 + 0xe) = uVar2;\n  uVar3 = (pWal->hdr).nPage;\n  uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum;\n  puVar1[0x10] = (pWal->hdr).mxFrame;\n  puVar1[0x11] = uVar3;\n  *(undefined8 *)(puVar1 + 0x12) = uVar2;\n  uVar2 = *(undefined8 *)(pWal->hdr).aCksum;\n  *(undefined8 *)(puVar1 + 0x14) = *(undefined8 *)(pWal->hdr).aSalt;\n  *(undefined8 *)(puVar1 + 0x16) = uVar2;\n  walShmBarrier(pWal);\n  uVar3 = (pWal->hdr).unused;\n  uVar2 = *(undefined8 *)&(pWal->hdr).iChange;\n  puVar1[0] = (pWal->hdr).iVersion;\n  puVar1[1] = uVar3;\n  *(undefined8 *)(puVar1 + 2) = uVar2;\n  uVar3 = (pWal->hdr).nPage;\n  uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum;\n  puVar1[4] = (pWal->hdr).mxFrame;\n  puVar1[5] = uVar3;\n  *(undefined8 *)(puVar1 + 6) = uVar2;\n  uVar2 = *(undefined8 *)(pWal->hdr).aCksum;\n  *(undefined8 *)(puVar1 + 8) = *(undefined8 *)(pWal->hdr).aSalt;\n  *(undefined8 *)(puVar1 + 10) = uVar2;\n  return;\n}" { (declaration "u32 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "u32 uVar3;" 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 "(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 "walChecksumBytes(1,(u8 *)&pWal->hdr,0x28,(u32 *)0x0,(pWal->hdr).aCksum);" (call_expression "walChecksumBytes(1,(u8 *)&pWal->hdr,0x28,(u32 *)0x0,(pWal->hdr).aCksum)" identifier (argument_list "(1,(u8 *)&pWal->hdr,0x28,(u32 *)0x0,(pWal->hdr).aCksum)" ( number_literal , (cast_expression "(u8 *)&pWal->hdr" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pWal->hdr" & (field_expression "pWal->hdr" identifier -> field_identifier))) , number_literal , (cast_expression "(u32 *)0x0" ( (type_descriptor "u32 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (field_expression "(pWal->hdr).aCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "uVar3 = (pWal->hdr).unused;" (assignment_expression "uVar3 = (pWal->hdr).unused" identifier = (field_expression "(pWal->hdr).unused" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar2 = *(undefined8 *)&(pWal->hdr).iChange;" (assignment_expression "uVar2 = *(undefined8 *)&(pWal->hdr).iChange" identifier = (pointer_expression "*(undefined8 *)&(pWal->hdr).iChange" * (cast_expression "(undefined8 *)&(pWal->hdr).iChange" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pWal->hdr).iChange" & (field_expression "(pWal->hdr).iChange" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_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] = uVar3;" (assignment_expression "puVar1[0xd] = uVar3" (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)(puVar1 + 0xe) = uVar2;" (assignment_expression "*(undefined8 *)(puVar1 + 0xe) = uVar2" (pointer_expression "*(undefined8 *)(puVar1 + 0xe)" * (cast_expression "(undefined8 *)(puVar1 + 0xe)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0xe)" ( (binary_expression "puVar1 + 0xe" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = (pWal->hdr).nPage;" (assignment_expression "uVar3 = (pWal->hdr).nPage" identifier = (field_expression "(pWal->hdr).nPage" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum;" (assignment_expression "uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum" identifier = (pointer_expression "*(undefined8 *)(pWal->hdr).aFrameCksum" * (cast_expression "(undefined8 *)(pWal->hdr).aFrameCksum" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pWal->hdr).aFrameCksum" (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] = uVar3;" (assignment_expression "puVar1[0x11] = uVar3" (subscript_expression "puVar1[0x11]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)(puVar1 + 0x12) = uVar2;" (assignment_expression "*(undefined8 *)(puVar1 + 0x12) = uVar2" (pointer_expression "*(undefined8 *)(puVar1 + 0x12)" * (cast_expression "(undefined8 *)(puVar1 + 0x12)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x12)" ( (binary_expression "puVar1 + 0x12" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(pWal->hdr).aCksum;" (assignment_expression "uVar2 = *(undefined8 *)(pWal->hdr).aCksum" identifier = (pointer_expression "*(undefined8 *)(pWal->hdr).aCksum" * (cast_expression "(undefined8 *)(pWal->hdr).aCksum" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pWal->hdr).aCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "*(undefined8 *)(puVar1 + 0x14) = *(undefined8 *)(pWal->hdr).aSalt;" (assignment_expression "*(undefined8 *)(puVar1 + 0x14) = *(undefined8 *)(pWal->hdr).aSalt" (pointer_expression "*(undefined8 *)(puVar1 + 0x14)" * (cast_expression "(undefined8 *)(puVar1 + 0x14)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x14)" ( (binary_expression "puVar1 + 0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(pWal->hdr).aSalt" * (cast_expression "(undefined8 *)(pWal->hdr).aSalt" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pWal->hdr).aSalt" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "*(undefined8 *)(puVar1 + 0x16) = uVar2;" (assignment_expression "*(undefined8 *)(puVar1 + 0x16) = uVar2" (pointer_expression "*(undefined8 *)(puVar1 + 0x16)" * (cast_expression "(undefined8 *)(puVar1 + 0x16)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 0x16)" ( (binary_expression "puVar1 + 0x16" identifier + number_literal) )))) = identifier) ;) (expression_statement "walShmBarrier(pWal);" (call_expression "walShmBarrier(pWal)" identifier (argument_list "(pWal)" ( identifier ))) ;) (expression_statement "uVar3 = (pWal->hdr).unused;" (assignment_expression "uVar3 = (pWal->hdr).unused" identifier = (field_expression "(pWal->hdr).unused" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar2 = *(undefined8 *)&(pWal->hdr).iChange;" (assignment_expression "uVar2 = *(undefined8 *)&(pWal->hdr).iChange" identifier = (pointer_expression "*(undefined8 *)&(pWal->hdr).iChange" * (cast_expression "(undefined8 *)&(pWal->hdr).iChange" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(pWal->hdr).iChange" & (field_expression "(pWal->hdr).iChange" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier))))) ;) (expression_statement "puVar1[0] = (pWal->hdr).iVersion;" (assignment_expression "puVar1[0] = (pWal->hdr).iVersion" (subscript_expression "puVar1[0]" identifier [ number_literal ]) = (field_expression "(pWal->hdr).iVersion" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "puVar1[1] = uVar3;" (assignment_expression "puVar1[1] = uVar3" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)(puVar1 + 2) = uVar2;" (assignment_expression "*(undefined8 *)(puVar1 + 2) = uVar2" (pointer_expression "*(undefined8 *)(puVar1 + 2)" * (cast_expression "(undefined8 *)(puVar1 + 2)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 2)" ( (binary_expression "puVar1 + 2" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar3 = (pWal->hdr).nPage;" (assignment_expression "uVar3 = (pWal->hdr).nPage" identifier = (field_expression "(pWal->hdr).nPage" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum;" (assignment_expression "uVar2 = *(undefined8 *)(pWal->hdr).aFrameCksum" identifier = (pointer_expression "*(undefined8 *)(pWal->hdr).aFrameCksum" * (cast_expression "(undefined8 *)(pWal->hdr).aFrameCksum" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pWal->hdr).aFrameCksum" (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] = uVar3;" (assignment_expression "puVar1[5] = uVar3" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "*(undefined8 *)(puVar1 + 6) = uVar2;" (assignment_expression "*(undefined8 *)(puVar1 + 6) = uVar2" (pointer_expression "*(undefined8 *)(puVar1 + 6)" * (cast_expression "(undefined8 *)(puVar1 + 6)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 6)" ( (binary_expression "puVar1 + 6" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(pWal->hdr).aCksum;" (assignment_expression "uVar2 = *(undefined8 *)(pWal->hdr).aCksum" identifier = (pointer_expression "*(undefined8 *)(pWal->hdr).aCksum" * (cast_expression "(undefined8 *)(pWal->hdr).aCksum" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pWal->hdr).aCksum" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "*(undefined8 *)(puVar1 + 8) = *(undefined8 *)(pWal->hdr).aSalt;" (assignment_expression "*(undefined8 *)(puVar1 + 8) = *(undefined8 *)(pWal->hdr).aSalt" (pointer_expression "*(undefined8 *)(puVar1 + 8)" * (cast_expression "(undefined8 *)(puVar1 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 8)" ( (binary_expression "puVar1 + 8" identifier + number_literal) )))) = (pointer_expression "*(undefined8 *)(pWal->hdr).aSalt" * (cast_expression "(undefined8 *)(pWal->hdr).aSalt" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "(pWal->hdr).aSalt" (parenthesized_expression "(pWal->hdr)" ( (field_expression "pWal->hdr" identifier -> field_identifier) )) . field_identifier)))) ;) (expression_statement "*(undefined8 *)(puVar1 + 10) = uVar2;" (assignment_expression "*(undefined8 *)(puVar1 + 10) = uVar2" (pointer_expression "*(undefined8 *)(puVar1 + 10)" * (cast_expression "(undefined8 *)(puVar1 + 10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar1 + 10)" ( (binary_expression "puVar1 + 10" identifier + number_literal) )))) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_001385d4(long param_1)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);\n  *(undefined1 *)(param_1 + 0x54) = 1;\n  *(undefined4 *)(param_1 + 0x48) = 0x2de218;\n  FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  puVar1[6] = *(undefined8 *)(param_1 + 0x48);\n  puVar1[7] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[8] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[9] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[10] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[0xb] = uVar2;\n  FUN_0012c93c(param_1);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  *puVar1 = *(undefined8 *)(param_1 + 0x48);\n  puVar1[1] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[2] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[3] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[4] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[5] = uVar2;\n  return;\n}\n\n" (function_definition "void FUN_001385d4(long param_1)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);\n  *(undefined1 *)(param_1 + 0x54) = 1;\n  *(undefined4 *)(param_1 + 0x48) = 0x2de218;\n  FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  puVar1[6] = *(undefined8 *)(param_1 + 0x48);\n  puVar1[7] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[8] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[9] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[10] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[0xb] = uVar2;\n  FUN_0012c93c(param_1);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  *puVar1 = *(undefined8 *)(param_1 + 0x48);\n  puVar1[1] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[2] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[3] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[4] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[5] = uVar2;\n  return;\n}" primitive_type (function_declarator "FUN_001385d4(long param_1)" identifier (parameter_list "(long param_1)" ( (parameter_declaration "long param_1" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);\n  *(undefined1 *)(param_1 + 0x54) = 1;\n  *(undefined4 *)(param_1 + 0x48) = 0x2de218;\n  FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  puVar1[6] = *(undefined8 *)(param_1 + 0x48);\n  puVar1[7] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[8] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[9] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[10] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[0xb] = uVar2;\n  FUN_0012c93c(param_1);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  *puVar1 = *(undefined8 *)(param_1 + 0x48);\n  puVar1[1] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[2] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[3] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[4] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[5] = uVar2;\n  return;\n}" { (declaration "undefined8 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (expression_statement "puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);" (assignment_expression "puVar1 = (undefined8 *)**(long **)(param_1 + 0x30)" identifier = (cast_expression "(undefined8 *)**(long **)(param_1 + 0x30)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(long **)(param_1 + 0x30)" * (pointer_expression "*(long **)(param_1 + 0x30)" * (cast_expression "(long **)(param_1 + 0x30)" ( (type_descriptor "long **" (sized_type_specifier "long" long) (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x30)" ( (binary_expression "param_1 + 0x30" identifier + number_literal) ))))))) ;) (expression_statement "*(undefined1 *)(param_1 + 0x54) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x54) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x54)" * (cast_expression "(undefined1 *)(param_1 + 0x54)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x54)" ( (binary_expression "param_1 + 0x54" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x48) = 0x2de218;" (assignment_expression "*(undefined4 *)(param_1 + 0x48) = 0x2de218" (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) )))) = number_literal) ;) (expression_statement "FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);" (call_expression "FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70)" identifier (argument_list "(1,param_1 + 0x48,0x28,0,param_1 + 0x70)" ( number_literal , (binary_expression "param_1 + 0x48" identifier + number_literal) , number_literal , number_literal , (binary_expression "param_1 + 0x70" identifier + number_literal) ))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "puVar1[6] = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "puVar1[6] = *(undefined8 *)(param_1 + 0x48)" (subscript_expression "puVar1[6]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar1[7] = uVar2;" (assignment_expression "puVar1[7] = uVar2" (subscript_expression "puVar1[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x60)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x60)" * (cast_expression "(undefined8 *)(param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "puVar1[8] = *(undefined8 *)(param_1 + 0x58);" (assignment_expression "puVar1[8] = *(undefined8 *)(param_1 + 0x58)" (subscript_expression "puVar1[8]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(param_1 + 0x58)" * (cast_expression "(undefined8 *)(param_1 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar1[9] = uVar2;" (assignment_expression "puVar1[9] = uVar2" (subscript_expression "puVar1[9]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x70)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x70)" * (cast_expression "(undefined8 *)(param_1 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "puVar1[10] = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "puVar1[10] = *(undefined8 *)(param_1 + 0x68)" (subscript_expression "puVar1[10]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "puVar1[0xb] = uVar2;" (assignment_expression "puVar1[0xb] = uVar2" (subscript_expression "puVar1[0xb]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0012c93c(param_1);" (call_expression "FUN_0012c93c(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x50)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x50)" * (cast_expression "(undefined8 *)(param_1 + 0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) ))))) ;) (expression_statement "*puVar1 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "*puVar1 = *(undefined8 *)(param_1 + 0x48)" (pointer_expression "*puVar1" * identifier) = (pointer_expression "*(undefined8 *)(param_1 + 0x48)" * (cast_expression "(undefined8 *)(param_1 + 0x48)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x48)" ( (binary_expression "param_1 + 0x48" identifier + number_literal) ))))) ;) (expression_statement "puVar1[1] = uVar2;" (assignment_expression "puVar1[1] = uVar2" (subscript_expression "puVar1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x60)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x60)" * (cast_expression "(undefined8 *)(param_1 + 0x60)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x60)" ( (binary_expression "param_1 + 0x60" identifier + number_literal) ))))) ;) (expression_statement "puVar1[2] = *(undefined8 *)(param_1 + 0x58);" (assignment_expression "puVar1[2] = *(undefined8 *)(param_1 + 0x58)" (subscript_expression "puVar1[2]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(param_1 + 0x58)" * (cast_expression "(undefined8 *)(param_1 + 0x58)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x58)" ( (binary_expression "param_1 + 0x58" identifier + number_literal) ))))) ;) (expression_statement "puVar1[3] = uVar2;" (assignment_expression "puVar1[3] = uVar2" (subscript_expression "puVar1[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x70)" identifier = (pointer_expression "*(undefined8 *)(param_1 + 0x70)" * (cast_expression "(undefined8 *)(param_1 + 0x70)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x70)" ( (binary_expression "param_1 + 0x70" identifier + number_literal) ))))) ;) (expression_statement "puVar1[4] = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "puVar1[4] = *(undefined8 *)(param_1 + 0x68)" (subscript_expression "puVar1[4]" identifier [ number_literal ]) = (pointer_expression "*(undefined8 *)(param_1 + 0x68)" * (cast_expression "(undefined8 *)(param_1 + 0x68)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x68)" ( (binary_expression "param_1 + 0x68" identifier + number_literal) ))))) ;) (expression_statement "puVar1[5] = uVar2;" (assignment_expression "puVar1[5] = uVar2" (subscript_expression "puVar1[5]" identifier [ number_literal ]) = identifier) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * 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 (sized_type_specifier long) (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , LIT , LIT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_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 ]) = IDENT) ;) (expression_statement (assignment_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 ]) = IDENT) ;) (expression_statement (assignment_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 ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 ]) = IDENT) ;) (expression_statement (assignment_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 ]) = IDENT) ;) (expression_statement (assignment_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 ]) = IDENT) ;) (return_statement return ;) })))
(function_definition "void FUN_001385d4(long param_1)\n\n{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);\n  *(undefined1 *)(param_1 + 0x54) = 1;\n  *(undefined4 *)(param_1 + 0x48) = 0x2de218;\n  FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  puVar1[6] = *(undefined8 *)(param_1 + 0x48);\n  puVar1[7] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[8] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[9] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[10] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[0xb] = uVar2;\n  FUN_0012c93c(param_1);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  *puVar1 = *(undefined8 *)(param_1 + 0x48);\n  puVar1[1] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[2] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[3] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[4] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[5] = uVar2;\n  return;\n}" (primitive_type "void") (function_declarator "FUN_001385d4(long param_1)" (identifier "FUN_001385d4") (parameter_list "(long param_1)" (( "(") (parameter_declaration "long param_1" (sized_type_specifier "long" (long "long")) (identifier "param_1")) () ")"))) (compound_statement "{\n  undefined8 *puVar1;\n  undefined8 uVar2;\n  \n  puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);\n  *(undefined1 *)(param_1 + 0x54) = 1;\n  *(undefined4 *)(param_1 + 0x48) = 0x2de218;\n  FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  puVar1[6] = *(undefined8 *)(param_1 + 0x48);\n  puVar1[7] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[8] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[9] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[10] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[0xb] = uVar2;\n  FUN_0012c93c(param_1);\n  uVar2 = *(undefined8 *)(param_1 + 0x50);\n  *puVar1 = *(undefined8 *)(param_1 + 0x48);\n  puVar1[1] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x60);\n  puVar1[2] = *(undefined8 *)(param_1 + 0x58);\n  puVar1[3] = uVar2;\n  uVar2 = *(undefined8 *)(param_1 + 0x70);\n  puVar1[4] = *(undefined8 *)(param_1 + 0x68);\n  puVar1[5] = uVar2;\n  return;\n}" ({ "{") (declaration "undefined8 *puVar1;" (type_identifier "undefined8") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (expression_statement "puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);" (assignment_expression "puVar1 = (undefined8 *)**(long **)(param_1 + 0x30)" (identifier "puVar1") (= "=") (cast_expression "(undefined8 *)**(long **)(param_1 + 0x30)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(long **)(param_1 + 0x30)" (* "*") (pointer_expression "*(long **)(param_1 + 0x30)" (* "*") (cast_expression "(long **)(param_1 + 0x30)" (( "(") (type_descriptor "long **" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x30)" (( "(") (binary_expression "param_1 + 0x30" (identifier "param_1") (+ "+") (number_literal "0x30")) () ")"))))))) (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0x54) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0x54) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0x54)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x54)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x54)" (( "(") (binary_expression "param_1 + 0x54" (identifier "param_1") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x48) = 0x2de218;" (assignment_expression "*(undefined4 *)(param_1 + 0x48) = 0x2de218" (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")) () ")")))) (= "=") (number_literal "0x2de218")) (; ";")) (expression_statement "FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);" (call_expression "FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70)" (identifier "FUN_0012c883") (argument_list "(1,param_1 + 0x48,0x28,0,param_1 + 0x70)" (( "(") (number_literal "1") (, ",") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) (, ",") (number_literal "0x28") (, ",") (number_literal "0") (, ",") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x50)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "puVar1[6] = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "puVar1[6] = *(undefined8 *)(param_1 + 0x48)" (subscript_expression "puVar1[6]" (identifier "puVar1") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "puVar1[7] = uVar2;" (assignment_expression "puVar1[7] = uVar2" (subscript_expression "puVar1[7]" (identifier "puVar1") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x60)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x60)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x60)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "puVar1[8] = *(undefined8 *)(param_1 + 0x58);" (assignment_expression "puVar1[8] = *(undefined8 *)(param_1 + 0x58)" (subscript_expression "puVar1[8]" (identifier "puVar1") ([ "[") (number_literal "8") (] "]")) (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x58)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "puVar1[9] = uVar2;" (assignment_expression "puVar1[9] = uVar2" (subscript_expression "puVar1[9]" (identifier "puVar1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x70)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x70)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x70)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "puVar1[10] = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "puVar1[10] = *(undefined8 *)(param_1 + 0x68)" (subscript_expression "puVar1[10]" (identifier "puVar1") ([ "[") (number_literal "10") (] "]")) (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "puVar1[0xb] = uVar2;" (assignment_expression "puVar1[0xb] = uVar2" (subscript_expression "puVar1[0xb]" (identifier "puVar1") ([ "[") (number_literal "0xb") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "FUN_0012c93c(param_1);" (call_expression "FUN_0012c93c(param_1)" (identifier "FUN_0012c93c") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x50);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x50)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x50)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")"))))) (; ";")) (expression_statement "*puVar1 = *(undefined8 *)(param_1 + 0x48);" (assignment_expression "*puVar1 = *(undefined8 *)(param_1 + 0x48)" (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x48)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x48)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x48)" (( "(") (binary_expression "param_1 + 0x48" (identifier "param_1") (+ "+") (number_literal "0x48")) () ")"))))) (; ";")) (expression_statement "puVar1[1] = uVar2;" (assignment_expression "puVar1[1] = uVar2" (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x60);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x60)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x60)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x60)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x60)" (( "(") (binary_expression "param_1 + 0x60" (identifier "param_1") (+ "+") (number_literal "0x60")) () ")"))))) (; ";")) (expression_statement "puVar1[2] = *(undefined8 *)(param_1 + 0x58);" (assignment_expression "puVar1[2] = *(undefined8 *)(param_1 + 0x58)" (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x58)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x58)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x58)" (( "(") (binary_expression "param_1 + 0x58" (identifier "param_1") (+ "+") (number_literal "0x58")) () ")"))))) (; ";")) (expression_statement "puVar1[3] = uVar2;" (assignment_expression "puVar1[3] = uVar2" (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar2 = *(undefined8 *)(param_1 + 0x70);" (assignment_expression "uVar2 = *(undefined8 *)(param_1 + 0x70)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x70)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x70)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x70)" (( "(") (binary_expression "param_1 + 0x70" (identifier "param_1") (+ "+") (number_literal "0x70")) () ")"))))) (; ";")) (expression_statement "puVar1[4] = *(undefined8 *)(param_1 + 0x68);" (assignment_expression "puVar1[4] = *(undefined8 *)(param_1 + 0x68)" (subscript_expression "puVar1[4]" (identifier "puVar1") ([ "[") (number_literal "4") (] "]")) (= "=") (pointer_expression "*(undefined8 *)(param_1 + 0x68)" (* "*") (cast_expression "(undefined8 *)(param_1 + 0x68)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x68)" (( "(") (binary_expression "param_1 + 0x68" (identifier "param_1") (+ "+") (number_literal "0x68")) () ")"))))) (; ";")) (expression_statement "puVar1[5] = uVar2;" (assignment_expression "puVar1[5] = uVar2" (subscript_expression "puVar1[5]" (identifier "puVar1") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "uVar2")) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *pWal)

{
  type_2 *var_2;
  type_3 uVar2;
  type_2 uVar3;
  
  var_2 = *pWal->apWiData;
  (pWal->hdr).isInit = '\x01';
  (pWal->hdr).iVersion = 0x2de218;
  var_1(1,(type_4 *)&pWal->hdr,0x28,(type_2 *)0x0,(pWal->hdr).aCksum);
  uVar3 = (pWal->hdr).unused;
  uVar2 = *(type_3 *)&(pWal->hdr).iChange;
  var_2[0xc] = (pWal->hdr).iVersion;
  var_2[0xd] = uVar3;
  *(type_3 *)(var_2 + 0xe) = uVar2;
  uVar3 = (pWal->hdr).nPage;
  uVar2 = *(type_3 *)(pWal->hdr).aFrameCksum;
  var_2[0x10] = (pWal->hdr).mxFrame;
  var_2[0x11] = uVar3;
  *(type_3 *)(var_2 + 0x12) = uVar2;
  uVar2 = *(type_3 *)(pWal->hdr).aCksum;
  *(type_3 *)(var_2 + 0x14) = *(type_3 *)(pWal->hdr).aSalt;
  *(type_3 *)(var_2 + 0x16) = uVar2;
  var_3(pWal);
  uVar3 = (pWal->hdr).unused;
  uVar2 = *(type_3 *)&(pWal->hdr).iChange;
  var_2[0] = (pWal->hdr).iVersion;
  var_2[1] = uVar3;
  *(type_3 *)(var_2 + 2) = uVar2;
  uVar3 = (pWal->hdr).nPage;
  uVar2 = *(type_3 *)(pWal->hdr).aFrameCksum;
  var_2[4] = (pWal->hdr).mxFrame;
  var_2[5] = uVar3;
  *(type_3 *)(var_2 + 6) = uVar2;
  uVar2 = *(type_3 *)(pWal->hdr).aCksum;
  *(type_3 *)(var_2 + 8) = *(type_3 *)(pWal->hdr).aSalt;
  *(type_3 *)(var_2 + 10) = uVar2;
  return;
}


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

void MASKED(long param_1)

{
  undefined8 *puVar1;
  undefined8 uVar2;
  
  puVar1 = (undefined8 *)**(long **)(param_1 + 0x30);
  *(undefined1 *)(param_1 + 0x54) = 1;
  *(undefined4 *)(param_1 + 0x48) = 0x2de218;
  FUN_0012c883(1,param_1 + 0x48,0x28,0,param_1 + 0x70);
  uVar2 = *(undefined8 *)(param_1 + 0x50);
  puVar1[6] = *(undefined8 *)(param_1 + 0x48);
  puVar1[7] = uVar2;
  uVar2 = *(undefined8 *)(param_1 + 0x60);
  puVar1[8] = *(undefined8 *)(param_1 + 0x58);
  puVar1[9] = uVar2;
  uVar2 = *(undefined8 *)(param_1 + 0x70);
  puVar1[10] = *(undefined8 *)(param_1 + 0x68);
  puVar1[0xb] = uVar2;
  FUN_0012c93c(param_1);
  uVar2 = *(undefined8 *)(param_1 + 0x50);
  *puVar1 = *(undefined8 *)(param_1 + 0x48);
  puVar1[1] = uVar2;
  uVar2 = *(undefined8 *)(param_1 + 0x60);
  puVar1[2] = *(undefined8 *)(param_1 + 0x58);
  puVar1[3] = uVar2;
  uVar2 = *(undefined8 *)(param_1 + 0x70);
  puVar1[4] = *(undefined8 *)(param_1 + 0x68);
  puVar1[5] = uVar2;
  return;
}

