; Snippet from COMSVCS.DLL disassembly that seems to be comparing the requested property name
; to a list of static variables containing valid names.

; Are the variables initialized?
7576188C  cmp         dword ptr [CStdContextActivator::sm_fIntrinsicsInitialized (75811D0Ch)],ebx 
75761892  jne         CContext::GetProperty+49h (75761899h) 
75761894  call        CStdContextActivator::InitializeIntrinsicNamesAndGuids (75771BC2h) 

; When they are, call FindUniqueName, which returns a raw pointer to one of the static BSTRs
; or a pointer to a copy of the passed in BSTR (which is at [ebp+0Ch])
75761899  push        dword ptr [ebp+0Ch] 
7576189C  call        CAssociation::FindUniqueName (75794F29h) 

; Put return value in esi
757618A1  mov         esi,eax 

; Compare esi to each and every one of the valid property name pointers
757618A3  cmp         esi,dword ptr [CStdContextActivator::sm_bstrApplication (75811CA4h)] 
757618A9  je          CContext::GetProperty+83h (757618D3h) 
757618AB  cmp         esi,dword ptr [CStdContextActivator::sm_bstrCedarSecurity (75811CC0h)] 
757618B1  je          CContext::GetProperty+83h (757618D3h) 
757618B3  cmp         esi,dword ptr [CStdContextActivator::sm_bstrRequest (75811CD4h)] 
757618B9  je          CContext::GetProperty+83h (757618D3h) 
757618BB  cmp         esi,dword ptr [CStdContextActivator::sm_bstrResponse (75811CBCh)] 
757618C1  je          CContext::GetProperty+83h (757618D3h) 
757618C3  cmp         esi,dword ptr [CStdContextActivator::sm_bstrServer (75811CD8h)] 
757618C9  je          CContext::GetProperty+83h (757618D3h) 
757618CB  cmp         esi,dword ptr [CStdContextActivator::sm_bstrSession (75811CB8h)] 
757618D1  jne         CContext::GetProperty+0B5h (75761905h)

; From here on, the actual property retrieval happens