#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import struct
import json

# can be found in ~/.local/share/Steam/userdata/119879364/209540/remote
filename = "main.sav"
key = bytearray("tkileyismoarawesome!!!!citationneede", "utf-8")

data = bytearray(open(filename, "rb").read())

header = data[0:40]
crypt  = data[40:]

f = open("main_header.sav", "wb")
f.write(header)
f.close()

version = header[32:36]
version_num = struct.unpack("<L", version)
print("Version: %s" % version_num[0])

length = header[36:40]
length_num = struct.unpack("<L", length)
print("Payload length: %s Bytes" % length_num[0])

output = bytearray()
for i in range(0, len(crypt)):
    keyidx = i % len(key)

    keychar = key[keyidx]
    char    = crypt[i]

    newchar = char ^ keychar

    output.append(newchar)

f = open("main_data.sav", "wb")
f.write(output)
f.close()

json_data = json.loads(str(output, "utf-8"))

json_pretty = json.dumps(json_data, indent=4)

f = open("main_data.sav", "w")
f.write(json_pretty)
f.close()