"""The settings struct starts at object+0x28 (FUN_18014e590 passes param_1+0x28
to the deser). Two functions outside the locator name the service id 0xed84b11:
0x180117020 and 0x1801170b0. One of them should be the concrete class's
create/register, which reaches its constructor, which holds the defaults.

What matters is the value each gate field is born with, because the server has
always sent an empty configs array:
    param_2[0xb]  storeEnabled            <- CONTROL, screen works => born true
    param_2[0x16] friendlySeasonsEnabled  <- Seasons
    param_2[0x17] enableDraftMode         <- Draft
    param_2[0x18] enableOffline/SinglePlayerDraftMode
    param_2[0x1c] enableObjectives(AsManagerTasks)  <- only ever CLEARED, so its
                  default is the only value it can ever have unless we send 0
Field N sits at byte offset 0x28 + N*4.
"""
for va in (0x180117020, 0x1801170B0):
    print("=" * 78)
    print("%#x" % va)
    print("=" * 78)
    print(dec(va))
    print("-- callees --")
    for a, n in callees(va):
        print("   %#x  %s" % (a, n))
    print()
