Function at 0x72a6cee0
Capabilities:
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x214
mov dword [ebp - 0x1d0], 0
test byte [0x72a768c4], 8
jne 0x72a6d4b0
mov dword [esp + 0xc], sym._DllFreeSplMem_4
mov dword [esp + 8], sym.__PrinterListCompareRoutine_8
mov dword [esp + 4], sym._DllAllocSplMem_4
mov dword [esp], 0x72a7cdc0
call sym._InitializeSkiplist
lea eax, [ebp - 0x1d4]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x10], eax
mov eax, dword [0x72a7c508]
mov dword [esp + 0x28], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._RegQueryInfoKeyW_48
sub esp, 0x30
mov dword [ebp - 0x1ec], eax
test eax, eax
jne 0x72a6d480
mov edx, dword [ebp - 0x1d4]
mov eax, dword [ebp - 0x1d0]
xor ebx, ebx
xor esi, esi
xor edi, edi
test edx, edx
jne 0x72a6cfe6
jmp 0x72a6d710
test byte [0x72a768c4], 2
jne 0x72a6d340
xor esi, esi
xor edi, edi
add ebx, 1
mov eax, dword [ebp - 0x1d0]
cmp dword [ebp - 0x1d4], ebx
jbe 0x72a6d3c0
test eax, eax
je 0x72a6cfff
mov dword [esp], eax
call sym._RegCloseKey_4
mov dword [ebp - 0x1d0], 0
sub esp, 4
test edi, edi
je 0x72a6d067
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x72a6d015
mov dword [esp], eax
call sym._DllFreeSplMem_4
sub esp, 4
mov eax, dword [edi + 0x18]
test eax, eax
je 0x72a6d027
mov dword [esp], eax
call sym._DllFreeSplStr_4
sub esp, 4
mov eax, dword [edi + 0x14]
test eax, eax
je 0x72a6d039
mov dword [esp], eax
call sym._DllFreeSplStr_4
sub esp, 4
mov eax, dword [edi + 0x10]
test eax, eax
je 0x72a6d04b
mov dword [esp], eax
call sym._DllFreeSplStr_4
sub esp, 4
mov eax, dword [edi]
test eax, eax
je 0x72a6d05c
mov dword [esp], eax
call sym._DllFreeSplStr_4
sub esp, 4
mov dword [esp], edi
call sym._DllFreeSplMem_4
sub esp, 4
test esi, esi
je 0x72a6d076
mov dword [esp], esi
call sym._DllFreeSplStr_4
sub esp, 4
lea eax, [ebp - 0x1d8]
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x1ca]
mov dword [esp + 8], eax
mov eax, dword [0x72a7c508]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 4], ebx
mov dword [esp], eax
mov dword [ebp - 0x1d8], 0xdd
call sym._RegEnumKeyExW_32
sub esp, 0x20
cmp eax, 0xea
je 0x72a6cfcd
test eax, eax
jne 0x72a6cfc0
lea eax, [ebp - 0x1d0]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x1ca]
mov dword [esp + 4], eax
mov eax, dword [0x72a7c508]
mov dword [esp + 8], 0
mov dword [esp], eax
call sym._RegOpenKeyExW_20
sub esp, 0x14
test eax, eax
je 0x72a6d170
test byte [0x72a768c4], 2
je 0x72a6cfcd
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x1ca]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.RegOpenKeyExW_failed_for_Printer___S__with_status__lu__n
mov dword [esp + 0x10], 0xbe
mov dword [esp + 0xc], str.InitializePrinterList
mov dword [esp + 8], 0x72a79aad
mov dword [esp + 4], 0x72a768c4
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a6cfcd
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 4], str.Print_Processor
mov dword [esp], eax
call sym._AllocAndRegQueryWSZ
mov esi, eax
test eax, eax
je 0x72a6cfcd
mov dword [esp], eax
call sym._FindPrintProcessor
mov dword [ebp - 0x1e4], eax
test eax, eax
je 0x72a6d360
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 4], 0x72a79d14
mov dword [esp], eax
call sym._AllocAndRegQueryWSZ
mov edi, eax
test eax, eax
je 0x72a6cfd1
mov dword [esp], eax
call sym._FindPort
mov dword [ebp - 0x1e8], eax
test eax, eax
je 0x72a6d470
mov dword [esp], 0xc0
call sym._DllAllocSplMem_4
sub esp, 4
mov edi, eax
test eax, eax
je 0x72a6d6d9
lea eax, [ebp - 0x1ca]
mov dword [esp], eax
call sym._AllocSplStr_4
mov ecx, dword [ebp - 0x1e8]
mov dword [edi], eax
mov eax, dword [ebp - 0x1e4]
sub esp, 4
mov dword [edi + 0x24], ecx
mov dword [edi + 0x20], eax
mov dword [esp], edi
call sym._InitializePrinterJobList
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 4], str.Location
mov dword [esp], eax
call sym._AllocAndRegQueryWSZ
mov dword [edi + 0xc], eax
test eax, eax
je 0x72a6cfd1
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 4], str.Printer_Driver
mov dword [esp], eax
call sym._AllocAndRegQueryWSZ
mov dword [edi + 0x10], eax
test eax, eax
je 0x72a6cfd1
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 4], str.Description
mov dword [esp], eax
call sym._AllocAndRegQueryWSZ
mov dword [edi + 0x14], eax
test eax, eax
je 0x72a6cfd1
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 4], str.Datatype
mov dword [esp], eax
call sym._AllocAndRegQueryWSZ
mov dword [edi + 0x18], eax
test eax, eax
je 0x72a6cfd1
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1e4]
mov dword [esp], eax
call sym._FindDatatype
test eax, eax
je 0x72a6d532
lea eax, [ebp - 0x1dc]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.Default_DevMode
mov dword [esp], eax
call sym._RegQueryValueExW_24
sub esp, 0x18
test eax, eax
je 0x72a6d5a8
test byte [0x72a768c4], 2
je 0x72a6cfd1
mov edx, dword [ebp - 0x1dc]
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x1ca]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], str.Couldnt_query_the_size_of_the_DevMode_for_Printer___S___status_is__lu__cbData_is__lu__n
mov dword [esp + 0x10], 0x109
jmp 0x72a6d634
mov dword [esp + 0x1c], eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], str.RegEnumKeyExW_failed_for_iteration__lu_with_status__lu__n
mov dword [esp + 0x10], 0xb6
jmp 0x72a6d13e
xor edi, edi
test byte [0x72a768c4], 2
je 0x72a6cfd1
lea eax, [ebp - 0x1ca]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], str.Invalid_Print_Processor___S__for_Printer___S___n
mov dword [esp + 0x10], 0xcb
mov dword [esp + 0xc], str.InitializePrinterList
mov dword [esp + 8], 0x72a79aad
mov dword [esp + 4], 0x72a768c4
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a6cfd1
mov ebx, 1
test eax, eax
je 0x72a6d3d4
mov dword [esp], eax
call sym._RegCloseKey_4
sub esp, 4
test edi, edi
je 0x72a6d43c
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x72a6d3ea
mov dword [esp], eax
call sym._DllFreeSplMem_4
sub esp, 4
mov eax, dword [edi + 0x18]
test eax, eax
je 0x72a6d3fc
mov dword [esp], eax
call sym._DllFreeSplStr_4
sub esp, 4
mov eax, dword [edi + 0x14]
test eax, eax
je 0x72a6d40e
mov dword [esp], eax
call sym._DllFreeSplStr_4
sub esp, 4
mov eax, dword [edi + 0x10]
test eax, eax
je 0x72a6d420
mov dword [esp], eax
call sym._DllFreeSplStr_4
sub esp, 4
mov eax, dword [edi]
test eax, eax
je 0x72a6d431
mov dword [esp], eax
call sym._DllFreeSplStr_4
sub esp, 4
mov dword [esp], edi
call sym._DllFreeSplMem_4
sub esp, 4
test esi, esi
je 0x72a6d44b
mov dword [esp], esi
call sym._DllFreeSplStr_4
sub esp, 4
mov eax, dword [ebp - 0x1ec]
mov dword [esp], eax
call sym._SetLastError_4
mov eax, ebx
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [0x72a768c4], 2
jne 0x72a6d4e9
xor edi, edi
jmp 0x72a6cfd1
test byte [0x72a768c4], 2
jne 0x72a6d565
mov eax, dword [ebp - 0x1d0]
xor ebx, ebx
test eax, eax
je 0x72a6d44b
mov dword [esp], eax
xor ebx, ebx
call sym._RegCloseKey_4
sub esp, 4
jmp 0x72a6d44b
mov dword [esp + 0x14], str.InitializePrinterList___n
mov dword [esp + 0x10], 0x7a
mov dword [esp + 0xc], str.InitializePrinterList
mov dword [esp + 8], 0x72a79aad
mov dword [esp + 4], 0x72a768c4
mov dword [esp], 3
call sym._ros_dbg_log
jmp 0x72a6cf03
lea eax, [ebp - 0x1ca]
mov dword [esp + 0x18], edi
xor edi, edi
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], str.Invalid_Port___S__for_Printer___S___n
mov dword [esp + 0x10], 0xd8
mov dword [esp + 0xc], str.InitializePrinterList
mov dword [esp + 8], 0x72a79aad
mov dword [esp + 4], 0x72a768c4
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a6cfd1
test byte [0x72a768c4], 2
je 0x72a6cfd1
lea eax, [ebp - 0x1ca]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x14], str.Invalid_default_datatype___S__for_Printer___S___n
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x101
jmp 0x72a6d38d
mov eax, dword [ebp - 0x1ec]
mov dword [esp + 0x14], 0x72a79c24
mov dword [esp + 0x10], 0x83
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], str.InitializePrinterList
mov dword [esp + 8], 0x72a79aad
mov dword [esp + 4], 0x72a768c4
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a6d48d
mov eax, dword [ebp - 0x1dc]
mov dword [esp], eax
call sym._DllAllocSplMem_4
sub esp, 4
mov dword [edi + 0x1c], eax
test eax, eax
je 0x72a6d842
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1d0]
lea edx, [ebp - 0x1dc]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], str.Default_DevMode
mov dword [esp], eax
call sym._RegQueryValueExW_24
sub esp, 0x18
test eax, eax
je 0x72a6d65d
test byte [0x72a768c4], 2
je 0x72a6cfd1
mov edx, dword [ebp - 0x1dc]
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x1ca]
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x14], str.Couldnt_query_a_DevMode_for_Printer___S___status_is__lu__cbData_is__lu__n
mov dword [esp + 0x10], 0x11a
mov dword [esp + 0xc], str.InitializePrinterList
mov dword [esp + 8], 0x72a79aad
mov dword [esp + 4], 0x72a768c4
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a6cfd1
lea eax, [ebp - 0x1dc]
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], eax
lea eax, [edi + 4]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], 0
mov dword [esp + 4], str.Attributes
mov dword [esp], eax
mov dword [ebp - 0x1dc], 4
call sym._RegQueryValueExW_24
sub esp, 0x18
test eax, eax
je 0x72a6d733
test byte [0x72a768c4], 2
je 0x72a6cfd1
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x1ca]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.Couldnt_query_Attributes_for_Printer___S___status_is__lu__n
mov dword [esp + 0x10], 0x123
jmp 0x72a6d38d
test byte [0x72a768c4], 2
jne 0x72a6d7bc
mov eax, dword [ebp - 0x1d0]
test eax, eax
je 0x72a6d7ab
mov dword [esp], eax
xor ebx, ebx
call sym._RegCloseKey_4
mov dword [ebp - 0x1ec], 8
sub esp, 4
jmp 0x72a6d440
test eax, eax
je 0x72a6d71f
mov dword [esp], eax
call sym._RegCloseKey_4
sub esp, 4
mov dword [ebp - 0x1ec], 0
mov ebx, 1
jmp 0x72a6d44b
lea eax, [ebp - 0x1dc]
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], eax
lea eax, [edi + 8]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x1d0]
mov dword [esp + 8], 0
mov dword [esp + 4], str.Status
mov dword [esp], eax
mov dword [ebp - 0x1dc], 4
call sym._RegQueryValueExW_24
sub esp, 0x18
test eax, eax
je 0x72a6d7f5
test byte [0x72a768c4], 2
je 0x72a6cfd1
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x1ca]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.Couldnt_query_Status_for_Printer___S___status_is__lu__n
mov dword [esp + 0x10], 0x12c
jmp 0x72a6d38d
mov dword [ebp - 0x1ec], 8
xor ebx, ebx
jmp 0x72a6d440
mov dword [esp + 0x14], 0x72a79b71
mov dword [esp + 0x10], 0xe1
mov dword [esp + 0xc], str.InitializePrinterList
mov dword [esp + 8], 0x72a79aad
mov dword [esp + 4], 0x72a768c4
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a6d6e6
mov dword [esp + 4], edi
mov dword [esp], 0x72a7cdc0
mov dword [ebp - 0x1e4], eax
call sym._InsertElementSkiplist
mov edx, dword [ebp - 0x1e4]
test eax, eax
jne 0x72a6d479
test byte [0x72a768c4], 2
jne 0x72a6d86a
mov eax, dword [ebp - 0x1d0]
xor ebx, ebx
test edx, edx
mov dword [ebp - 0x1ec], edx
sete bl
test eax, eax
jne 0x72a6d3c9
jmp 0x72a6d3d8
test byte [0x72a768c4], 2
jne 0x72a6d8af
mov eax, dword [ebp - 0x1d0]
xor ebx, ebx
mov dword [ebp - 0x1ec], 8
test eax, eax
jne 0x72a6d3c9
jmp 0x72a6d3ea
mov eax, dword [edi]
mov dword [esp + 0x14], str.InsertElementSkiplist_failed_for_Printer___S___n
mov dword [esp + 0x10], 0x133
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], str.InitializePrinterList
mov dword [esp + 8], 0x72a79aad
mov dword [esp + 4], 0x72a768c4
mov dword [esp], 1
call sym._ros_dbg_log
mov edx, dword [ebp - 0x1e4]
jmp 0x72a6d822
mov dword [esp + 0x14], 0x72a79b71
mov dword [esp + 0x10], 0x112
mov dword [esp + 0xc], str.InitializePrinterList
mov dword [esp + 8], 0x72a79aad
mov dword [esp + 4], 0x72a768c4
mov dword [esp], 1
call sym._ros_dbg_log
mov edx, 8
jmp 0x72a6d822