#include "plugin.h"

using namespace injector;

class Cstreaming {
public:
	Cstreaming() {
		int n = 8010;
		// The unrolled loop in CStreaming::Init inits 7 more elements
		// after looping in 8 element increments because the default
		// size 7951 % 8 == 7. We'll just allocate 7 more elements.
		char *streaminginfo = new char[(n+7)*0x14];
		// fix loop limit
		// WriteMemory(0x94DDD0, n, true);
		WriteMemory(0x4102B1 + 1, n-8, true);
		// move array references
		// m_pNext
		WriteMemory(0x4100B4, streaminginfo + 4, true); 
		WriteMemory(0x4100FB, streaminginfo + 0x0, true);
		WriteMemory(0x41013F, streaminginfo + 0x0, true);
		WriteMemory(0x410184, streaminginfo + 0x0, true);
		WriteMemory(0x4101C8, streaminginfo + 0x0, true);
		WriteMemory(0x41020C, streaminginfo + 0x0, true);
		WriteMemory(0x410250, streaminginfo + 0x0, true);
		WriteMemory(0x410297, streaminginfo + 0x0, true);
		WriteMemory(0x4102F0, streaminginfo + 0x0, true);
		WriteMemory(0x410345, streaminginfo + 0x0, true);
		WriteMemory(0x4103A7, streaminginfo + 0x0, true);
		WriteMemory(0x410409, streaminginfo + 0x0, true);
		WriteMemory(0x41046B, streaminginfo + 0x0, true);
		WriteMemory(0x4104C3, streaminginfo + 0x0, true);
		WriteMemory(0x410515, streaminginfo + 0x0, true);
		WriteMemory(0x4099F0, streaminginfo + 0x0, true);
		WriteMemory(0x409B62, streaminginfo + 0x0, true);
		WriteMemory(0x409C15, streaminginfo + 0x0, true);
		WriteMemory(0x409CC5, streaminginfo + 0x0, true);
		WriteMemory(0x409D6D, streaminginfo + 0x0, true);
		WriteMemory(0x409E04, streaminginfo + 0x0, true);
		WriteMemory(0x409EAD, streaminginfo + 0x0, true);
		WriteMemory(0x409F44, streaminginfo + 0x0, true);
		WriteMemory(0x409FED, streaminginfo + 0x0, true);
		WriteMemory(0x40A113, streaminginfo + 0x0, true);
		WriteMemory(0x40A1B7, streaminginfo + 0x0, true);
		WriteMemory(0x40A3DA, streaminginfo + 0x0, true);
		WriteMemory(0x40A47E, streaminginfo + 0x0, true);
		WriteMemory(0x40A64D, streaminginfo + 0x0, true);
		WriteMemory(0x40A6D5, streaminginfo + 0x0, true);
		WriteMemory(0x40A77D, streaminginfo + 0x0, true);
		WriteMemory(0x40A82B, streaminginfo + 0x0, true);
		WriteMemory(0x40A906, streaminginfo + 0x0, true);
		WriteMemory(0x40A9AE, streaminginfo + 0x0, true);
		WriteMemory(0x40ADB4, streaminginfo + 0x0, true);
		WriteMemory(0x40AE72, streaminginfo + 0x0, true);
		WriteMemory(0x40AEF4, streaminginfo + 0x0, true);
		WriteMemory(0x40AF9A, streaminginfo + 0x0, true);
		WriteMemory(0x40B4E9, streaminginfo + 0x0, true);
		WriteMemory(0x40B6E3, streaminginfo + 0x0, true); //
		WriteMemory(0x40B8DA, streaminginfo + 0x0, true);
		WriteMemory(0x40BB24, streaminginfo + 0x0, true);
		WriteMemory(0x40BCDE, streaminginfo + 0x0, true);
		WriteMemory(0x40C1EE, streaminginfo + 0x0, true); //
		WriteMemory(0x40C77F, streaminginfo + 0x0, true);
		WriteMemory(0x40C9DF, streaminginfo + 0x0, true);
		WriteMemory(0x40CAAD, streaminginfo + 0x0, true);
		WriteMemory(0x40D449, streaminginfo + 0x0, true);
		WriteMemory(0x40D5C9, streaminginfo + 0x0, true);
		WriteMemory(0x40E3E4, streaminginfo + 0x0, true);
		WriteMemory(0x40E466, streaminginfo + 0x0, true);
		WriteMemory(0x40F0BA, streaminginfo + 0x0, true);
		WriteMemory(0x40FD6B, streaminginfo + 0x0, true);
		WriteMemory(0x40FEDA, streaminginfo + 0x0, true);
		WriteMemory(0x40FFB7, streaminginfo + 0x0, true);
		// new m_pNext
		WriteMemory(0x409B59, streaminginfo + 0x0, true);
		WriteMemory(0x409B6E, streaminginfo + 0x0, true);
		WriteMemory(0x409B7E, streaminginfo + 0x0, true);
		WriteMemory(0x409C00, streaminginfo + 0x0, true);
		WriteMemory(0x409C0F, streaminginfo + 0x0, true);
		WriteMemory(0x409C26, streaminginfo + 0x0, true);
		WriteMemory(0x409CBC, streaminginfo + 0x0, true);
		WriteMemory(0x409CD1, streaminginfo + 0x0, true);
		WriteMemory(0x409CE1, streaminginfo + 0x0, true);
		WriteMemory(0x409D64, streaminginfo + 0x0, true);
		WriteMemory(0x409D79, streaminginfo + 0x0, true);
		WriteMemory(0x409D89, streaminginfo + 0x0, true);
		WriteMemory(0x409DFB, streaminginfo + 0x0, true);
		WriteMemory(0x409E10, streaminginfo + 0x0, true);
		WriteMemory(0x409E20, streaminginfo + 0x0, true);
		WriteMemory(0x409EA4, streaminginfo + 0x0, true);
		WriteMemory(0x409EB9, streaminginfo + 0x0, true);
		WriteMemory(0x409EC9, streaminginfo + 0x0, true);
		WriteMemory(0x409F3B, streaminginfo + 0x0, true);
		WriteMemory(0x409F50, streaminginfo + 0x0, true);
		WriteMemory(0x409F60, streaminginfo + 0x0, true);
		WriteMemory(0x409FE4, streaminginfo + 0x0, true);
		WriteMemory(0x409FF9, streaminginfo + 0x0, true);
		WriteMemory(0x40A009, streaminginfo + 0x0, true);
		WriteMemory(0x40A10A, streaminginfo + 0x0, true);
		WriteMemory(0x40A11F, streaminginfo + 0x0, true);
		WriteMemory(0x40A12F, streaminginfo + 0x0, true);
		WriteMemory(0x40A1AE, streaminginfo + 0x0, true);
		WriteMemory(0x40A1C3, streaminginfo + 0x0, true);
		WriteMemory(0x40A1D3, streaminginfo + 0x0, true);
		WriteMemory(0x40A3D1, streaminginfo + 0x0, true);
		WriteMemory(0x40A3E6, streaminginfo + 0x0, true);
		WriteMemory(0x40A3F6, streaminginfo + 0x0, true);
		WriteMemory(0x40A475, streaminginfo + 0x0, true);
		WriteMemory(0x40A48B, streaminginfo + 0x0, true);
		WriteMemory(0x40A49B, streaminginfo + 0x0, true);
		WriteMemory(0x40A644, streaminginfo + 0x0, true);
		WriteMemory(0x40A659, streaminginfo + 0x0, true);
		WriteMemory(0x40A669, streaminginfo + 0x0, true);
		WriteMemory(0x40A6CC, streaminginfo + 0x0, true);
		WriteMemory(0x40A6E1, streaminginfo + 0x0, true);
		WriteMemory(0x40A6F1, streaminginfo + 0x0, true);
		WriteMemory(0x40A774, streaminginfo + 0x0, true);
		WriteMemory(0x40A789, streaminginfo + 0x0, true);
		WriteMemory(0x40A799, streaminginfo + 0x0, true);
		WriteMemory(0x40A822, streaminginfo + 0x0, true);
		WriteMemory(0x40A837, streaminginfo + 0x0, true);
		WriteMemory(0x40A847, streaminginfo + 0x0, true);
		WriteMemory(0x40A8FD, streaminginfo + 0x0, true);
		WriteMemory(0x40A912, streaminginfo + 0x0, true);
		WriteMemory(0x40A922, streaminginfo + 0x0, true);
		WriteMemory(0x40A9A5, streaminginfo + 0x0, true);
		WriteMemory(0x40A9BA, streaminginfo + 0x0, true);
		WriteMemory(0x40A9CA, streaminginfo + 0x0, true);
		WriteMemory(0x40ADAB, streaminginfo + 0x0, true);
		WriteMemory(0x40ADC0, streaminginfo + 0x0, true);
		WriteMemory(0x40ADD0, streaminginfo + 0x0, true);
		WriteMemory(0x40AE5D, streaminginfo + 0x0, true);
		WriteMemory(0x40AE6C, streaminginfo + 0x0, true);
		WriteMemory(0x40AE83, streaminginfo + 0x0, true);
		WriteMemory(0x40AEEB, streaminginfo + 0x0, true);
		WriteMemory(0x40AF00, streaminginfo + 0x0, true);
		WriteMemory(0x40AF10, streaminginfo + 0x0, true);
		WriteMemory(0x40CB9F, streaminginfo + 0x0, true);
		WriteMemory(0x40CC1A, streaminginfo + 0x0, true);
		WriteMemory(0x40D786, streaminginfo + 0x0, true);
		WriteMemory(0x40D7BD, streaminginfo + 0x0, true);
		WriteMemory(0x40D7CC, streaminginfo + 0x0, true);
		WriteMemory(0x40D7D4, streaminginfo + 0x0, true);
		WriteMemory(0x40E3A3, streaminginfo + 0x0, true);
		WriteMemory(0x40E3BC, streaminginfo + 0x0, true);
		WriteMemory(0x40E3C4, streaminginfo + 0x0, true);
		WriteMemory(0x40E3F0, streaminginfo + 0x0, true);
		WriteMemory(0x40E400, streaminginfo + 0x0, true);
		WriteMemory(0x40E473, streaminginfo + 0x0, true);
		WriteMemory(0x40E483, streaminginfo + 0x0, true);
		WriteMemory(0x41000B, streaminginfo + 0x0, true);
		WriteMemory(0x41001F, streaminginfo + 0x0, true);
		WriteMemory(0x41002F, streaminginfo + 0x0, true);
		// m_pPrev
		WriteMemory(0x4100BE, streaminginfo + 0x4, true);
		WriteMemory(0x410105, streaminginfo + 0x4, true);
		WriteMemory(0x410149, streaminginfo + 0x4, true);
		WriteMemory(0x41018E, streaminginfo + 0x4, true);
		WriteMemory(0x4101D2, streaminginfo + 0x4, true);
		WriteMemory(0x410216, streaminginfo + 0x4, true);
		WriteMemory(0x41025A, streaminginfo + 0x4, true);
		WriteMemory(0x4102A1, streaminginfo + 0x4, true);
		WriteMemory(0x4102FA, streaminginfo + 0x4, true);
		WriteMemory(0x41034F, streaminginfo + 0x4, true);
		WriteMemory(0x4103B1, streaminginfo + 0x4, true);
		WriteMemory(0x410413, streaminginfo + 0x4, true);
		WriteMemory(0x410475, streaminginfo + 0x4, true);
		WriteMemory(0x4104CD, streaminginfo + 0x4, true);
		WriteMemory(0x41051F, streaminginfo + 0x4, true);
		// new m_pPrev offset stDummyRequest???
		WriteMemory(0x409B74, streaminginfo + 0x4, true);
		WriteMemory(0x409C1C, streaminginfo + 0x4, true);
		WriteMemory(0x409CD7, streaminginfo + 0x4, true);
		WriteMemory(0x409D7F, streaminginfo + 0x4, true);
		WriteMemory(0x409E16, streaminginfo + 0x4, true);
		WriteMemory(0x409EBF, streaminginfo + 0x4, true);
		WriteMemory(0x409F56, streaminginfo + 0x4, true);
		WriteMemory(0x409FFF, streaminginfo + 0x4, true);
		WriteMemory(0x40A125, streaminginfo + 0x4, true);
		WriteMemory(0x40A1C9, streaminginfo + 0x4, true);
		WriteMemory(0x40A3EC, streaminginfo + 0x4, true);
		WriteMemory(0x40A491, streaminginfo + 0x4, true);
		WriteMemory(0x40A65F, streaminginfo + 0x4, true);
		WriteMemory(0x40A6E7, streaminginfo + 0x4, true);
		WriteMemory(0x40A78F, streaminginfo + 0x4, true);
		WriteMemory(0x40A83D, streaminginfo + 0x4, true);
		WriteMemory(0x40A918, streaminginfo + 0x4, true);
		WriteMemory(0x40A9C0, streaminginfo + 0x4, true);
		WriteMemory(0x40ADC6, streaminginfo + 0x4, true);
		WriteMemory(0x40AE79, streaminginfo + 0x4, true);
		WriteMemory(0x40AF06, streaminginfo + 0x4, true);
		WriteMemory(0x40D7B7, streaminginfo + 0x4, true);
		WriteMemory(0x40D7C6, streaminginfo + 0x4, true);
		WriteMemory(0x40D7DE, streaminginfo + 0x4, true);
		WriteMemory(0x40E3AD, streaminginfo + 0x4, true);
		WriteMemory(0x40E3B6, streaminginfo + 0x4, true);
		WriteMemory(0x40E3CE, streaminginfo + 0x4, true);
		WriteMemory(0x40E3F6, streaminginfo + 0x4, true);
		WriteMemory(0x40E479, streaminginfo + 0x4, true);
		WriteMemory(0x410025, streaminginfo + 0x4, true);
		// m_nLoadState
		WriteMemory(0x4100AC, streaminginfo + 0x8, true);
		WriteMemory(0x4100F4, streaminginfo + 0x8, true);
		WriteMemory(0x410138, streaminginfo + 0x8, true);
		WriteMemory(0x41017D, streaminginfo + 0x8, true);
		WriteMemory(0x4101C1, streaminginfo + 0x8, true);
		WriteMemory(0x410205, streaminginfo + 0x8, true);
		WriteMemory(0x410249, streaminginfo + 0x8, true);
		WriteMemory(0x410290, streaminginfo + 0x8, true);
		WriteMemory(0x4102E9, streaminginfo + 0x8, true);
		WriteMemory(0x41033E, streaminginfo + 0x8, true);
		WriteMemory(0x4103A0, streaminginfo + 0x8, true);
		WriteMemory(0x410402, streaminginfo + 0x8, true);
		WriteMemory(0x410464, streaminginfo + 0x8, true);
		WriteMemory(0x4104BC, streaminginfo + 0x8, true);
		WriteMemory(0x41050E, streaminginfo + 0x8, true);
		WriteMemory(0x4105DA, streaminginfo + 0x8, true);
		WriteMemory(0x408A32, streaminginfo + 0x8, true);
		WriteMemory(0x408A75, streaminginfo + 0x8, true);
		WriteMemory(0x408AFF, streaminginfo + 0x8, true);
		WriteMemory(0x4098E1, streaminginfo + 0x8, true);
		WriteMemory(0x409A93, streaminginfo + 0x8, true);
		WriteMemory(0x409B50, streaminginfo + 0x8, true);
		WriteMemory(0x409BF7, streaminginfo + 0x8, true);
		WriteMemory(0x409CB3, streaminginfo + 0x8, true);
		WriteMemory(0x409D5B, streaminginfo + 0x8, true);
		WriteMemory(0x409DF2, streaminginfo + 0x8, true);
		WriteMemory(0x409E9B, streaminginfo + 0x8, true);
		WriteMemory(0x409F32, streaminginfo + 0x8, true);
		WriteMemory(0x409FDB, streaminginfo + 0x8, true);
		WriteMemory(0x40A101, streaminginfo + 0x8, true);
		WriteMemory(0x40A1A5, streaminginfo + 0x8, true);
		WriteMemory(0x40A3C8, streaminginfo + 0x8, true);
		WriteMemory(0x40A46C, streaminginfo + 0x8, true);
		WriteMemory(0x40A63B, streaminginfo + 0x8, true);
		WriteMemory(0x40A6C3, streaminginfo + 0x8, true);
		WriteMemory(0x40A76B, streaminginfo + 0x8, true);
		WriteMemory(0x40A819, streaminginfo + 0x8, true);
		WriteMemory(0x40A8F4, streaminginfo + 0x8, true);
		WriteMemory(0x40A99C, streaminginfo + 0x8, true);
		WriteMemory(0x40ADA2, streaminginfo + 0x8, true);
		WriteMemory(0x40AE54, streaminginfo + 0x8, true);
		WriteMemory(0x40AEE2, streaminginfo + 0x8, true);
		WriteMemory(0x40B9FC, streaminginfo + 0x8, true);
		WriteMemory(0x40BA6E, streaminginfo + 0x8, true);
		WriteMemory(0x40BA93, streaminginfo + 0x8, true);
		WriteMemory(0x40BD76, streaminginfo + 0x8, true);
		WriteMemory(0x40C08D, streaminginfo + 0x8, true);
		WriteMemory(0x40C8A7, streaminginfo + 0x8, true);
		WriteMemory(0x40D6F6, streaminginfo + 0x8, true);
		WriteMemory(0x40D78F, streaminginfo + 0x8, true);
		WriteMemory(0x40D7EA, streaminginfo + 0x8, true);
		WriteMemory(0x40D81D, streaminginfo + 0x8, true);
		WriteMemory(0x40D887, streaminginfo + 0x8, true);
		WriteMemory(0x40E32B, streaminginfo + 0x8, true);
		WriteMemory(0x40E364, streaminginfo + 0x8, true);
		WriteMemory(0x40E4A5, streaminginfo + 0x8, true);
		WriteMemory(0x40FF82, streaminginfo + 0x8, true);
		WriteMemory(0x410002, streaminginfo + 0x8, true);
		WriteMemory(0x426BD8, streaminginfo + 0x8, true);
		WriteMemory(0x426BEB, streaminginfo + 0x8, true);
		WriteMemory(0x426D16, streaminginfo + 0x8, true);
		WriteMemory(0x427505, streaminginfo + 0x8, true);
		WriteMemory(0x42DF57, streaminginfo + 0x8, true);
		WriteMemory(0x44091E, streaminginfo + 0x8, true);
		WriteMemory(0x4436FD, streaminginfo + 0x8, true);
		WriteMemory(0x443B44, streaminginfo + 0x8, true);
		WriteMemory(0x44408D, streaminginfo + 0x8, true);
		WriteMemory(0x44E763, streaminginfo + 0x8, true);
		WriteMemory(0x458A4A, streaminginfo + 0x8, true);
		WriteMemory(0x4AE93C, streaminginfo + 0x8, true);
		WriteMemory(0x4C75FC, streaminginfo + 0x8, true);
		WriteMemory(0x4FFC9F, streaminginfo + 0x8, true);
		WriteMemory(0x4FFCB1, streaminginfo + 0x8, true);
		WriteMemory(0x4FFD3B, streaminginfo + 0x8, true);
		WriteMemory(0x4FFD4D, streaminginfo + 0x8, true);
		WriteMemory(0x53C561, streaminginfo + 0x8, true);
		WriteMemory(0x53C598, streaminginfo + 0x8, true);
		WriteMemory(0x53C5D1, streaminginfo + 0x8, true);
		WriteMemory(0x53C5E9, streaminginfo + 0x8, true);
		WriteMemory(0x5A71F9, streaminginfo + 0x8, true);
		WriteMemory(0x5A72B6, streaminginfo + 0x8, true);
		WriteMemory(0x5B18C3, streaminginfo + 0x8, true);
		WriteMemory(0x603CE3, streaminginfo + 0x8, true);
		WriteMemory(0x603E14, streaminginfo + 0x8, true);
		WriteMemory(0x604627, streaminginfo + 0x8, true);
		WriteMemory(0x604B66, streaminginfo + 0x8, true);
		WriteMemory(0x621384, streaminginfo + 0x8, true);
		WriteMemory(0x6215F0, streaminginfo + 0x8, true);
		WriteMemory(0x62171F, streaminginfo + 0x8, true);
		WriteMemory(0x62398C, streaminginfo + 0x8, true);
		WriteMemory(0x410547, streaminginfo + 0x12C8, true);
		WriteMemory(0x410555, streaminginfo + 0x12DC, true);
		WriteMemory(0x410566, streaminginfo + 0x12F0, true);
		WriteMemory(0x41056D, streaminginfo + 0x1304, true);
		WriteMemory(0x410574, streaminginfo + 0x1318, true);
		WriteMemory(0x41057B, streaminginfo + 0x132C, true);
		WriteMemory(0x410582, streaminginfo + 0x1340, true);
		WriteMemory(0x410589, streaminginfo + 0x1354, true);
		WriteMemory(0x410651, streaminginfo + 0x1FBD8, true);
		WriteMemory(0x63256C, streaminginfo + 0x30, true);
		WriteMemory(0x62A309, streaminginfo + 0x2680C, true);
		WriteMemory(0x5B89AE, streaminginfo + 0x146C, true);
		WriteMemory(0x5B894D, streaminginfo + 0x15AC, true);
		WriteMemory(0x5B1E90, streaminginfo + 0xCEC, true);
		WriteMemory(0x5B1DE4, streaminginfo + 0xE2C, true);
		WriteMemory(0x5ACE49, streaminginfo + 0xCEC, true);
		WriteMemory(0x5ACDD8, streaminginfo + 0xCEC, true);
		WriteMemory(0x5ABE42, streaminginfo + 0x30, true);
		WriteMemory(0x53C5B9, streaminginfo + 0x58, true);
		WriteMemory(0x53C580, streaminginfo + 0x30, true);
		WriteMemory(0x53C549, streaminginfo + 0x44, true);
		WriteMemory(0x53C524, streaminginfo + 0x1C, true);
		WriteMemory(0x431B56, streaminginfo + 0x16C4, true);
		WriteMemory(0x42AE8D, streaminginfo + 0x10E8, true);
		WriteMemory(0x4273A3, streaminginfo + 0xC88, true);
		WriteMemory(0x4269E8, streaminginfo + 0x58, true);
		WriteMemory(0x4269DF, streaminginfo + 0xCC4, true);
		WriteMemory(0x4269D6, streaminginfo + 0xCB0, true);
		WriteMemory(0x4269AF, streaminginfo + 0x44, true);
		WriteMemory(0x4269A6, streaminginfo + 0x1138, true);
		WriteMemory(0x42692F, streaminginfo + 0x30, true);
		WriteMemory(0x426926, streaminginfo + 0xC4C, true);
		WriteMemory(0x4268FE, streaminginfo + 0x828, true);
		WriteMemory(0x4268F5, streaminginfo + 0x814, true);
		WriteMemory(0x4268E3, streaminginfo + 0x800, true);
		WriteMemory(0x4268DA, streaminginfo + 0x7EC, true);
		WriteMemory(0x4268C8, streaminginfo + 0x7D8, true);
		WriteMemory(0x4268BF, streaminginfo + 0x7C4, true);
		WriteMemory(0x4268AD, streaminginfo + 0x7B0, true);
		WriteMemory(0x4268A4, streaminginfo + 0x79C, true);
		WriteMemory(0x426883, streaminginfo + 0x1278, true);
		WriteMemory(0x41CC09, streaminginfo + 0xABC, true);
		WriteMemory(0x41CBA3, streaminginfo + 0x80, true);
		WriteMemory(0x41CB98, streaminginfo + 0xABC, true);
		WriteMemory(0x41CAB4, streaminginfo + 0xB70, true);
		WriteMemory(0x41CA81, streaminginfo + 0x6C, true);
		WriteMemory(0x41CA76, streaminginfo + 0xB70, true);
		WriteMemory(0x40BD2D, streaminginfo + 0x1FBD4, true);
		WriteMemory(0x409A1A, streaminginfo + 0x88C, true);
		// m_nLoadState+ ??
		WriteMemory(0x4099B6, streaminginfo + 0x88C, true);
		WriteMemory(0x409809, streaminginfo + 0x828, true);
		WriteMemory(0x4097A8, streaminginfo + 0x814, true);
		WriteMemory(0x409740, streaminginfo + 0x800, true);
		WriteMemory(0x4096DF, streaminginfo + 0x7EC, true);
		WriteMemory(0x40967E, streaminginfo + 0x7D8, true);
		WriteMemory(0x40961D, streaminginfo + 0x7C4, true);
		WriteMemory(0x4095BC, streaminginfo + 0x7B0, true);
		WriteMemory(0x40955B, streaminginfo + 0x79C, true);
		WriteMemory(0x4094F0, streaminginfo + 0x1278, true);
		WriteMemory(0x4093EE, streaminginfo + 0x828, true);
		WriteMemory(0x40938D, streaminginfo + 0x814, true);
		WriteMemory(0x40932C, streaminginfo + 0x800, true);
		WriteMemory(0x4092CB, streaminginfo + 0x7ECF, true);
		WriteMemory(0x40926A, streaminginfo + 0x7D8, true);
		WriteMemory(0x409209, streaminginfo + 0x7C4, true);
		WriteMemory(0x4091A8, streaminginfo + 0x7B0, true);
		WriteMemory(0x409143, streaminginfo + 0x79C, true);
		WriteMemory(0x4090C0, streaminginfo + 0xCEC, true);
		WriteMemory(0x409031, streaminginfo + 0x58, true);
		WriteMemory(0x40900A, streaminginfo + 0xCB0, true);
		WriteMemory(0x409001, streaminginfo + 0xCC4, true);
		WriteMemory(0x408FBB, streaminginfo + 0xCB0, true);
		WriteMemory(0x408F57, streaminginfo + 0xCC4, true);
		WriteMemory(0x408EB4, streaminginfo + 0x44, true);
		WriteMemory(0x408E8D, streaminginfo + 0x1138, true);
		WriteMemory(0x408E40, streaminginfo + 0x1138, true);
		WriteMemory(0x408DA4, streaminginfo + 0x30, true);
		WriteMemory(0x408D7D, streaminginfo + 0xC4C, true);
		WriteMemory(0x408D36, streaminginfo + 0xC4C, true);
		WriteMemory(0x408D1D, streaminginfo + 0xC4C, true);
		// m_nFlags
		WriteMemory(0x406C59, streaminginfo + 0x9, true);
		WriteMemory(0x408A42, streaminginfo + 0x9, true);
		WriteMemory(0x408A7E, streaminginfo + 0x9, true);
		WriteMemory(0x408AE5, streaminginfo + 0x9, true);
		WriteMemory(0x408BB1, streaminginfo + 0x9, true);
		WriteMemory(0x409A9C, streaminginfo + 0x9, true);
		WriteMemory(0x409B20, streaminginfo + 0x9, true);
		WriteMemory(0x409B44, streaminginfo + 0x9, true);
		WriteMemory(0x409BBB, streaminginfo + 0x9, true);
		WriteMemory(0x409BEB, streaminginfo + 0x9, true);
		WriteMemory(0x409C83, streaminginfo + 0x9, true);
		WriteMemory(0x409CA7, streaminginfo + 0x9, true);
		WriteMemory(0x409D21, streaminginfo + 0x9, true);
		WriteMemory(0x409D4F, streaminginfo + 0x9, true);
		WriteMemory(0x409DC2, streaminginfo + 0x9, true);
		WriteMemory(0x409DE6, streaminginfo + 0x9, true);
		WriteMemory(0x409E61, streaminginfo + 0x9, true);
		WriteMemory(0x409E8F, streaminginfo + 0x9, true);
		WriteMemory(0x409F02, streaminginfo + 0x9, true);
		WriteMemory(0x409F26, streaminginfo + 0x9, true);
		WriteMemory(0x409FA1, streaminginfo + 0x9, true);
		WriteMemory(0x409FCF, streaminginfo + 0x9, true);
		WriteMemory(0x40A0D1, streaminginfo + 0x9, true);
		WriteMemory(0x40A0F5, streaminginfo + 0x9, true);
		WriteMemory(0x40A16B, streaminginfo + 0x9, true);
		WriteMemory(0x40A199, streaminginfo + 0x9, true);
		WriteMemory(0x40A398, streaminginfo + 0x9, true);
		WriteMemory(0x40A3BC, streaminginfo + 0x9, true);
		WriteMemory(0x40A430, streaminginfo + 0x9, true);
		WriteMemory(0x40A460, streaminginfo + 0x9, true);
		WriteMemory(0x40A60B, streaminginfo + 0x9, true);
		WriteMemory(0x40A62F, streaminginfo + 0x9, true);
		WriteMemory(0x40A693, streaminginfo + 0x9, true);
		WriteMemory(0x40A6B7, streaminginfo + 0x9, true);
		WriteMemory(0x40A731, streaminginfo + 0x9, true);
		WriteMemory(0x40A75F, streaminginfo + 0x9, true);
		WriteMemory(0x40A7DF, streaminginfo + 0x9, true);
		WriteMemory(0x40A80D, streaminginfo + 0x9, true);
		WriteMemory(0x40A8C6, streaminginfo + 0x9, true);
		WriteMemory(0x40A8E8, streaminginfo + 0x9, true);
		WriteMemory(0x40A962, streaminginfo + 0x9, true);
		WriteMemory(0x40A990, streaminginfo + 0x9, true);
		WriteMemory(0x40AD72, streaminginfo + 0x9, true);
		WriteMemory(0x40AD96, streaminginfo + 0x9, true);
		WriteMemory(0x40AE18, streaminginfo + 0x9, true);
		WriteMemory(0x40AE48, streaminginfo + 0x9, true);
		WriteMemory(0x40AEB2, streaminginfo + 0x9, true);
		WriteMemory(0x40AED6, streaminginfo + 0x9, true);
		WriteMemory(0x40B3E4, streaminginfo + 0x9, true);
		WriteMemory(0x40B3F5, streaminginfo + 0x9, true);
		WriteMemory(0x40B403, streaminginfo + 0x9, true);
		WriteMemory(0x40B411, streaminginfo + 0x9, true);
		WriteMemory(0x40B41F, streaminginfo + 0x9, true);
		WriteMemory(0x40B42D, streaminginfo + 0x9, true);
		WriteMemory(0x40B43B, streaminginfo + 0x9, true);
		WriteMemory(0x40B44C, streaminginfo + 0x9, true);
		WriteMemory(0x40B464, streaminginfo + 0x9, true);
		WriteMemory(0x40B46F, streaminginfo + 0x9, true);
		WriteMemory(0x40B47D, streaminginfo + 0x9, true);
		WriteMemory(0x40B48B, streaminginfo + 0x9, true);
		WriteMemory(0x40B499, streaminginfo + 0x9, true);
		WriteMemory(0x40B4AA, streaminginfo + 0x9, true);
		WriteMemory(0x40B4BA, streaminginfo + 0x9, true);
		WriteMemory(0x40B720, streaminginfo + 0x9, true); // 
		WriteMemory(0x40B72D, streaminginfo + 0x9, true);
		WriteMemory(0x40B91A, streaminginfo + 0x9, true);
		WriteMemory(0x40BA1F, streaminginfo + 0x9, true); 
		WriteMemory(0x40BB51, streaminginfo + 0x9, true);
		WriteMemory(0x40BB5D, streaminginfo + 0x9, true);
		WriteMemory(0x40BD48, streaminginfo + 0x9, true); //
		WriteMemory(0x40BD90, streaminginfo + 0x9, true);
		WriteMemory(0x40BE12, streaminginfo + 0x9, true);
		WriteMemory(0x40BE24, streaminginfo + 0x9, true);
		WriteMemory(0x40BFB4, streaminginfo + 0x9, true);
		WriteMemory(0x40BFED, streaminginfo + 0x9, true);
		WriteMemory(0x40C3BB, streaminginfo + 0x9, true);
		WriteMemory(0x40C3EC, streaminginfo + 0x9, true);
		WriteMemory(0x40C430, streaminginfo + 0x9, true); //
		WriteMemory(0x40C4DC, streaminginfo + 0x9, true);
		WriteMemory(0x40C554, streaminginfo + 0x9, true); // 3
		WriteMemory(0x40C58A, streaminginfo + 0x9, true);
		WriteMemory(0x40C61D, streaminginfo + 0x9, true);
		WriteMemory(0x40C8CC, streaminginfo + 0x9, true);
		WriteMemory(0x40D798, streaminginfo + 0x9, true);
		WriteMemory(0x40D7AA, streaminginfo + 0x9, true);
		WriteMemory(0x40E33C, streaminginfo + 0x9, true);
		WriteMemory(0x40E34E, streaminginfo + 0x9, true);
		WriteMemory(0x40E35E, streaminginfo + 0x9, true);
		WriteMemory(0x40E373, streaminginfo + 0x9, true); //
		WriteMemory(0x40E3D8, streaminginfo + 0x9, true);
		WriteMemory(0x40E4AC, streaminginfo + 0x9, true);
		WriteMemory(0x40FF9F, streaminginfo + 0x9, true);
		WriteMemory(0x40FFCD, streaminginfo + 0x9, true);
		WriteMemory(0x40FFD9, streaminginfo + 0x9, true);
		WriteMemory(0x40FFF6, streaminginfo + 0x9, true);
		WriteMemory(0x4105E1, streaminginfo + 0x9, true);
		WriteMemory(0x4AE875, streaminginfo + 0x9, true);
		WriteMemory(0x4AE924, streaminginfo + 0x9, true);
		WriteMemory(0x62A01B, streaminginfo + 0x2680D, true); //
		// m_nModelIndex
		WriteMemory(0x4100C9, streaminginfo + 0xA, true);
		WriteMemory(0x410110, streaminginfo + 0xA, true);
		WriteMemory(0x410154, streaminginfo + 0xA, true);
		WriteMemory(0x410199, streaminginfo + 0xA, true);
		WriteMemory(0x4101DD, streaminginfo + 0xA, true);
		WriteMemory(0x410221, streaminginfo + 0xA, true);
		WriteMemory(0x410265, streaminginfo + 0xA, true);
		WriteMemory(0x4102AC, streaminginfo + 0xA, true);
		WriteMemory(0x410305, streaminginfo + 0xA, true);
		WriteMemory(0x41035A, streaminginfo + 0xA, true);
		WriteMemory(0x4103BC, streaminginfo + 0xA, true);
		WriteMemory(0x41041E, streaminginfo + 0xA, true);
		WriteMemory(0x410480, streaminginfo + 0xA, true);
		WriteMemory(0x4104D8, streaminginfo + 0xA, true);
		WriteMemory(0x41052A, streaminginfo + 0xA, true);
		WriteMemory(0x40BB6B, streaminginfo + 0xA, true);
		// ?
		WriteMemory(0x40FDC6, streaminginfo + 0xA, true);
		// m_nCdPosn
		WriteMemory(0x4100DA, streaminginfo + 0xC, true);
		WriteMemory(0x410121, streaminginfo + 0xC, true);
		WriteMemory(0x410165, streaminginfo + 0xC, true);
		WriteMemory(0x4101AA, streaminginfo + 0xC, true);
		WriteMemory(0x4101EE, streaminginfo + 0xC, true);
		WriteMemory(0x410232, streaminginfo + 0xC, true);
		WriteMemory(0x410276, streaminginfo + 0xC, true);
		WriteMemory(0x4102C2, streaminginfo + 0xC, true);
		WriteMemory(0x410316, streaminginfo + 0xC, true);
		WriteMemory(0x41036B, streaminginfo + 0xC, true);
		WriteMemory(0x4103CD, streaminginfo + 0xC, true);
		WriteMemory(0x41042F, streaminginfo + 0xC, true);
		WriteMemory(0x410491, streaminginfo + 0xC, true);
		WriteMemory(0x4104E9, streaminginfo + 0xC, true);
		WriteMemory(0x41053B, streaminginfo + 0xC, true);
		WriteMemory(0x40AD3D, streaminginfo + 0xC, true);
		WriteMemory(0x40B748, streaminginfo + 0xC, true);
		WriteMemory(0x40B989, streaminginfo + 0xC, true);
		WriteMemory(0x40BDD5, streaminginfo + 0xC, true);
		// m_nCdSize
		WriteMemory(0x4100D0, streaminginfo + 0x10, true);
		WriteMemory(0x410117, streaminginfo + 0x10, true);
		WriteMemory(0x41015B, streaminginfo + 0x10, true);
		WriteMemory(0x4101A0, streaminginfo + 0x10, true);
		WriteMemory(0x4101E4, streaminginfo + 0x10, true);
		WriteMemory(0x410228, streaminginfo + 0x10, true);
		WriteMemory(0x41026C, streaminginfo + 0x10, true);
		WriteMemory(0x4102B8, streaminginfo + 0x10, true);
		WriteMemory(0x41030C, streaminginfo + 0x10, true);
		WriteMemory(0x410361, streaminginfo + 0x10, true);
		WriteMemory(0x4103C3, streaminginfo + 0x10, true);
		WriteMemory(0x410425, streaminginfo + 0x10, true);
		WriteMemory(0x410487, streaminginfo + 0x10, true);
		WriteMemory(0x4104DF, streaminginfo + 0x10, true);
		WriteMemory(0x410531, streaminginfo + 0x10, true);
		WriteMemory(0x40E4CA, streaminginfo + 0x10, true);
		WriteMemory(0x40D777, streaminginfo + 0x10, true);
		WriteMemory(0x40C8AE, streaminginfo + 0x10, true);
		WriteMemory(0x40C686, streaminginfo + 0x10, true);
		WriteMemory(0x40BF74, streaminginfo + 0x10, true);
		WriteMemory(0x40BDC8, streaminginfo + 0x10, true);
		WriteMemory(0x40BA09, streaminginfo + 0x10, true);
		WriteMemory(0x40B97F, streaminginfo + 0x10, true);
		WriteMemory(0x40B73A, streaminginfo + 0x10, true);
		WriteMemory(0x40AD43, streaminginfo + 0x10, true);
		// m_pNext+ ??
		WriteMemory(0x4099E0, streaminginfo + 0x884, true);
		WriteMemory(0x4099CD, streaminginfo + 0x884, true);
		WriteMemory(0x4099BF, streaminginfo + 0x884, true);
		WriteMemory(0x409834, streaminginfo + 0x820, true);
		WriteMemory(0x409825, streaminginfo + 0x820, true);
		WriteMemory(0x409820, streaminginfo + 0x820, true);
		WriteMemory(0x409812, streaminginfo + 0x820, true);
		WriteMemory(0x4097D3, streaminginfo + 0x80C, true);
		WriteMemory(0x4097C4, streaminginfo + 0x80C, true);
		WriteMemory(0x4097BF, streaminginfo + 0x80C, true);
		WriteMemory(0x4097B1, streaminginfo + 0x80C, true);
		WriteMemory(0x40976B, streaminginfo + 0x7F8, true);
		WriteMemory(0x40975C, streaminginfo + 0x7F8, true);
		WriteMemory(0x409757, streaminginfo + 0x7F8, true);
		WriteMemory(0x409749, streaminginfo + 0x7F8, true);
		WriteMemory(0x40970A, streaminginfo + 0x7E4, true);
		WriteMemory(0x4096FB, streaminginfo + 0x7E4, true);
		WriteMemory(0x4096F6, streaminginfo + 0x7E4, true);
		WriteMemory(0x4096E8, streaminginfo + 0x7E4, true);
		WriteMemory(0x4096A9, streaminginfo + 0x7D0, true);
		WriteMemory(0x40969A, streaminginfo + 0x7D0, true);
		WriteMemory(0x409695, streaminginfo + 0x7D0, true);
		WriteMemory(0x409687, streaminginfo + 0x7D0, true);
		WriteMemory(0x409648, streaminginfo + 0x7BC, true);
		WriteMemory(0x409639, streaminginfo + 0x7BC, true);
		WriteMemory(0x409634, streaminginfo + 0x7BC, true);
		WriteMemory(0x409626, streaminginfo + 0x7BC, true);
		WriteMemory(0x4095E7, streaminginfo + 0x7A8, true);
		WriteMemory(0x4095D8, streaminginfo + 0x7A8, true);
		WriteMemory(0x4095D3, streaminginfo + 0x7A8, true);
		WriteMemory(0x4095C5, streaminginfo + 0x7A8, true);
		WriteMemory(0x409586, streaminginfo + 0x794, true);
		WriteMemory(0x409577, streaminginfo + 0x794, true);
		WriteMemory(0x409572, streaminginfo + 0x794, true);
		WriteMemory(0x409564, streaminginfo + 0x794, true);
		WriteMemory(0x40951B, streaminginfo + 0x1270, true);
		WriteMemory(0x40950C, streaminginfo + 0x1270, true);
		WriteMemory(0x409507, streaminginfo + 0x1270, true);
		WriteMemory(0x4094F9, streaminginfo + 0x1270, true);
		WriteMemory(0x409419, streaminginfo + 0x820, true);
		WriteMemory(0x40940A, streaminginfo + 0x820, true);
		WriteMemory(0x409405, streaminginfo + 0x820, true);
		WriteMemory(0x4093F7, streaminginfo + 0x820, true);
		WriteMemory(0x4093B8, streaminginfo + 0x80C, true);
		WriteMemory(0x4093A9, streaminginfo + 0x80C, true);
		WriteMemory(0x4093A4, streaminginfo + 0x80C, true);
		WriteMemory(0x409396, streaminginfo + 0x80C, true);
		WriteMemory(0x409357, streaminginfo + 0x7F8, true);
		WriteMemory(0x409348, streaminginfo + 0x7F8, true);
		WriteMemory(0x409343, streaminginfo + 0x7F8, true);
		WriteMemory(0x409335, streaminginfo + 0x7F8, true);
		WriteMemory(0x4092F6, streaminginfo + 0x7E4, true);
		WriteMemory(0x4092E7, streaminginfo + 0x7E4, true);
		WriteMemory(0x4092E2, streaminginfo + 0x7E4, true);
		WriteMemory(0x4092D4, streaminginfo + 0x7E4, true);
		WriteMemory(0x409295, streaminginfo + 0x7D0, true);
		WriteMemory(0x409286, streaminginfo + 0x7D0, true);
		WriteMemory(0x409281, streaminginfo + 0x7D0, true);
		WriteMemory(0x409273, streaminginfo + 0x7D0, true);
		WriteMemory(0x409234, streaminginfo + 0x7BC, true);
		WriteMemory(0x409225, streaminginfo + 0x7BC, true);
		WriteMemory(0x409220, streaminginfo + 0x7BC, true);
		WriteMemory(0x409212, streaminginfo + 0x7BC, true);
		WriteMemory(0x4091D3, streaminginfo + 0x7A8, true);
		WriteMemory(0x4091C4, streaminginfo + 0x7A8, true);
		WriteMemory(0x4091BF, streaminginfo + 0x7A8, true);
		WriteMemory(0x4091B1, streaminginfo + 0x7A8, true);
		WriteMemory(0x40916E, streaminginfo + 0x794, true);
		WriteMemory(0x40915F, streaminginfo + 0x794, true);
		WriteMemory(0x40915A, streaminginfo + 0x794, true);
		WriteMemory(0x40914C, streaminginfo + 0x794, true);
		WriteMemory(0x4090EB, streaminginfo + 0xCE4, true);
		WriteMemory(0x4090DC, streaminginfo + 0xCE4, true);
		WriteMemory(0x4090D7, streaminginfo + 0xCE4, true);
		WriteMemory(0x4090C9, streaminginfo + 0xCE4, true);
		WriteMemory(0x40905C, streaminginfo + 0x50, true);
		WriteMemory(0x40904D, streaminginfo + 0x50, true);
		WriteMemory(0x409048, streaminginfo + 0x50, true);
		WriteMemory(0x40903A, streaminginfo + 0x50, true);
		WriteMemory(0x408FE6, streaminginfo + 0xCA8, true);
		WriteMemory(0x408FD7, streaminginfo + 0xCA8, true);
		WriteMemory(0x408FD2, streaminginfo + 0xCA8, true);
		WriteMemory(0x408FC4, streaminginfo + 0xCA8, true);
		WriteMemory(0x408F82, streaminginfo + 0xCBC, true);
		WriteMemory(0x408F73, streaminginfo + 0xCBC, true);
		WriteMemory(0x408F6E, streaminginfo + 0xCBC, true);
		WriteMemory(0x408F60, streaminginfo + 0xCBC, true);
		WriteMemory(0x408EDF, streaminginfo + 0x3C, true);
		WriteMemory(0x408ED0, streaminginfo + 0x3C, true);
		WriteMemory(0x408ECB, streaminginfo + 0x3C, true);
		WriteMemory(0x408EBD, streaminginfo + 0x3C, true);
		WriteMemory(0x408E6B, streaminginfo + 0x1130, true);
		WriteMemory(0x408E5C, streaminginfo + 0x1130, true);
		WriteMemory(0x408E57, streaminginfo + 0x1130, true);
		WriteMemory(0x408E49, streaminginfo + 0x1130, true);
		WriteMemory(0x408DCF, streaminginfo + 0x28, true);
		WriteMemory(0x408DC0, streaminginfo + 0x28, true);
		WriteMemory(0x408DBB, streaminginfo + 0x28, true);
		WriteMemory(0x408DAD, streaminginfo + 0x28, true);
		WriteMemory(0x408D61, streaminginfo + 0xC44, true);
		WriteMemory(0x408D52, streaminginfo + 0xC44, true);
		WriteMemory(0x408D4D, streaminginfo + 0xC44, true);
		WriteMemory(0x408D3F, streaminginfo + 0xC44, true);
		/*WriteMemory(0x408DAD, streaminginfo + 0x28, true);
		WriteMemory(0x408DAD, streaminginfo + 0x28, true);
		WriteMemory(0x408DAD, streaminginfo + 0x28, true);
		WriteMemory(0x408DAD, streaminginfo + 0x28, true);
		WriteMemory(0x408DAD, streaminginfo + 0x28, true);
		WriteMemory(0x408DAD, streaminginfo + 0x28, true);
		WriteMemory(0x408DAD, streaminginfo + 0x28, true);
		WriteMemory(0x408DAD, streaminginfo + 0x28, true);*/
	};
} CstreamingPlugin;
