"""FUT::FutDataManagerImpl constructor -> the settings defaults.

The settings struct sits at object+0x28 (FUN_18014e590 hands param_1+0x28 to the
deser), so field N of the flag table is at byte offset 0x28 + N*4:

    0x50 tradingEnabled[10]   0x54 storeEnabled[0xb]   <- CONTROL, works today
    0x80 friendlySeasonsEnabled[0x16]                  <- Seasons
    0x84 enableDraftMode[0x17]                         <- Draft
    0x88 enableOffline/SinglePlayerDraftMode[0x18]
    0x98 enableObjectives[0x1c]  (settings can only CLEAR this one)

Print the whole constructor and the coverage numbers. Do NOT conclude "field X is
not initialised" from a partial read: this repo lost seven attempts to exactly
that mistake (the FutMoveCard retraction), so the char counts are printed and the
full text follows.
"""
VA = 0x18010CDC0
f = func(VA)
src = dec(VA)
print("FUT::FutDataManagerImpl ctor %#x" % VA)
print("  body bytes : %d" % f.getBody().getNumAddresses())
print("  decompile  : %d chars (entire text printed below)" % len(src))
print("=" * 78)
print(src)
