Function at 0x412289
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x44586c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x46c
mov dword [ebp - 0x454], ecx
mov dword [ebp - 0x424], 0
lea ecx, [ebp - 0x218]
call fcn.00404460
mov dword [ebp - 4], 0
mov dword [ebp - 0x10], 0
cmp dword [ebp + 8], 0
je 0x4122dc
cmp dword [ebp + 0xc], 0
jne 0x412303
mov dword [ebp - 0x42c], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x218]
call fcn.00437020
mov eax, dword [ebp - 0x42c]
jmp 0x41273a
mov eax, dword [ebp + 0xc]
push eax
lea ecx, [ebp - 0x420]
push ecx
mov ecx, dword [ebp - 0x454]
call fcn.0041290e
lea edx, [ebp - 0x420]
push edx
lea ecx, [ebp - 0x218]
call fcn.004371a9
mov dword [ebp - 0x31c], 0
jmp 0x412346
mov eax, dword [ebp - 0x31c]
add eax, 1
mov dword [ebp - 0x31c], eax
mov ecx, 0x462a44
call fcn.004045b0
cmp dword [ebp - 0x31c], eax
jge 0x4124cf
mov ecx, dword [ebp - 0x218]
push ecx
mov edx, dword [ebp - 0x31c]
push edx
lea eax, [ebp - 0x430]
push eax
mov ecx, 0x462a44
call fcn.004044e0
mov dword [ebp - 0x458], eax
mov ecx, dword [ebp - 0x458]
mov dword [ebp - 0x45c], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x45c]
mov eax, dword [edx]
push eax
push 0x457548
call fcn.00401000
add esp, 0xc
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x430]
call fcn.00437020
lea ecx, [ebp - 0x218]
push ecx
mov edx, dword [ebp - 0x31c]
push edx
lea eax, [ebp - 0x438]
push eax
mov ecx, 0x462a44
call fcn.004044e0
mov dword [ebp - 0x460], eax
mov ecx, dword [ebp - 0x460]
mov dword [ebp - 0x464], ecx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x464]
push edx
call fcn.004137e0
mov byte [ebp - 0x434], al
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x438]
call fcn.00437020
mov eax, dword [ebp - 0x434]
and eax, 0xff
test eax, eax
je 0x4124ca
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp - 0x31c]
push edx
lea eax, [ebp - 0x43c]
push eax
mov ecx, 0x462a58
call fcn.004044e0
mov dword [ebp - 0x468], eax
mov ecx, dword [ebp - 0x468]
mov edx, dword [ecx]
push edx
push 0x457598
lea eax, [ebp - 0x210]
push eax
call fcn.00420bf4
add esp, 0x10
lea ecx, [ebp - 0x43c]
call fcn.00437020
mov ecx, dword [ebp - 0x31c]
push ecx
lea edx, [ebp - 0x440]
push edx
mov ecx, 0x462a6c
call fcn.004044e0
mov dword [ebp - 0x46c], eax
mov eax, dword [ebp - 0x46c]
mov dword [ebp - 0x470], eax
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x470]
call fcn.004044d0
push eax
lea ecx, [ebp - 0x318]
push ecx
call fcn.004207d0
add esp, 8
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x440]
call fcn.00437020
mov dword [ebp - 0x10], 1
jmp 0x4124cf
jmp 0x412337
cmp dword [ebp - 0x10], 0
jne 0x412509
push 0x4575a0
call fcn.00401000
add esp, 4
mov dword [ebp - 0x444], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x218]
call fcn.00437020
mov eax, dword [ebp - 0x444]
jmp 0x41273a
lea edx, [ebp - 0x210]
push edx
push 0x4575b8
call fcn.00401000
add esp, 8
lea eax, [ebp - 0x428]
push eax
push 0x20019
push 0
lea ecx, [ebp - 0x210]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4126a4
mov dword [ebp - 0x320], 1
mov dword [ebp - 0x214], 0x100
lea edx, [ebp - 0x214]
push edx
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x320]
push ecx
push 0
lea edx, [ebp - 0x318]
push edx
mov eax, dword [ebp - 0x428]
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x41268e
push 0x45e928
lea ecx, [ebp - 0x110]
push ecx
call fcn.00420b70
add esp, 8
test eax, eax
je 0x4125bb
lea edx, [ebp - 0x110]
push edx
call fcn.004208c0
add esp, 4
test eax, eax
jne 0x412682
mov eax, dword [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x448]
push ecx
mov ecx, 0x462a80
call fcn.004044e0
mov dword [ebp - 0x474], eax
mov edx, dword [ebp - 0x474]
mov dword [ebp - 0x478], edx
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x478]
call fcn.004044d0
push eax
lea eax, [ebp - 0x318]
push eax
call fcn.004207d0
add esp, 8
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x448]
call fcn.00437020
mov dword [ebp - 0x320], 1
mov dword [ebp - 0x214], 0x100
lea ecx, [ebp - 0x214]
push ecx
lea edx, [ebp - 0x110]
push edx
lea eax, [ebp - 0x320]
push eax
push 0
lea ecx, [ebp - 0x318]
push ecx
mov edx, dword [ebp - 0x428]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x412676
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetPrinterIPfromRegistry:_RegQueryValueEx___for_DNS_fail_Lasterror_d_n
call fcn.00401000
add esp, 8
mov dword [ebp - 0x424], 0
jmp 0x412680
mov dword [ebp - 0x424], 1
jmp 0x41268c
mov dword [ebp - 0x424], 1
jmp 0x4126a2
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetPrinterIPfromRegistry:_RegQueryValueEx_fail_Lasterror_d_n
call fcn.00401000
add esp, 8
jmp 0x4126b8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.GetPrinterIPfromRegistry:_RegOpenKeyEx_fail_Lasterror_d_n
call fcn.00401000
add esp, 8
mov eax, dword [ebp - 0x428]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x424]
push ecx
push str._IPV6__bReturn___d
call fcn.00401000
add esp, 8
cmp dword [ebp - 0x424], 0
je 0x412718
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x110]
push eax
mov ecx, dword [ebp - 0x454]
call fcn.004130a0
mov dword [ebp - 0x44c], eax
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x218]
call fcn.00437020
mov eax, dword [ebp - 0x44c]
jmp 0x41273a
mov dword [ebp - 0x450], 0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x218]
call fcn.00437020
mov eax, dword [ebp - 0x450]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 8