Function at 0x64191b30
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, eax
push esi
mov esi, ecx
push ebx
mov ebx, edx
sub esp, 0x25c
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x21c], 0
test ecx, ecx
je 0x64191b71
mov eax, dword [ebp + 8]
mov dword [esp + 4], 0
mov dword [esp], ecx
mov dword [esp + 8], eax
call sym._memset
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x64191b81
mov eax, dword [ebp + 0x10]
mov dword [eax], 0
mov ecx, dword [ebp + 0xc]
test ecx, ecx
je 0x64191b91
mov eax, dword [ebp + 0xc]
mov dword [eax], 0
cmp edi, 1
je 0x64191c3d
test edi, 4
je 0x64191bb4
test byte [0x6419a04c], 8
jne 0x64191f20
and edi, 0xfffffffb
je 0x64191c30
test edi, 0xa
jne 0x64191be8
test byte [0x6419a04c], 1
jne 0x64191fb8
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0x3ec
xor edx, edx
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [ebp - 0x228]
mov dword [esp + 4], str.SystemCurrentControlSetControlPrintPrinters
mov dword [esp + 8], eax
mov dword [esp], 0x80000002
call dword [sym.imp.advapi32.dll_RegCreateKeyW]
sub esp, 0xc
test eax, eax
je 0x64191c50
test byte [0x6419a04c], 2
jne 0x64191ea0
xor edx, edx
lea esp, [ebp - 0xc]
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
test byte [0x6419a04c], 1
jne 0x64192090
lea esp, [ebp - 0xc]
mov edx, 1
pop ebx
mov eax, edx
pop esi
pop edi
pop ebp
ret
mov dword [ebp - 0x22c], eax
lea eax, [ebp - 0x21c]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x228]
mov dword [esp + 0x2c], 0
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 dword [sym.imp.advapi32.dll_RegQueryInfoKeyA]
sub esp, 0x30
test eax, eax
jne 0x64192130
test byte [0x6419a04c], 8
jne 0x641920f8
cmp ebx, 4
je 0x641921b0
ja 0x64191f50
cmp ebx, 1
je 0x641921d0
cmp ebx, 2
jne 0x64192180
mov eax, dword [ebp - 0x21c]
imul ecx, eax, 0x54
mov dword [ebp - 0x234], ecx
mov ecx, dword [ebp - 0x234]
mov edi, 0
cmp dword [ebp + 8], ecx
cmovae edi, esi
test eax, eax
je 0x641922b2
mov eax, dword [sym.imp.advapi32.dll_RegCloseKey]
mov dword [ebp - 0x22c], ebx
xor ecx, ecx
mov ebx, dword [ebp - 0x234]
mov dword [ebp - 0x238], esi
mov esi, ecx
mov dword [ebp - 0x230], eax
lea eax, [ebp - 0x216]
mov dword [esp + 0xc], 0xff
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x228]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegEnumKeyW]
sub esp, 0x10
test eax, eax
jne 0x641921f0
test byte [0x6419a04c], 8
jne 0x64191f78
lea eax, [ebp - 0x224]
mov dword [esp + 8], eax
lea eax, [ebp - 0x216]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegOpenKeyW]
sub esp, 0xc
mov edx, eax
test eax, eax
jne 0x64192218
cmp dword [ebp + 8], ebx
jbe 0x64191f10
mov eax, dword [ebp - 0x238]
lea ecx, [eax + ebx]
mov eax, dword [ebp + 8]
sub eax, ebx
cmp dword [ebp - 0x22c], 4
je 0x64191fe8
ja 0x64191ed0
cmp dword [ebp - 0x22c], 1
je 0x64192060
cmp dword [ebp - 0x22c], 2
jne 0x64192018
lea edx, [ebp - 0x220]
mov dword [esp], eax
mov eax, dword [ebp - 0x224]
mov dword [esp + 4], edx
mov edx, edi
call sym._WINSPOOL_GetPrinter_2
add ebx, dword [ebp - 0x220]
lea eax, [edi + 0x54]
test edi, edi
cmovne edi, eax
mov eax, dword [ebp - 0x224]
inc esi
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
sub esp, 4
cmp esi, dword [ebp - 0x21c]
jb 0x64191d41
mov dword [ebp - 0x234], ebx
mov esi, dword [ebp - 0x238]
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
mov edx, dword [ebp + 0xc]
sub esp, 4
test edx, edx
je 0x64191e6d
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp - 0x234]
mov dword [eax], ebx
mov eax, dword [ebp - 0x234]
cmp dword [ebp + 8], eax
jb 0x64192256
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x64191e8e
mov eax, dword [ebp - 0x21c]
mov ebx, dword [ebp + 0x10]
mov dword [ebx], eax
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0
jmp 0x64191c3d
mov dword [esp + 0xc], str.Cant_create_Printers_key_n
mov dword [esp + 8], str.WINSPOOL_EnumPrintersW
mov dword [esp + 4], 0x6419a04c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
xor edx, edx
jmp 0x64191bd8
cmp dword [ebp - 0x22c], 5
jne 0x64192018
lea edx, [ebp - 0x220]
mov dword [esp], eax
mov eax, dword [ebp - 0x224]
mov dword [esp + 4], edx
mov edx, edi
call sym._WINSPOOL_GetPrinter_5
add ebx, dword [ebp - 0x220]
lea eax, [edi + 0x14]
test edi, edi
cmovne edi, eax
jmp 0x64191e1a
xor ecx, ecx
xor eax, eax
jmp 0x64191dc5
mov dword [esp + 0xc], str.ignoring_PRINTER_ENUM_CONNECTIONS_n
mov dword [esp + 8], str.WINSPOOL_EnumPrintersW
mov dword [esp + 4], 0x6419a04c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x64191baf
cmp ebx, 5
jne 0x64192180
mov eax, dword [ebp - 0x21c]
lea edx, [eax + eax*4]
lea ecx, [edx*4]
mov dword [ebp - 0x234], ecx
jmp 0x64191d07
lea eax, [ebp - 0x216]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], str.Printer__ld_is__s_n
mov dword [esp + 8], str.WINSPOOL_EnumPrintersW
mov dword [esp + 4], 0x6419a04c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x64191d7e
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.dwType___08lx_n
mov dword [esp + 8], str.WINSPOOL_EnumPrintersW
mov dword [esp + 4], 0x6419a04c
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
jmp 0x64191bc9
lea edx, [ebp - 0x220]
mov dword [esp], eax
mov eax, dword [ebp - 0x224]
mov dword [esp + 4], edx
mov edx, edi
call sym._WINSPOOL_GetPrinter_4
add ebx, dword [ebp - 0x220]
lea eax, [edi + 0xc]
test edi, edi
cmovne edi, eax
jmp 0x64191e1a
test byte [0x6419a04c], 2
jne 0x641920c0
mov eax, dword [ebp - 0x224]
mov dword [ebp - 0x22c], edx
mov ebx, dword [ebp - 0x230]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x228]
sub esp, 4
mov dword [esp], eax
call ebx
mov edx, dword [ebp - 0x22c]
sub esp, 4
jmp 0x64191bd8
lea edx, [ebp - 0x220]
mov dword [esp], eax
mov eax, dword [ebp - 0x224]
mov dword [esp + 4], edx
mov edx, edi
call sym._WINSPOOL_GetPrinter_1
add ebx, dword [ebp - 0x220]
lea eax, [edi + 0x10]
test edi, edi
cmovne edi, eax
jmp 0x64191e1a
mov dword [esp + 0xc], str.We_dont_handle_PRINTER_ENUM_CONNECTIONS_n
mov dword [esp + 8], str.WINSPOOL_EnumPrintersW
mov dword [esp + 4], 0x6419a04c
mov dword [esp], 0
call sym._wine_dbg_log.constprop.0
mov edx, 1
jmp 0x64191bd8
mov dword [esp + 0xc], str.Shouldnt_be_here__n
mov dword [esp + 8], str.WINSPOOL_EnumPrintersW
mov dword [esp + 4], 0x6419a04c
mov dword [esp], 1
mov dword [ebp - 0x22c], edx
call sym._wine_dbg_log.constprop.0
mov edx, dword [ebp - 0x22c]
jmp 0x64192025
mov eax, dword [ebp - 0x21c]
mov dword [esp + 0xc], str.Found__ld_printers_n
mov dword [esp + 8], str.WINSPOOL_EnumPrintersW
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x6419a04c
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0
jmp 0x64191cd7
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
sub esp, 4
test byte [0x6419a04c], 2
je 0x64191c1b
mov dword [esp + 0xc], str.Cant_query_Printers_key_n
mov dword [esp + 8], str.WINSPOOL_EnumPrintersW
mov dword [esp + 4], 0x6419a04c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
mov edx, dword [ebp - 0x22c]
jmp 0x64191bd8
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0x7c
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
call dword [sym.imp.advapi32.dll_RegCloseKey]
xor edx, edx
sub esp, 4
jmp 0x64191bd8
mov eax, dword [ebp - 0x21c]
lea edx, [eax + eax*2]
lea ecx, [edx*4]
mov dword [ebp - 0x234], ecx
jmp 0x64191d07
mov eax, dword [ebp - 0x21c]
mov ecx, eax
shl ecx, 4
mov dword [ebp - 0x234], ecx
jmp 0x64191d07
test byte [0x6419a04c], 2
jne 0x64192285
mov eax, dword [ebp - 0x228]
mov dword [esp], eax
mov eax, dword [ebp - 0x230]
call eax
xor edx, edx
sub esp, 4
jmp 0x64191bd8
test byte [0x6419a04c], 2
je 0x641921fd
lea eax, [ebp - 0x216]
call sym._wine_dbgstr_wn.constprop.0
mov dword [esp + 0xc], str.Cant_open_key__s_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.WINSPOOL_EnumPrintersW
mov dword [esp + 4], 0x6419a04c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x641921fd
test esi, esi
je 0x64192271
mov eax, dword [ebp + 8]
mov dword [esp + 4], 0
mov dword [esp], esi
mov dword [esp + 8], eax
call sym._memset
mov eax, dword fs:[0x18]
xor edx, edx
mov dword [eax + 0x34], 0x7a
jmp 0x64191c1d
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.Cant_enum_key_number__ld_n
mov dword [esp + 8], str.WINSPOOL_EnumPrintersW
mov dword [esp + 4], 0x6419a04c
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0
jmp 0x641921fd
mov eax, dword [sym.imp.advapi32.dll_RegCloseKey]
mov dword [ebp - 0x230], eax
jmp 0x64191e47