Function at 0x402160
Capabilities:
Query or enumerate registry value

Disassembly:
mov eax, dword [esp + 0x10]
sub esp, 0x10
cmp eax, 1
jne 0x402174
mov dword [esp + 0x20], 0xa
mov eax, dword [esp + 0x14]
mov dword [0x4eb828], eax
call fcn.0044b410
test eax, eax
jne 0x4021a3
mov ecx, dword [str.ACDSee_32]
mov edx, dword [0x4eb828]
push eax
push ecx
push 0x1ff
push eax
push edx
call fcn.0044ace0
add esp, 0x14
push ebx
push ebp
push esi
push edi
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push 0xc
push esi
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push esi
push 0
mov edi, eax
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp edi, 8
jge 0x4021f4
mov eax, dword [str.ACDSee_32]
mov ecx, dword [0x4eb828]
push 0
push eax
push 0x200
push 0
push ecx
call fcn.0044ace0
add esp, 0x14
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x10
call fcn.00406670
push str.MSWHEEL_ROLLMSG
mov dword [0x4e0040], eax
call dword [sym.imp.USER32.dll_RegisterWindowMessageA]
mov dword [0x4eb82c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.004be980
add esp, 4
push 0
push 0
push 0x402550
push 0x4eb844
call sub.USER32.dll_DdeInitializeA
mov edi, dword [sym.imp.USER32.dll_MessageBoxA]
test eax, eax
jne 0x402289
mov edx, dword [str.ACDSee_32]
mov eax, dword [0x4eb844]
push 0x3ec
push edx
push eax
call sub.USER32.dll_DdeCreateStringHandleA
mov ecx, dword [0x4eb844]
push 0x3ec
push str.System
push ecx
mov dword [0x4eb848], eax
call sub.USER32.dll_DdeCreateStringHandleA
mov edx, dword [0x4eb848]
mov dword [0x4eb84c], eax
mov eax, dword [0x4eb844]
push 1
push 0
push edx
push eax
call sub.USER32.dll_DdeNameService
jmp 0x40229b
mov ecx, dword [str.ACDSee_32]
push 0
push ecx
push str.DDE_registration_failed
push 0
call edi
push 0x4eb834
push 0x4eb830
push str.comctl32.dll
call fcn.0044c830
add esp, 0xc
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
push str.comctl32.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x4022f7
push str.InitCommonControlsEx
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4022f0
lea edx, [esp + 0x18]
mov dword [esp + 0x18], 8
push edx
mov dword [esp + 0x20], 0x4ff
call eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
test eax, eax
je 0x402326
mov eax, dword [str.ACDSee_32]
push 0
push eax
push str.OLE_initialization_failed
push 0
call edi
call dword [sym.imp.ole32.dll_OleUninitialize]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 0x10
mov ecx, dword [str.SoftwareACD_SystemsACDSee32]
push ecx
mov ecx, 0x4eb200
call fcn.00432a30
mov edx, dword [str.SoftwareACD_SystemsACDSee32]
mov ecx, 0x4eb200
push edx
call fcn.00433e30
mov eax, dword [0x4eb7f8]
and eax, 0xff
mov dword [0x4e3788], eax
call fcn.004071b0
call fcn.00407250
mov edx, dword [str.SoftwareACD_SystemsACDSee32]
lea ecx, [esp + 0x24]
push ecx
push 0x20019
push 0
push edx
push CreateStatusWindowA
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4023b7
mov edx, dword [esp + 0x24]
lea eax, [esp + 0x10]
push eax
lea ecx, [esp + 0x18]
push 0x4eb838
push ecx
push 0
push str.Images
push edx
mov dword [esp + 0x28], 2
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov eax, dword [esp + 0x24]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [0x4eb828]
mov esi, dword [sym.imp.USER32.dll_LoadIconA]
push 0x65
push ecx
call esi
mov edx, dword [0x4eb828]
push 0x74
push edx
mov dword [0x4eb83c], eax
call esi
mov ebp, dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 1
mov dword [0x4eb840], eax
call ebp
push 0x2ec
call fcn.004be967
mov edi, dword [sym.imp.USER32.dll_RemoveMenu]
mov esi, eax
add esp, 4
test esi, esi
je 0x402436
mov eax, dword [0x4eb83c]
mov ecx, dword [0x4eb828]
push eax
push 0
push ecx
mov ecx, esi
call fcn.0043e0b0
mov dword [esi], 0x4cc6c0
call fcn.00406670
test eax, eax
je 0x402432
mov edx, dword [esi + 0x1c]
push 0
push 0x4ef2
push edx
call edi
mov ecx, esi
jmp 0x402438
xor ecx, ecx
push 0
mov dword [0x4eb824], ecx
call fcn.00441950
mov al, byte [0x4eb485]
mov ebx, dword [esp + 0x2c]
test al, al
jne 0x402526
push ebx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jne 0x402526
mov ecx, dword [0x4eb824]
push 1
call fcn.00441950
push 0x9b8
call fcn.004be967
mov esi, eax
add esp, 4
test esi, esi
je 0x4024ca
mov eax, dword [esp + 0x30]
mov ecx, dword [0x4eb83c]
mov edx, dword [0x4eb828]
push eax
push ecx
push 0
push edx
mov ecx, esi
call fcn.0040ab20
mov dword [esi], 0x4cc6a0
call fcn.00406670
test eax, eax
je 0x4024bd
mov eax, dword [esi + 0x54]
push 0
push 0x4ef2
push eax
call edi
push 1
call ebp
mov dword [0x4eb850], eax
mov ecx, esi
jmp 0x4024cc
xor ecx, ecx
mov dword [0x4eb820], ecx
mov edx, dword [ecx]
call dword [edx + 0x14]
mov ecx, dword [0x4eb820]
call fcn.004102a0
push 0x4e006c
push ebx
call fcn.004be9b0
mov cl, byte [0x4eb485]
add esp, 8
test cl, cl
jne 0x4024fe
test eax, eax
je 0x40250e
mov ecx, dword [0x4eb824]
push 0x1f4
call fcn.00447a60
call fcn.00403a20
mov esi, eax
call fcn.004038c0
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x10
ret 0x10
push ebx
call fcn.004028a0
add esp, 4
cmp eax, 1
je 0x4024e2
call fcn.004038c0
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0x10