- lots of references to other ptr's and stuff, so im only analyzing whats in the vtable # constructor - offset 100c05a0 - there's a call to another function which may be a part of the ctor, but then it goes to stuff seeming to be shared by things like the video manager ## FUN_100c0690 - sets field_0x50 to 100 then calls ## FUN_100c06a0 - sets the following fields to 0: - 0x30 - 0x34 - 0x38 - 0x3c - 0x40 - 0x44 - 0x48 - 0x4c # destructor - vtable suggests it is here, offset 100c0640 # the vtable - PTR_FUN_100dc930, at 100dc930 ## 3rd entry: FUN_100b8790 - the param_1 could be MxCriticalSection* - it returns 0; probably performing an operation of some kind - FIXME: come back to this when we understand the fields of MxMusicManager ## 6th entry: FUN_100b8e40 - Most likely takes in MxCriticalSection* as a parameter, though i wonder if MxMusicManager could contain a critsect: that would make the most sense ## 7th entry: LAB_100c0930, which calls FUN_100c06c0 - Takes in a char parameter, though the LAB call puts in '\0' ## 8th entry: FUN_100b88c0 - another reference with the parameter being a critsect: - ```MxAutoLocker::MxAutoLocker(&local_14,(MxCriticalSection *)((int)this + 0x10));``` - I'm here declaring that 0x10 is a MxCriticalSection, confirmed # known member fields field_0x8: maybe an int* field_0x10: MxCriticalSection* field_0x18: maybe an int* (src: FUN_100b8e40) field_0xc: maybe an int* (src: FUN_100c06c0) field_0x30: HMIDISTRM* or HMIDIOUT* (src: FUN_100c0b20) field_0x4c: LPMIDIHR* (src: FUN_100c0b20) # functions that may have relation/take in MxMusicManager as a param - FUN_100b8d00: appears to mention another vtable.. 100dc6e0 --- # The real nitty gritty: other functions that likely use MxMusicManager ## FUN_100c0b20 - This is where we start to see calls to midi functions in WINMM - the critsect parameter checks out at 0x10 - a call does go too FUN_100c06a0, part of the ctor - this function might be where the music manager is initialized