Function at 0x402cd0
Capabilities:
Connect to wmi namespace via wbemlocator
Get http document via iwebbrowser2

Disassembly:
push 0xffffffffffffffff
push 0x417352
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x41c060]
xor eax, esp
push eax
lea eax, [esp + 0xa0]
mov dword fs:[0], eax
xor ebp, ebp
mov dword [esp + 0xa8], ebp
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0xb4]
push eax
mov dword [esp + 0x60], ebp
mov dword [esp + 0x64], ebp
call fcn.00401000
add esp, 4
push str.WmiGetMonitorRawEEdidV1Block
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [esp + 0x44], eax
mov dword [esp + 0x38], ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x34], ebp
push ebp
mov bl, 6
push ebp
mov byte [esp + 0xb0], bl
call dword [sym.imp.ole32.dll_CoInitializeEx]
push ebp
push ebp
push ebp
push 3
push ebp
push ebp
push ebp
push 0xffffffffffffffff
push ebp
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
lea ecx, [esp + 0x3c]
push ecx
push 0x419c94
push 1
push ebp
push 0x419d64
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebp
je 0x402f2d
push eax
push str..EDID.cpp
push 0x1c6
push str.RtkAudioService
call fcn.00401000
add esp, 0x10
mov ebp, dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [esp + 0x4c]
push ecx
call ebp
lea edx, [esp + 0x6c]
push edx
call ebp
lea eax, [esp + 0x7c]
push eax
call ebp
lea ecx, [esp + 0x8c]
push ecx
call ebp
mov eax, dword [esp + 0x28]
xor esi, esi
cmp eax, esi
je 0x402dda
mov dword [esp + 0x28], esi
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov eax, dword [esp + 0x3c]
cmp eax, esi
je 0x402dee
mov dword [esp + 0x3c], esi
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x34]
cmp eax, esi
je 0x402e02
mov dword [esp + 0x34], esi
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x38]
cmp eax, esi
je 0x402e16
mov dword [esp + 0x38], esi
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x40]
cmp eax, esi
je 0x402e2a
mov dword [esp + 0x40], esi
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x402e3e
mov dword [esp + 0x2c], esi
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x44]
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov byte [esp + 0xa8], 5
mov eax, dword [esp + 0x34]
cmp eax, esi
je 0x402e67
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0xa8], 4
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x402e7f
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0xa8], 3
mov eax, dword [esp + 0x40]
cmp eax, esi
je 0x402e97
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0xa8], 2
mov eax, dword [esp + 0x38]
cmp eax, esi
je 0x402eaf
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0xa8], 1
mov eax, dword [esp + 0x28]
cmp eax, esi
je 0x402ec7
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0xa8], 0
mov eax, dword [esp + 0x3c]
cmp eax, esi
je 0x402edf
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov dword [esp + 0xa8], 0xffffffff
mov eax, dword [esp + 0xb4]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x402f0d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x98
ret 8
mov esi, dword [esp + 0x3c]
lea edx, [esp + 0x20]
push edx
mov edi, str.rootwmi
call fcn.00402040
mov byte [esp + 0xa8], 7
mov eax, dword [eax]
cmp eax, ebp
je 0x402f52
mov eax, dword [eax]
jmp 0x402f54
xor eax, eax
mov ecx, dword [esi]
lea edx, [esp + 0x28]
push edx
push ebp
push ebp
push ebp
push ebp
push ebp
push ebp
push eax
mov eax, dword [ecx + 0xc]
push esi
call eax
mov edi, eax
mov byte [esp + 0xa8], bl
mov eax, dword [esp + 0x20]
cmp eax, ebp
je 0x402fb7
mov esi, eax
add eax, 8
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
cmp eax, ebp
jne 0x402fb3
cmp esi, ebp
je 0x402fb3
mov eax, dword [esi]
cmp eax, ebp
je 0x402f9a
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov eax, dword [esi + 4]
cmp eax, ebp
je 0x402faa
push eax
call fcn.004090ab
add esp, 4
push esi
call fcn.00408c26
add esp, 4
mov dword [esp + 0x20], ebp
cmp edi, ebp
je 0x402fcb
push edi
push str..EDID.cpp
push 0x1da
jmp 0x402d92
mov ecx, dword [esp + 0x28]
push ebp
push ebp
push 3
push 3
push ebp
push ebp
push 0xa
push ecx
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
cmp eax, ebp
je 0x402ff4
push eax
push str..EDID.cpp
push 0x1eb
jmp 0x402d92
mov esi, dword [esp + 0x28]
lea edx, [esp + 0x48]
push edx
mov edi, str.Select__from_WmiMonitorDescriptorMethods
call fcn.00402040
mov edi, eax
lea ebx, [esp + 0x30]
mov byte [esp + 0xa8], 8
call fcn.00401fb0
mov byte [esp + 0xa8], 9
mov ecx, dword [edi]
test ecx, ecx
je 0x40302c
mov ecx, dword [ecx]
jmp 0x40302e
xor ecx, ecx
mov eax, dword [eax]
test eax, eax
je 0x403038
mov eax, dword [eax]
jmp 0x40303a
xor eax, eax
mov edx, dword [esi]
lea edi, [esp + 0x34]
push edi
push 0
push 0x30
push ecx
push eax
mov eax, dword [edx + 0x50]
push esi
call eax
lea edi, [esp + 0x30]
mov esi, eax
call fcn.004020e0
lea edi, [esp + 0x48]
mov byte [esp + 0xa8], 6
call fcn.004020e0
test esi, esi
je 0x40307d
push esi
push str..EDID.cpp
push 0x1fc
jmp 0x402d92
mov esi, dword [esp + 0x28]
lea ecx, [esp + 0x30]
push ecx
mov edi, 0x41a130
call fcn.00402040
mov byte [esp + 0xa8], 0xa
mov eax, dword [eax]
test eax, eax
je 0x4030a2
mov eax, dword [eax]
jmp 0x4030a4
xor eax, eax
mov edx, dword [esi]
mov edx, dword [edx + 0x18]
push 0
lea ecx, [esp + 0x3c]
push ecx
push 0
push 0
push eax
push esi
call edx
lea edi, [esp + 0x30]
mov esi, eax
mov byte [esp + 0xa8], 6
call fcn.004020e0
test esi, esi
je 0x4030df
push esi
push str..EDID.cpp
push 0x209
jmp 0x402d92
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
push 0
lea edx, [esp + 0x44]
push edx
mov edx, dword [esp + 0x4c]
push 0
push edx
push eax
mov eax, dword [ecx + 0x4c]
call eax
test eax, eax
je 0x40310d
push eax
push str..EDID.cpp
push 0x210
jmp 0x402d92
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
lea edx, [esp + 0x2c]
push edx
push 0
push eax
mov eax, dword [ecx + 0x3c]
call eax
test eax, eax
je 0x403134
push eax
push str..EDID.cpp
push 0x213
jmp 0x402d92
mov eax, dword [esp + 0x34]
test eax, eax
je 0x402d9f
mov ebp, dword [sym.imp.OLEAUT32.dll_VariantCopy]
jmp 0x403150
xor ebx, ebx
cmp dword [esp + 0x5c], ebx
jne 0x4034fe
mov dword [esp + 0x18], ebx
lea edx, [esp + 0x68]
push edx
lea edx, [esp + 0x1c]
push edx
mov byte [esp + 0xb0], 0xb
push 1
mov dword [esp + 0x74], ebx
mov ecx, dword [eax]
push 0xffffffffffffffff
push eax
mov eax, dword [ecx + 0x10]
call eax
cmp eax, ebx
jne 0x403514
lea ecx, [esp + 0x1c]
push ecx
mov ecx, 0x419efc
call fcn.00401980
lea edx, [esp + 0x4c]
push edx
mov byte [esp + 0xac], 0xc
call dword [sym.imp.OLEAUT32.dll_VariantClear]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax]
push ebx
push ebx
lea edx, [esp + 0x54]
push edx
push ebx
push str.InstanceName
push eax
mov eax, dword [ecx + 0x10]
call eax
lea ecx, [esp + 0x4c]
push ecx
lea edi, [esp + 0x20]
mov esi, eax
call fcn.00403b70
lea edx, [esp + 0x4c]
push edx
call ebp
cmp esi, ebx
jne 0x40354d
call fcn.004039f0
mov eax, dword [esp + 0x1c]
push eax
call fcn.00401000
mov eax, dword [esp + 0xb8]
add esp, 4
cmp eax, ebx
je 0x403494
mov ecx, dword [esp + 0x1c]
cmp dword [ecx - 0xc], ebx
jl 0x403494
push eax
push ecx
call fcn.00408d66
add esp, 8
cmp eax, ebx
je 0x403494
sub eax, dword [esp + 0x1c]
sar eax, 1
cmp eax, 0xffffffff
je 0x403494
mov dword [esp + 0x48], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
lea ecx, [esp + 0x64]
mov byte [esp + 0xa8], 0xe
mov esi, dword [esp + 0x18]
push ecx
mov edi, str.__PATH
call fcn.00402040
mov byte [esp + 0xa8], 0xf
mov eax, dword [eax]
cmp eax, ebx
je 0x403270
mov eax, dword [eax]
jmp 0x403272
xor eax, eax
mov edx, dword [esi]
mov edx, dword [edx + 0x10]
push ebx
push ebx
lea ecx, [esp + 0x94]
push ecx
push ebx
push eax
push esi
call edx
lea edi, [esp + 0x64]
mov esi, eax
mov byte [esp + 0xa8], 0xe
call fcn.004020e0
cmp esi, ebx
jne 0x403570
mov edi, dword [sym.imp.OLEAUT32.dll_VariantClear]
lea eax, [esp + 0x4c]
push eax
call edi
mov eax, dword [esp + 0x2c]
push ebx
lea edx, [esp + 0x50]
push edx
push ebx
mov word [esp + 0x58], 0x11
mov word [esp + 0x60], bx
mov ecx, dword [eax]
push str.BlockId
push eax
mov eax, dword [ecx + 0x14]
call eax
lea ecx, [esp + 0x4c]
push ecx
mov esi, eax
call ebp
cmp esi, ebx
jne 0x4035c6
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
mov edx, dword [edx + 0x60]
push ebx
lea ecx, [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x50]
push ebx
push ebx
push ecx
mov ecx, dword [esp + 0xac]
push ecx
push eax
call edx
mov esi, eax
lea eax, [esp + 0x4c]
push eax
call ebp
cmp esi, ebx
jne 0x4035d3
lea ecx, [esp + 0x6c]
push ecx
call edi
mov eax, dword [esp + 0x20]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
push ebx
push ebx
lea ecx, [esp + 0x74]
push ecx
push ebx
push str.BlockContent
push eax
call edx
cmp eax, ebx
jne 0x4035e0
lea eax, [esp + 0x4c]
push eax
call edi
mov eax, dword [esp + 0x2c]
push ebx
lea edx, [esp + 0x50]
push edx
push ebx
mov word [esp + 0x58], 0x11
mov word [esp + 0x60], 1
mov ecx, dword [eax]
push str.BlockId
push eax
mov eax, dword [ecx + 0x14]
call eax
lea ecx, [esp + 0x4c]
push ecx
mov esi, eax
call ebp
cmp esi, ebx
jne 0x4035ed
mov eax, dword [esp + 0x28]
mov edx, dword [eax]
mov edx, dword [edx + 0x60]
push ebx
lea ecx, [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x50]
push ebx
push ebx
push ecx
mov ecx, dword [esp + 0xac]
push ecx
push eax
call edx
mov esi, eax
lea eax, [esp + 0x4c]
push eax
call ebp
cmp esi, ebx
jne 0x4035fa
lea ecx, [esp + 0x7c]
push ecx
call edi
mov eax, dword [esp + 0x24]
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
push ebx
push ebx
lea ecx, [esp + 0x84]
push ecx
push ebx
push str.BlockContent
push eax
call edx
cmp eax, ebx
jne 0x40360a
mov ecx, dword [esp + 0x74]
mov esi, dword [sym.imp.OLEAUT32.dll_SafeArrayUnaccessData]
lea eax, [esp + 0x48]
push eax
push ecx
call esi
mov eax, dword [esp + 0x84]
lea edx, [esp + 0x30]
push edx
push eax
call esi
mov esi, dword [esp + 0x48]
cmp esi, ebx
je 0x403432
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x403432
mov edx, dword [esp + 0xb0]
mov ecx, 0x20
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea edi, [edx + 0x80]
mov ecx, 0x20
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x74]
mov esi, dword [sym.imp.OLEAUT32.dll_SafeArrayGetElement]
push ecx
call esi
mov edx, dword [esp + 0x84]
push edx
call esi
lea eax, [esp + 0x6c]
push eax
call ebp
lea ecx, [esp + 0x7c]
push ecx
call ebp
mov dword [esp + 0x5c], 1
call fcn.00401000
mov byte [esp + 0xa8], 0xd
mov eax, dword [esp + 0x24]
cmp eax, ebx
je 0x40347c
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov byte [esp + 0xa8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x403494
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x4034a8
mov dword [esp + 0x18], ebx
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0xa8], 0xb
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4034d0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov byte [esp + 0xa8], 6
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x4034e8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov eax, dword [esp + 0x34]
cmp eax, ebx
jne 0x403150
cmp dword [esp + 0x5c], ebx
je 0x402da5
mov eax, dword [esp + 0xb0]
push eax
call fcn.004027a0
mov dword [esp + 0x60], eax
jmp 0x402da5
push eax
push str..EDID.cpp
push 0x21f
push str.RtkAudioService
call fcn.00401000
add esp, 0x10
mov byte [esp + 0xa8], 6
mov eax, dword [esp + 0x18]
cmp eax, ebx
je 0x402da5
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
jmp 0x402da5
push esi
push str..EDID.cpp
push 0x228
push str.RtkAudioService
call fcn.00401000
add esp, 0x10
lea eax, [esp + 0x1c]
call fcn.00401ba0
jmp 0x40352c
push esi
push str..EDID.cpp
push 0x234
push str.RtkAudioService
call fcn.00401000
mov byte [esp + 0xb8], 0xd
mov eax, dword [esp + 0x34]
add esp, 0x10
cmp eax, ebx
je 0x4035a0
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
mov byte [esp + 0xa8], 0xc
mov eax, dword [esp + 0x20]
cmp eax, ebx
je 0x4035b8
mov ecx, dword [eax]
mov edx, dword [ecx + 8]
push eax
call edx
lea eax, [esp + 0x1c]
call fcn.00401ba0
jmp 0x40352c
push esi
push str..EDID.cpp
push 0x23d
jmp 0x40357b
push esi
push str..EDID.cpp
push 0x244
jmp 0x40357b
push eax
push str..EDID.cpp
push 0x248
jmp 0x40357b
push esi
push str..EDID.cpp
push 0x251
jmp 0x40357b
push esi
push str..EDID.cpp
push 0x258
jmp 0x40357b
push eax
push str..EDID.cpp
push 0x25c
jmp 0x40357b