Function at 0x72a701b0
Capabilities:
Link many functions at runtime
Query or enumerate registry key
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x474
mov dword [ebp - 0x42c], 0
mov dword [ebp - 0x428], 0
mov dword [ebp - 0x424], 0
test byte [0x72a768f0], 8
jne 0x72a70365
lea eax, [ebp - 0x43c]
mov dword [esp + 0x10], 0x208
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x218]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0x72a78140
mov dword [esp], 0
mov dword [0x72a7ce64], 0x72a7ce60
mov dword [0x72a7ce60], 0x72a7ce60
call sym._LocalGetPrintProcessorDirectory_24
sub esp, 0x18
test eax, eax
je 0x72a70350
mov eax, dword [ebp - 0x43c]
mov ebx, 0x5c
lea edx, [ebp - 0x42c]
xor esi, esi
shr eax, 1
mov word [ebp + eax*2 - 0x21a], bx
mov dword [ebp - 0x43c], eax
mov eax, 0x72a78140
call sym.__OpenEnvironment
mov edi, eax
test eax, eax
je 0x72a702c5
mov eax, dword [ebp - 0x424]
test eax, eax
je 0x72a70286
mov dword [esp], eax
call sym._RegCloseKey_4
sub esp, 4
mov eax, dword [ebp - 0x428]
test eax, eax
je 0x72a7029b
mov dword [esp], eax
call sym._RegCloseKey_4
sub esp, 4
mov eax, dword [ebp - 0x42c]
test eax, eax
je 0x72a702b0
mov dword [esp], eax
call sym._RegCloseKey_4
sub esp, 4
mov dword [esp], edi
call sym._SetLastError_4
mov eax, esi
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x428]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x42c]
mov dword [esp + 8], 0
mov dword [esp + 4], str.Print_Processors
mov dword [esp], eax
call sym._RegOpenKeyExW_20
sub esp, 0x14
mov edi, eax
test eax, eax
je 0x72a703a0
test byte [0x72a768f0], 2
je 0x72a70271
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.RegOpenKeyExW_failed_with_status__lu__n
mov dword [esp + 0x10], 0xb0
mov dword [esp + 0xc], str.InitializePrintProcessorList
mov dword [esp + 8], 0x72a7a691
mov dword [esp + 4], 0x72a768f0
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a70271
call sym._GetLastError_0
mov edi, eax
xor eax, eax
test edi, edi
sete al
mov esi, eax
jmp 0x72a70271
mov dword [esp + 0x14], str.InitializePrintProcessorList___n
mov dword [esp + 0x10], 0x93
mov dword [esp + 0xc], str.InitializePrintProcessorList
mov dword [esp + 8], 0x72a7a691
mov dword [esp + 4], 0x72a768f0
mov dword [esp], 3
call sym._ros_dbg_log
jmp 0x72a701e7
lea eax, [ebp - 0x438]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x430]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x428]
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 + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._RegQueryInfoKeyW_48
sub esp, 0x30
mov edi, eax
test eax, eax
jne 0x72a70880
mov ecx, dword [ebp - 0x430]
mov eax, dword [ebp - 0x424]
xor esi, esi
xor ebx, ebx
test ecx, ecx
je 0x72a70b13
mov dword [ebp - 0x44c], edi
jmp 0x72a70462
test byte [0x72a768f0], 2
jne 0x72a70665
add esi, 1
mov eax, dword [ebp - 0x424]
cmp dword [ebp - 0x430], esi
jbe 0x72a70974
test eax, eax
je 0x72a7047b
mov dword [esp], eax
call sym._RegCloseKey_4
mov dword [ebp - 0x424], 0
sub esp, 4
test ebx, ebx
je 0x72a704ae
mov eax, dword [ebx + 8]
test eax, eax
je 0x72a70491
mov dword [esp], eax
call sym._DllFreeSplStr_4
sub esp, 4
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x72a704a3
mov dword [esp], eax
call sym._DllFreeSplMem_4
sub esp, 4
mov dword [esp], ebx
call sym._DllFreeSplMem_4
sub esp, 4
mov dword [esp], 0x2c
call sym._DllAllocSplMem_4
sub esp, 4
mov ebx, eax
test eax, eax
je 0x72a708e0
mov eax, dword [ebp - 0x438]
lea eax, [eax + eax + 2]
mov dword [esp], eax
call sym._DllAllocSplMem_4
sub esp, 4
mov dword [ebx + 8], eax
test eax, eax
je 0x72a70930
mov ecx, dword [ebp - 0x438]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x428]
mov dword [esp + 0x1c], 0
lea edx, [ecx + 1]
lea ecx, [ebp - 0x434]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [ebp - 0x434], edx
call sym._RegEnumKeyExW_32
sub esp, 0x20
test eax, eax
jne 0x72a70440
lea eax, [ebp - 0x424]
mov dword [esp + 0xc], 0x20019
mov dword [esp + 0x10], eax
mov dword [esp + 8], 0
mov eax, dword [ebx + 8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x428]
mov dword [esp], eax
call sym._RegOpenKeyExW_20
sub esp, 0x14
test eax, eax
je 0x72a705d0
test byte [0x72a768f0], 2
je 0x72a7044d
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x14], str.RegOpenKeyExW_failed_for_Print_Processor___S__with_status__lu__n
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0xf1
mov dword [esp + 0xc], str.InitializePrintProcessorList
mov dword [esp + 8], 0x72a7a691
mov dword [esp + 4], 0x72a768f0
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a7044d
lea eax, [ebp - 0x440]
lea edi, [ebp - 0x420]
mov dword [esp + 0xc], 0
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x424]
mov dword [esp + 0x10], edi
mov dword [esp + 8], 0
mov dword [esp + 4], str.Driver
mov dword [esp], eax
mov dword [ebp - 0x440], 0x208
call sym._RegQueryValueExW_24
sub esp, 0x18
test eax, eax
jne 0x72a70850
mov edx, dword [ebp - 0x440]
mov ecx, dword [ebp - 0x43c]
mov eax, edx
shr eax, 1
add eax, ecx
cmp eax, 0x104
jbe 0x72a706a2
test byte [0x72a768f0], 2
je 0x72a7044d
mov eax, dword [ebx + 8]
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], str.Print_Processor_directory___S__for_Print_Processor___S__is_too_long__n
mov dword [esp + 0x1c], eax
mov dword [esp + 0x10], 0x101
jmp 0x72a7059f
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.RegEnumKeyExW_failed_with_status__ld__n
mov dword [esp + 0x10], 0xe9
mov dword [esp + 0xc], str.InitializePrintProcessorList
mov dword [esp + 8], 0x72a7a691
mov dword [esp + 4], 0x72a768f0
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a7044d
lea eax, [ebp + ecx*2 - 0x218]
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp], eax
call sym._memcpy
lea eax, [ebp - 0x218]
mov dword [esp], eax
call sym._LoadLibraryW_4
sub esp, 4
mov edi, eax
test eax, eax
je 0x72a709a3
mov dword [esp + 4], str.ClosePrintProcessor
mov dword [esp], eax
call sym._GetProcAddress_8
sub esp, 8
mov dword [ebx + 0x14], eax
test eax, eax
je 0x72a708b0
mov dword [esp + 4], str.ControlPrintProcessor
mov dword [esp], edi
call sym._GetProcAddress_8
sub esp, 8
mov dword [ebx + 0x18], eax
test eax, eax
je 0x72a709e0
mov dword [esp + 4], str.EnumPrintProcessorDatatypesW
mov dword [esp], edi
call sym._GetProcAddress_8
sub esp, 8
mov dword [ebx + 0x1c], eax
test eax, eax
je 0x72a70a5a
mov dword [esp + 4], str.GetPrintProcessorCapabilities
mov dword [esp], edi
call sym._GetProcAddress_8
sub esp, 8
mov dword [ebx + 0x20], eax
test eax, eax
je 0x72a70a86
mov dword [esp + 4], str.OpenPrintProcessor
mov dword [esp], edi
call sym._GetProcAddress_8
sub esp, 8
mov dword [ebx + 0x24], eax
test eax, eax
je 0x72a70ab2
mov dword [esp + 4], str.PrintDocumentOnPrintProcessor
mov dword [esp], edi
call sym._GetProcAddress_8
sub esp, 8
mov dword [ebx + 0x28], eax
test eax, eax
je 0x72a70b21
lea edx, [ebx + 0x10]
lea edi, [ebp - 0x444]
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], edx
mov dword [ebp - 0x450], edx
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [ebx + 0x1c]
mov eax, dword [ebp - 0x444]
sub esp, 0x1c
mov dword [esp], eax
call sym._DllAllocSplMem_4
mov edx, dword [ebp - 0x450]
sub esp, 4
test eax, eax
mov dword [ebx + 0xc], eax
je 0x72a70b4d
mov dword [esp + 0x18], edx
mov edx, dword [ebp - 0x444]
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [ebx + 0x1c]
sub esp, 0x1c
test eax, eax
je 0x72a70ade
mov eax, dword [0x72a7ce64]
mov dword [ebx], 0x72a7ce60
mov dword [ebx + 4], eax
mov dword [eax], ebx
mov dword [0x72a7ce64], ebx
xor ebx, ebx
jmp 0x72a7044d
test byte [0x72a768f0], 2
je 0x72a7044d
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 8]
mov dword [esp + 0x14], str.RegQueryValueExW_failed_for_Print_Processor___S__with_status__lu__n
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0xfa
jmp 0x72a7059f
test byte [0x72a768f0], 2
je 0x72a70271
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], str.RegQueryInfoKeyW_failed_with_status__lu__n
mov dword [esp + 0x10], 0xb8
jmp 0x72a70323
test byte [0x72a768f0], 2
je 0x72a7044d
lea eax, [ebp - 0x218]
mov dword [esp + 0x14], str.Print_Processor___S__exports_no_ClosePrintProcessor__n
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x114
jmp 0x72a70679
xor esi, esi
mov edi, 8
test byte [0x72a768f0], 2
je 0x72a70271
mov dword [esp + 0x14], 0x72a7a640
mov dword [esp + 0x10], 0xd7
mov dword [esp + 0xc], str.InitializePrintProcessorList
mov dword [esp + 8], 0x72a7a691
mov dword [esp + 4], 0x72a768f0
mov dword [esp], 1
call sym._ros_dbg_log
jmp 0x72a70271
test byte [0x72a768f0], 2
jne 0x72a70a0c
mov eax, dword [ebp - 0x424]
test eax, eax
jne 0x72a70b82
xor esi, esi
mov edi, 8
mov eax, dword [ebx + 0xc]
test eax, eax
je 0x72a70964
mov dword [esp], eax
call sym._DllFreeSplMem_4
sub esp, 4
mov dword [esp], ebx
call sym._DllFreeSplMem_4
sub esp, 4
jmp 0x72a70286
mov edi, dword [ebp - 0x44c]
test eax, eax
jne 0x72a70b87
mov esi, 1
test ebx, ebx
je 0x72a70286
mov eax, dword [ebx + 8]
test eax, eax
je 0x72a70952
mov dword [esp], eax
call sym._DllFreeSplStr_4
sub esp, 4
jmp 0x72a70952
test byte [0x72a768f0], 2
je 0x72a7044d
call sym._GetLastError_0
mov dword [esp + 0x14], str.LoadLibraryW_failed_for___S__with_error__lu__n
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x218]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x10c
jmp 0x72a7059f
test byte [0x72a768f0], 2
je 0x72a7044d
lea eax, [ebp - 0x218]
mov dword [esp + 0x14], str.Print_Processor___S__exports_no_ControlPrintProcessor__n
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x11b
jmp 0x72a70679
mov dword [esp + 0x14], 0x72a7a640
mov dword [esp + 0x10], 0xe0
mov dword [esp + 0xc], str.InitializePrintProcessorList
mov dword [esp + 8], 0x72a7a691
mov dword [esp + 4], 0x72a768f0
mov dword [esp], 1
call sym._ros_dbg_log
mov eax, dword [ebp - 0x424]
test eax, eax
jne 0x72a70b82
xor esi, esi
mov edi, 8
jmp 0x72a7098f
test byte [0x72a768f0], 2
je 0x72a7044d
lea eax, [ebp - 0x218]
mov dword [esp + 0x14], str.Print_Processor___S__exports_no_EnumPrintProcessorDatatypesW__n
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x122
jmp 0x72a70679
test byte [0x72a768f0], 2
je 0x72a7044d
lea eax, [ebp - 0x218]
mov dword [esp + 0x14], str.Print_Processor___S__exports_no_GetPrintProcessorCapabilities__n
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x129
jmp 0x72a70679
test byte [0x72a768f0], 2
je 0x72a7044d
lea eax, [ebp - 0x218]
mov dword [esp + 0x14], str.Print_Processor___S__exports_no_OpenPrintProcessor__n
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x130
jmp 0x72a70679
test byte [0x72a768f0], 2
je 0x72a7044d
call sym._GetLastError_0
mov dword [esp + 0x14], str.EnumPrintProcessorDatatypesW_failed_for_Print_Processor___S__with_error__lu__n
mov dword [esp + 0x1c], eax
lea eax, [ebp - 0x218]
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x147
jmp 0x72a7059f
test eax, eax
jne 0x72a70b6f
mov esi, 1
jmp 0x72a70286
test byte [0x72a768f0], 2
je 0x72a7044d
lea eax, [ebp - 0x218]
mov dword [esp + 0x14], str.Print_Processor___S__exports_no_PrintDocumentOnPrintProcessor__n
mov dword [esp + 0x18], eax
mov dword [esp + 0x10], 0x137
jmp 0x72a70679
test byte [0x72a768f0], 2
je 0x72a70a40
mov dword [esp + 0x14], 0x72a7a640
mov dword [esp + 0x10], 0x141
jmp 0x72a70a1c
mov dword [esp], eax
mov esi, 1
call sym._RegCloseKey_4
push edx
jmp 0x72a70286
mov edi, 8
mov dword [esp], eax
call sym._RegCloseKey_4
push eax
xor eax, eax
test edi, edi
sete al
mov esi, eax
jmp 0x72a70987