Function at 0x41031fe0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x41149f6b
mov eax, dword fs:[0]
push eax
sub esp, 0x220
mov eax, dword [0x411bade8]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 8]
push str.Entering_CTPACWMI::GetObject
push 0x41157f9c
push 0x1000001
push 0x311
push str.WMIProv.cpp
call fcn.41002c10
xor edi, edi
add esp, 0x14
mov dword [ebp - 0x22c], edi
mov dword [ebp - 0x228], edi
mov dword [ebp - 0x224], edi
push 0x20019
push str.SoftwareThinPrintTPAutoConnect
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x22c]
mov dword [ebp - 4], edi
call fcn.41003910
test eax, eax
je 0x41032082
mov eax, dword [ebp - 0x22c]
cmp eax, edi
je 0x41032078
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 0x80041001
jmp 0x4103280a
mov eax, dword [0x411bc370]
push eax
call fcn.41030b50
add esp, 4
push eax
push str.Version
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea ecx, [ebp - 0x220]
push ecx
push str.ConnectToClient
lea edx, [ebp - 0x210]
push edx
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x220], 0x100
call fcn.410039d0
mov ecx, esi
test eax, eax
jne 0x410320d5
lea eax, [ebp - 0x210]
push eax
jmp 0x410320da
push str.AUTO
push str.ConnectToClient
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetCHString_unsigned_short_int_const___unsigned_short_int_const__]
lea ecx, [ebp - 0x218]
push ecx
mov ecx, dword [ebp - 0x22c]
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x214]
push eax
push edi
push str.RightsWin2000
mov dword [ebp - 0x214], edi
mov edi, dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov ebx, 4
push ecx
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x41032135
test eax, eax
jne 0x41032135
mov edx, dword [ebp - 0x21c]
push edx
jmp 0x41032137
push 3
push str.RightsWin2000
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea eax, [ebp - 0x218]
push eax
mov eax, dword [ebp - 0x22c]
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x214]
push edx
push 0
push str.RightsWinNT
push eax
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x4103218e
test eax, eax
jne 0x4103218e
mov ecx, dword [ebp - 0x21c]
push ecx
jmp 0x41032190
push 0
push str.RightsWinNT
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea edx, [ebp - 0x218]
push edx
mov edx, dword [ebp - 0x22c]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x214]
push ecx
push 0
push str.RightsWin8
push edx
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x410321e7
test eax, eax
jne 0x410321e7
mov eax, dword [ebp - 0x21c]
push eax
jmp 0x410321ec
push 0xd1
push str.RightsWin8
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea ecx, [ebp - 0x220]
push ecx
push str.Protocol
lea edx, [ebp - 0x210]
push edx
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x220], 0x100
call fcn.410039d0
mov ecx, esi
test eax, eax
jne 0x41032230
lea eax, [ebp - 0x210]
push eax
jmp 0x41032235
push str.AUTO
push str.Protocol
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetCHString_unsigned_short_int_const___unsigned_short_int_const__]
lea ecx, [ebp - 0x218]
push ecx
mov ecx, dword [ebp - 0x22c]
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x214]
push eax
push 0
push str.TimeOutService
push ecx
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x4103228a
test eax, eax
jne 0x4103228a
mov edx, dword [ebp - 0x21c]
push edx
jmp 0x4103228f
push 0x1388
push str.TimeOutService
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea eax, [ebp - 0x218]
push eax
mov eax, dword [ebp - 0x22c]
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x214]
push edx
push 0
push str.TimeOutClient
push eax
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x410322e6
test eax, eax
jne 0x410322e6
mov ecx, dword [ebp - 0x21c]
push ecx
jmp 0x410322eb
push 0x1d4c0
push str.TimeOutClient
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea edx, [ebp - 0x218]
push edx
mov edx, dword [ebp - 0x22c]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x214]
push ecx
push 0
push str.ListenToWTS
push edx
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x41032348
test eax, eax
jne 0x41032348
cmp dword [ebp - 0x21c], eax
setne al
movzx ecx, al
push ecx
jmp 0x4103234a
push 1
push str.ListenToWTS
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::Setbool_unsigned_short_int_const___bool_]
lea edx, [ebp - 0x218]
push edx
mov edx, dword [ebp - 0x22c]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x214]
push ecx
push 0
push str.ListenToWTSOnDisconnect
push edx
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x410323a7
test eax, eax
jne 0x410323a7
cmp dword [ebp - 0x21c], eax
setne al
movzx ecx, al
push ecx
jmp 0x410323a9
push 1
push str.ListenToWTSOnDisconnect
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::Setbool_unsigned_short_int_const___bool_]
lea edx, [ebp - 0x218]
push edx
mov edx, dword [ebp - 0x22c]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x214]
push ecx
push 0
push str.ListenToWTSTrys
push edx
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x41032400
test eax, eax
jne 0x41032400
mov eax, dword [ebp - 0x21c]
push eax
jmp 0x41032405
push 0x1c2
push str.ListenToWTSTries
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea ecx, [ebp - 0x218]
push ecx
mov ecx, dword [ebp - 0x22c]
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x214]
push eax
push 0
push str.ListenToWTSTryDelay
push ecx
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x4103245c
test eax, eax
jne 0x4103245c
mov edx, dword [ebp - 0x21c]
push edx
jmp 0x41032461
push 0x7d0
push str.ListenToWTSTryDelay
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea eax, [ebp - 0x218]
push eax
mov eax, dword [ebp - 0x22c]
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x214]
push edx
push 0
push str.PrinterProperties
push eax
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x410324b8
test eax, eax
jne 0x410324b8
mov ecx, dword [ebp - 0x21c]
push ecx
jmp 0x410324ba
push 1
push str.PrinterProperties
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea edx, [ebp - 0x218]
push edx
mov edx, dword [ebp - 0x22c]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x214]
push ecx
push 0
push str.PrinterPropertyFlags
push edx
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x41032511
test eax, eax
jne 0x41032511
mov eax, dword [ebp - 0x21c]
push eax
jmp 0x41032516
push 0xffff
push str.PrinterPropertyFlags
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea ecx, [ebp - 0x218]
push ecx
mov ecx, dword [ebp - 0x22c]
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x214]
push eax
push 0
push str.DPMTries
push ecx
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x4103256d
test eax, eax
jne 0x4103256d
mov edx, dword [ebp - 0x21c]
push edx
jmp 0x4103256f
push 1
push str.DPMTries
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea eax, [ebp - 0x218]
push eax
mov eax, dword [ebp - 0x22c]
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x214]
push edx
push 0
push str.CommentMode
push eax
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x410325c6
test eax, eax
jne 0x410325c6
mov ecx, dword [ebp - 0x21c]
push ecx
jmp 0x410325c8
push 2
push str.CommentMode
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea edx, [ebp - 0x218]
push edx
mov edx, dword [ebp - 0x22c]
lea eax, [ebp - 0x21c]
push eax
lea ecx, [ebp - 0x214]
push ecx
push 0
push str.InstallOrder
push edx
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x4103261f
test eax, eax
jne 0x4103261f
mov eax, dword [ebp - 0x21c]
push eax
jmp 0x41032621
push 1
push str.InstallOrder
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea ecx, [ebp - 0x218]
push ecx
mov ecx, dword [ebp - 0x22c]
lea edx, [ebp - 0x21c]
push edx
lea eax, [ebp - 0x214]
push eax
push 0
push str.EventLogLevel
push ecx
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x41032678
test eax, eax
jne 0x41032678
mov edx, dword [ebp - 0x21c]
push edx
jmp 0x4103267a
push 7
push str.EventLogLevel
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetDWORD_unsigned_short_int_const___unsigned_long_int_]
lea eax, [ebp - 0x218]
push eax
mov eax, dword [ebp - 0x22c]
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x214]
push edx
push 0
push str.DisableSettingOfDefPrinter
push eax
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x410326d7
test eax, eax
jne 0x410326d7
cmp dword [ebp - 0x21c], eax
setne cl
movzx edx, cl
push edx
jmp 0x410326d9
push 0
push str.DisableSettingOfDefPrinter
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::Setbool_unsigned_short_int_const___bool_]
lea eax, [ebp - 0x218]
push eax
mov eax, dword [ebp - 0x22c]
lea ecx, [ebp - 0x21c]
push ecx
lea edx, [ebp - 0x214]
push edx
push 0
push str.UserDrivenDefaultPrinter
push eax
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x218], ebx
call edi
cmp dword [ebp - 0x214], ebx
jne 0x41032736
test eax, eax
jne 0x41032736
cmp dword [ebp - 0x21c], eax
setne cl
movzx edx, cl
push edx
jmp 0x41032738
push 0
push str.UserDrivenDefaultPrinter
mov ecx, esi
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::Setbool_unsigned_short_int_const___bool_]
call fcn.41030a30
test eax, eax
lea eax, [ebp - 0x220]
push eax
lea ecx, [ebp - 0x210]
push str.ListenToWTSCreatCmd
push ecx
mov dword [ebp - 0x220], 0x100
lea ecx, [ebp - 0x22c]
je 0x4103278c
call fcn.410039d0
mov ecx, esi
test eax, eax
jne 0x41032785
lea edx, [ebp - 0x210]
push edx
jmp 0x410327a5
push str.TPAutoConnect
jmp 0x410327a5
call fcn.410039d0
mov ecx, esi
test eax, eax
jne 0x410327a0
lea edx, [ebp - 0x210]
push edx
jmp 0x410327a5
push str.TPAutoConnect__s__d
push str.ListenToWTSCreateCmd
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetCHString_unsigned_short_int_const___unsigned_short_int_const__]
lea eax, [ebp - 0x220]
push eax
push str.ListenToWTSDeleteCmd
lea ecx, [ebp - 0x210]
push ecx
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x220], 0x100
call fcn.410039d0
mov ecx, esi
test eax, eax
jne 0x410327e7
lea edx, [ebp - 0x210]
push edx
jmp 0x410327ec
push str.TPAutoConnect__dl
push str.ListenToWTSDeleteCmd
call dword [sym.imp.framedyn.dll_public:_bool___thiscall_CInstance::SetCHString_unsigned_short_int_const___unsigned_short_int_const__]
mov eax, dword [ebp - 0x22c]
test eax, eax
je 0x41032808
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.4112e1a6
mov esp, ebp
pop ebp
ret 8