feat(gx): refresh CGxDevice studies

This commit is contained in:
phaneron 2025-04-29 16:26:36 -04:00
parent abcd88b4c1
commit 6a6d154b0a
63 changed files with 2685 additions and 549 deletions

View file

@ -181,6 +181,15 @@ static import_data_types() {
apply_type(0x00683650, "uint32_t* __thiscall func(CGxDevice* this)");
apply_type(0x00683660, "void __thiscall func(CGxDevice* this, float depth)");
apply_type(0x00683670, "void __stdcall func()");
apply_type(0x00683D60, "void __stdcall func(CiRect* windowRect)");
apply_type(0x00683DB0, "void __stdcall func(CiRect* windowRect)");
apply_type(0x00683E00, "void __stdcall func(CiRect* windowRect)");
apply_type(0x00683E50, "void __stdcall func(CiRect* windowRect)");
apply_type(0x00683EA0, "void __stdcall func(CiRect* windowRect)");
apply_type(0x00683ED0, "void __stdcall func(CiRect* windowRect)");
apply_type(0x00683F00, "void __stdcall func(CiRect* windowRect)");
apply_type(0x00683F30, "void __stdcall func(CiRect* windowRect)");
apply_type(0x00683FB0, "CGxLight* __thiscall func(CGxLight* this)");
apply_type(0x006840F0, "int32_t __thiscall func(CGxDevice* this, CGxFormat* format)");
apply_type(0x00684170, "void __thiscall func(CGxDevice* this, float gamma)");
apply_type(0x00684190, "int32_t __thiscall func(CGxDevice* this, CGxGammaRamp* ramp)");
@ -287,6 +296,7 @@ static import_data_types() {
apply_type(0x00690680, "int32_t __thiscall func(CGxDeviceD3d* this)");
apply_type(0x00690750, "void __thiscall func(CGxDeviceD3d* this, int32_t (*windowProc)(void*, uint32_t, uintptr_t, intptr_t), CGxFormat* format)");
apply_type(0x00690830, "void __thiscall func(CGxDeviceD3d* this, uintptr_t hwnd, CGxFormat* format)");
apply_type(0x0069FAA0, "int32_t __thiscall func(CGxDeviceD3d* this, D3DFORMAT format)");
apply_type(0x0069FB00, "LPDIRECT3DVERTEXBUFFER9 __thiscall func(EGxPoolUsage usage, uint32_t size)");
apply_type(0x0069FB70, "int32_t __thiscall func(CGxDeviceD3d* this, CGxPool* pool)");
apply_type(0x0069FE10, "void __thiscall func(CGxDeviceD3d* this, int32_t a1)");
@ -313,17 +323,22 @@ static import_data_types() {
apply_type(0x006A3420, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A3450, "void __thiscall func(CGxDeviceD3d* this, uint32_t mask)");
apply_type(0x006A3620, "void __thiscall func(CGxDeviceD3d* this, CGxBatch* batch)");
apply_type(0x006A3720, "bool __thiscall func(CGxDeviceD3d__GxVertexDecl* this, D3DVERTEXELEMENT9* elements, uint32_t count)");
apply_type(0x006A3810, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A3870, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A38D0, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A39E0, "void __thiscall func(CGxDeviceD3d* this, uint32_t stream, LPDIRECT3DVERTEXBUFFER9 buffer, uint32_t offset, uint32_t stride)");
apply_type(0x006A3A60, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A3C40, "void __thiscall func(CGxDeviceD3d* this, CGxDeviceD3d__EDeviceState state, uint32_t val)");
apply_type(0x006A4190, "void __thiscall func(CGxDeviceD3d* this, uint32_t a1, uint32_t val)");
apply_type(0x006A41F0, "void __thiscall func(CGxDeviceD3d* this, uint32_t a1, uint32_t val)");
apply_type(0x006A43D0, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A4700, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A4850, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A4900, "void __thiscall func(CGxDeviceD3d* this, uint32_t tmu, CGxTex* texId)");
apply_type(0x006A4C30, "void __thiscall func(CGxDeviceD3d* this, EGxRenderState rs)");
apply_type(0x006A5540, "LPDIRECT3DVERTEXDECLARATION9 __thiscall func(CGxDeviceD3d* this, D3DVERTEXELEMENT9* elements, uint32_t count)");
apply_type(0x006A5680, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A5700, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A5940, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A5A00, "void __thiscall func(CGxDeviceD3d* this, CRect* dst)");
@ -333,7 +348,9 @@ static import_data_types() {
apply_type(0x006A5E10, "void __thiscall func(CGxDeviceD3d* this, CGxShader* shader)");
apply_type(0x006A5EF0, "void __thiscall func(CGxDevice* this, CGxTex* texId, uint32_t* width, uint32_t* height, uint32_t* baseMip, uint32_t* mipCount)");
apply_type(0x006A74B0, "void __thiscall func(CGxDeviceD3d* this, uint32_t mask, CImVector color)");
apply_type(0x006A7940, "void __thiscall func(CGxDeviceD3d* this, uint32_t width, uint32_t height)");
apply_type(0x006A9920, "void __thiscall func(CGxDeviceD3d* this, CRect* dst)");
apply_type(0x006A99E0, "void __thiscall func(CGxDeviceD3d* this)");
apply_type(0x006A9B40, "void __thiscall func(CGxDeviceD3d* this, C44Matrix* matrix)");
apply_type(0x006A9E00, "void __thiscall func(CGxDeviceD3d* this, C44Matrix* matrix)");
apply_type(0x006A9FE0, "void __thiscall func(CGxDeviceD3d* this)");
@ -524,6 +541,15 @@ static import_data_types() {
apply_type(0x0086BBA0, "uint64_t __stdcall func()");
apply_type(0x0086C6E0, "int32_t __stdcall func(void* parentWindow, int32_t style, const char* message, const char* title)");
apply_type(0x0086D430, "void __stdcall func(TimingMethod timingMethod)");
apply_type(0x008A0A54, "NvAPI_Status __stdcall func(int32_t nr, char* szDesc)");
apply_type(0x008A0F88, "NvAPI_Status __stdcall func(NV_StereoRegistryProfileType registryProfileType)");
apply_type(0x008A0FA0, "NvAPI_Status __stdcall func()");
apply_type(0x008A0FA6, "NvAPI_Status __stdcall func()");
apply_type(0x008A0FAC, "NvAPI_Status __stdcall func(uint8_t* pIsStereoEnabled)");
apply_type(0x008A0FB2, "NvAPI_Status __stdcall func(IUnknown* pDevice, StereoHandle* pStereoHandle)");
apply_type(0x008A0FB8, "NvAPI_Status __stdcall func(StereoHandle stereoHandle)");
apply_type(0x008A0FD6, "NvAPI_Status __stdcall func(StereoHandle stereoHandle, float newSeparationPercentage)");
apply_type(0x008A0FEE, "NvAPI_Status __stdcall func(StereoHandle stereoHandle, float newConvergence)");
apply_type(0x008C8DE0, "int32_t __stdcall func()");
apply_type(0x0095BFB0, "int32_t __stdcall func()");
apply_type(0x0095F3A0, "void __thiscall func(CSimpleModel* this)");
@ -579,7 +605,22 @@ static import_data_types() {
apply_type(0x009E5630, "Blizzard__File__FileInfo");
apply_type(0x009E9EC8, "uint32_t[7]");
apply_type(0x009EA04C, "TInstanceId_EvtContext__v_table");
apply_type(0x00A2DDC0, "CGxDevice__vtable");
apply_type(0x00A2DDC0, "CGxDevice__v_table");
apply_type(0x00A2E198, "CGxDevice__v_table");
apply_type(0x00A2E4A8, "D3DFORMAT[8]");
apply_type(0x00A2E4C8, "uint32_t[7]");
apply_type(0x00A2E718, "CGxDevice__v_table");
apply_type(0x00A2F7E8, "EGxTexFormat[13]");
apply_type(0x00A2F81C, "D3DFORMAT[13]");
apply_type(0x00A2F850, "D3DCUBEMAP_FACES[6]");
apply_type(0x00A2F8D4, "D3DPRIMITIVETYPE[6]");
apply_type(0x00A2F8EC, "D3DDECLUSAGE[14]");
apply_type(0x00A2F924, "uint32_t[14]");
apply_type(0x00A2F964, "D3DBLEND[12]");
apply_type(0x00A2F994, "D3DBLEND[12]");
apply_type(0x00A2F9C4, "D3DTEXTUREADDRESS[2]");
apply_type(0x00A2FA14, "D3DCMPFUNC[4]");
apply_type(0x00A2FA24, "D3DCULL[3]");
apply_type(0x00AB6350, "WowClientDB_Startup_StringsRec");
apply_type(0x00AB90AC, "Blizzard__File__Filesystem*");
apply_type(0x00AB91C0, "Blizzard__File__Filesystem");
@ -822,6 +863,10 @@ static import_data_types() {
apply_type(0x00AD5120, "WowClientDB_SoundFilterElemRec");
apply_type(0x00AD87C4, "char*[8]");
apply_type(0x00AD87E4, "char*[6]");
apply_type(0x00AD8BC0, "C2iVector");
apply_type(0x00AD8EF0, "EGxTexFormat[13]");
apply_type(0x00AD8F24, "D3DDECLTYPE[7]");
apply_type(0x00AD8F40, "D3DTEXTUREFILTERTYPE[6][3]");
apply_type(0x00AD90B0, "uint8_t[16]");
apply_type(0x00AD90C0, "uint8_t[2]");
apply_type(0x00ADBAB4, "RECTF");
@ -847,6 +892,8 @@ static import_data_types() {
apply_type(0x00AF4A04, "WowClientDB_LightParamsRec");
apply_type(0x00AF4A28, "WowClientDB_LightRec");
apply_type(0x00B1D2AC, "int32_t");
apply_type(0x00B23770, "int32_t");
apply_type(0x00B23778, "NvApi__InterfaceTable[253]");
apply_type(0x00B2F994, "HEVENTCONTEXT");
apply_type(0x00B38180, "bool");
apply_type(0x00B38181, "bool");
@ -878,9 +925,11 @@ static import_data_types() {
apply_type(0x00C5DF74, "uint32_t");
apply_type(0x00C5DF7C, "uint32_t");
apply_type(0x00C5DF88, "CGxDevice*");
apply_type(0x00C5FFF0, "float");
apply_type(0x00C5FFF4, "uint32_t");
apply_type(0x00C5FFF8, "HSLOG");
apply_type(0x00C60300, "C2iVector");
apply_type(0x00C606F8, "D3DLIGHT9");
apply_type(0x00CA1690, "float");
apply_type(0x00CA1694, "int32_t");
apply_type(0x00CA1718, "float");

View file

@ -2677,6 +2677,8 @@ static import_symbols() {
set_name(0x00681290, "GxDevCreate");
set_name(0x006813B0, "GxSceneClear");
set_name(0x006813D0, "GxTexUpdate");
set_name(0x00681470, "GxTexDestroy");
set_name(0x006814D0, "GxTexCopy");
set_name(0x00681630, "GxQueryCreate");
set_name(0x00681770, "GxSetMaxFPS");
set_name(0x00681780, "GxGetMaxFPS");
@ -2691,6 +2693,7 @@ static import_symbols() {
set_name(0x00681B00, "GxPrimVertexPtr");
set_name(0x00681BE0, "CGxTexFlags__CGxTexFlags");
set_name(0x00681CB0, "GxTexCreate");
set_name(0x00681F20, "GxTexUpdate@2");
set_name(0x00681F60, "GxXformSetViewport");
set_name(0x00682340, "GxDrawLockedElements@2");
set_name(0x006823A0, "GxPrimLockIndexPtr");
@ -2698,6 +2701,7 @@ static import_symbols() {
set_name(0x006828C0, "GxPrimLockVertexPtrs");
set_name(0x00682A00, "GxScenePresent");
set_name(0x00682B80, "GxDevDestroy");
set_name(0x00682C40, "EmergencyMem__Unlock");
set_name(0x00682CB0, "CGxDevice__DeviceCreate");
set_name(0x00682CD0, "CGxDevice__DeviceCreate@2");
set_name(0x00682CF0, "CGxDevice__DeviceDestroy");
@ -2730,6 +2734,15 @@ static import_symbols() {
set_name(0x00683660, "CGxDevice__CursorSetDepth");
set_name(0x00683670, "CGxDevice__LogOpen");
set_name(0x006836B0, "CGxDevice__LogClose");
set_name(0x00683D60, "CGxDevice__WindowConstrainTopByAspect");
set_name(0x00683DB0, "CGxDevice__WindowConstrainBottomByAspect");
set_name(0x00683E00, "CGxDevice__WindowConstrainLeftByAspect");
set_name(0x00683E50, "CGxDevice__WindowConstrainRightByAspect");
set_name(0x00683EA0, "CGxDevice__WindowConstrainLeft");
set_name(0x00683ED0, "CGxDevice__WindowConstrainRight");
set_name(0x00683F00, "CGxDevice__WindowConstrainTop");
set_name(0x00683F30, "CGxDevice__WindowConstrainBottom");
set_name(0x00683FB0, "CGxLight__CGxLight");
set_name(0x006840F0, "CGxDevice__DeviceSetFormat");
set_name(0x00684170, "CGxDevice__DeviceSetGamma");
set_name(0x00684190, "CGxDevice__DeviceSetGamma@2");
@ -2776,6 +2789,7 @@ static import_symbols() {
set_name(0x006876D0, "CGxDevice__PoolCreate");
set_name(0x006877C0, "CGxDevice__QueryCreate");
set_name(0x00687820, "CGxDevice__ShaderDestroy");
set_name(0x00687900, "CGxDevice__DeviceCreateStreamBufs");
set_name(0x00687940, "CGxDevice__DeviceCreatePools");
set_name(0x00687980, "CGxDevice__TexDestroy");
set_name(0x006879F0, "CGxDevice__QueryDestroy");
@ -2835,11 +2849,13 @@ static import_symbols() {
set_name(0x0068FED0, "CGxDeviceD3d__DeviceReadPixels");
set_name(0x00690150, "CGxDeviceD3d__IReleaseD3dResources");
set_name(0x00690230, "CGxDeviceD3d__DeviceWM");
set_name(0x006903B0, "CGxDeviceD3d__IDestroyD3d");
set_name(0x006904D0, "CGxDeviceD3d__DeviceSetFormat");
set_name(0x006905F0, "CGxDeviceD3d__DeviceDestroy");
set_name(0x00690680, "CGxDeviceD3d__ICreateD3d");
set_name(0x00690750, "CGxDeviceD3d__DeviceCreate");
set_name(0x00690830, "CGxDeviceD3d__DeviceCreate@2");
set_name(0x0069FAA0, "CGxDeviceD3d__Sub69FAA0");
set_name(0x0069FB00, "CGxDeviceD3d__ICreateD3dVB");
set_name(0x0069FB70, "CGxDeviceD3d__CreatePoolAPI");
set_name(0x0069FE10, "CGxDeviceD3d__ICursorClip");
@ -2857,6 +2873,7 @@ static import_symbols() {
set_name(0x006A0360, "CGxDeviceD3d__WindowProcD3d");
set_name(0x006A1950, "CGxDeviceD3d__DeviceReadDepths");
set_name(0x006A1A90, "CGxDeviceD3d9Ex__CGxDeviceD3d9Ex");
set_name(0x006A2AA0, "CGxDeviceD3d__ITexForceRecreation");
set_name(0x006A2BB0, "CGxDeviceD3d__TexDestroy");
set_name(0x006A2C00, "CGxDeviceD3d__ITexCreate");
set_name(0x006A2D80, "CGxDeviceD3d__ITexUpload");
@ -2867,17 +2884,22 @@ static import_symbols() {
set_name(0x006A3420, "CGxDeviceD3d__ISceneEnd");
set_name(0x006A3450, "CGxDeviceD3d__ScenePresent");
set_name(0x006A3620, "CGxDeviceD3d__Draw");
set_name(0x006A3720, "CGxDeviceD3d__GxVertexDecl__Compare");
set_name(0x006A3810, "CGxDeviceD3d__IStateSyncEnables");
set_name(0x006A3870, "CGxDeviceD3d__IStateSyncClipPlanes");
set_name(0x006A38D0, "CGxDeviceD3d__IStateSyncScissorRect");
set_name(0x006A39E0, "CGxDeviceD3d__ISetVertexBuffer");
set_name(0x006A3A60, "CGxDeviceD3d__IStateSetD3DDefaults");
set_name(0x006A3C40, "CGxDeviceD3d__DsSet");
set_name(0x006A4190, "CGxDeviceD3d__ISetColorOp");
set_name(0x006A41F0, "CGxDeviceD3d__ISetAlphaOp");
set_name(0x006A43D0, "CGxDeviceD3d__IStateSyncLights");
set_name(0x006A4700, "CGxDeviceD3d__IStateSyncMaterial");
set_name(0x006A4850, "CGxDeviceD3d__IStateSyncXforms");
set_name(0x006A4900, "CGxDeviceD3d__ISetTexture");
set_name(0x006A4C30, "CGxDeviceD3d__IRsSendToHw");
set_name(0x006A5540, "CGxDeviceD3d__ICreateD3dVertexDecl");
set_name(0x006A5680, "CGxDeviceD3d__IReleaseD3dVertexDecl");
set_name(0x006A5700, "CGxDeviceD3d__IStateSyncVertexPtrs");
set_name(0x006A5940, "CGxDeviceD3d__IStateSync");
set_name(0x006A5A00, "CGxDeviceD3d__CapsWindowSize");
@ -2887,7 +2909,9 @@ static import_symbols() {
set_name(0x006A5E10, "CGxDeviceD3d__IShaderCreate");
set_name(0x006A5EF0, "CGxDevice__ITexWHDStartEnd");
set_name(0x006A74B0, "CGxDeviceD3d__SceneClear");
set_name(0x006A7940, "CGxDeviceD3d__Sub6A7940");
set_name(0x006A9920, "CGxDeviceD3d__CapsWindowSizeInScreenCoords");
set_name(0x006A99E0, "CGxDeviceD3d__IXformSetViewport");
set_name(0x006A9B40, "CGxDeviceD3d__XformSetProjection");
set_name(0x006A9E00, "CGxDeviceD3d__XformSetView");
set_name(0x006A9FE0, "CGxDeviceD3d__IShaderConstantsFlush");
@ -3691,6 +3715,16 @@ static import_symbols() {
set_name(0x00877E10, "SI2__Log_Write");
set_name(0x00878010, "SI2__Log_Write@2");
set_name(0x0087E020, "SI2__InitCapture");
set_name(0x008A09BA, "NvAPI_Initialize");
set_name(0x008A0A54, "NvAPI_GetErrorMessage");
set_name(0x008A0F88, "NvAPI_Stereo_CreateConfigurationProfileRegistryKey");
set_name(0x008A0FA0, "NvAPI_Stereo_Enable");
set_name(0x008A0FA6, "NvAPI_Stereo_Disable");
set_name(0x008A0FAC, "NvAPI_Stereo_IsEnabled");
set_name(0x008A0FB2, "NvAPI_Stereo_CreateHandleFromIUnknown");
set_name(0x008A0FB8, "NvAPI_Stereo_DestroyHandle");
set_name(0x008A0FD6, "NvAPI_Stereo_SetSeparation");
set_name(0x008A0FEE, "NvAPI_Stereo_SetConvergence");
set_name(0x008A1420, "stub_return_one_byte");
set_name(0x008C0360, "FFX__Destroy");
set_name(0x008C8DE0, "stub_return_int32_one");
@ -4079,10 +4113,23 @@ static import_symbols() {
set_name(0x009E9EC8, "firstByteMark@2");
set_name(0x009EA04C, "TInstanceId_EvtContext__v_table");
set_name(0x009F1074, "s_pixelFormatToMipBitsCache");
set_name(0x00A2DDC0, "CGxDevice__vtable");
set_name(0x00A2E198, "CGxDeviceOpenGl__vtable");
set_name(0x00A2E718, "CGxDeviceD3d__vtable");
set_name(0x00A2DDC0, "CGxDevice__v_table");
set_name(0x00A2E198, "CGxDeviceOpenGl__v_table");
set_name(0x00A2E4A8, "CGxDeviceD3d__s_GxFormatToD3dFormat");
set_name(0x00A2E4C8, "CGxDeviceD3d__s_gxAttribToD3dAttribSize");
set_name(0x00A2E718, "CGxDeviceD3d__v_table");
set_name(0x00A2F500, "CGxDeviceD3d9Ex__vtable");
set_name(0x00A2F7E8, "CGxDeviceD3d__s_tolerableTexFmtMapping");
set_name(0x00A2F81C, "CGxDeviceD3d__s_GxTexFmtToD3dFmt");
set_name(0x00A2F850, "CGxDeviceD3d__s_faceTypes");
set_name(0x00A2F8D4, "CGxDeviceD3d__s_primitiveConversion");
set_name(0x00A2F8EC, "CGxDeviceD3d__s_gxAttribToD3dAttribUsage");
set_name(0x00A2F924, "CGxDeviceD3d__s_gxAttribToD3dAttribUsageIndex");
set_name(0x00A2F964, "CGxDeviceD3d__s_srcBlend");
set_name(0x00A2F994, "CGxDeviceD3d__s_dstBlend");
set_name(0x00A2F9C4, "CGxDeviceD3d__s_wrapModes");
set_name(0x00A2FA14, "CGxDeviceD3d__s_cmpFunc");
set_name(0x00A2FA24, "CGxDeviceD3d__s_cullMode");
set_name(0x00AB6350, "g_startup_StringsDB");
set_name(0x00AB90AC, "System_File__Stacked__s_manager");
set_name(0x00AB912C, "System_File__read_func");
@ -4329,6 +4376,10 @@ static import_symbols() {
set_name(0x00AD5120, "g_soundFilterElemDB");
set_name(0x00AD87C4, "formatToInt");
set_name(0x00AD87E4, "g_gxApiNames");
set_name(0x00AD8BC0, "CGxDevice__kWinMinSize");
set_name(0x00AD8EF0, "CGxDeviceD3d__s_GxTexFormatToUse");
set_name(0x00AD8F24, "CGxDeviceD3d__s_gxAttribToD3dAttribType");
set_name(0x00AD8F40, "CGxDeviceD3d__s_filterModes");
set_name(0x00AD90B0, "CBLPFile__s_eightBitAlphaLookup");
set_name(0x00AD90C0, "CBLPFile__s_oneBitAlphaLookup");
set_name(0x00ADBAB4, "s_rect");
@ -4354,6 +4405,9 @@ static import_symbols() {
set_name(0x00AF4A04, "g_lightParamsDB");
set_name(0x00AF4A28, "g_lightDB");
set_name(0x00B1D2AC, "s_sleepInBackground");
set_name(0x00B2376C, "NvApi__s_initialized");
set_name(0x00B23770, "result");
set_name(0x00B23778, "NvApi__s_interface_table");
set_name(0x00B2F050, "s_streamingdiag");
set_name(0x00B2F994, "g_clientEventContext");
set_name(0x00B38180, "Blizzard__Streaming__s_streamingReady");
@ -4456,12 +4510,14 @@ static import_symbols() {
set_name(0x00C5DF74, "s_maxFPSBk");
set_name(0x00C5DF7C, "s_maxFPS");
set_name(0x00C5DF88, "g_theGxDevicePtr");
set_name(0x00C5DFDC, "CGxDevice__s_uiVertexShader");
set_name(0x00C5DFD8, "CGxDevice__s_uiVertexShader");
set_name(0x00C5DFE0, "CGxDevice__s_shadowConstants");
set_name(0x00C5FFF0, "CGxDevice__kWinAspect");
set_name(0x00C5FFF4, "CGxDevice__m_logBytes");
set_name(0x00C5FFF8, "CGxDevice__m_log");
set_name(0x00C5FFFC, "CGxDevice__s_uiPixelShader");
set_name(0x00C60300, "CGxDevice__s_clientAdjust");
set_name(0x00C606F8, "d3dLight");
set_name(0x00C60760, "isIdent");
set_name(0x00C79CE4, "ClientServices__m_instance");
set_name(0x00C79CE9, "ClientServices__m_selectRealmInfoValid");