Function at 0x45a7aa
Capabilities:
Query or enumerate registry value

Disassembly:
push 0x258
mov eax, 0x493094
call fcn.0048e6b2
mov ebx, ecx
push 9
call dword [sym.imp.MFC42u.dll_CWinApp::LoadStdProfileSettings]
xor edi, edi
mov esi, str.View
push edi
push str.NoStretching
push esi
mov ecx, ebx
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
xor ecx, ecx
test eax, eax
push edi
sete cl
push str.ShowThumbnail
mov dword [0x4a1ef8], ecx
mov ecx, ebx
push esi
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push edi
push str.ShowAllFiles
push esi
mov ecx, ebx
mov dword [ebx + 0x22c], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push edi
push str.BMPWidth
push esi
mov ecx, ebx
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push edi
push str.BMPHeight
push str.View
mov ecx, ebx
mov esi, eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
test esi, esi
je 0x45a843
test eax, eax
je 0x45a843
mov ecx, 0x1388
cmp esi, ecx
jg 0x45a843
cmp eax, ecx
jle 0x45a847
mov esi, edi
mov eax, edi
mov dword [ebx + 0x2fc], eax
lea eax, [ebp - 0x218]
push eax
mov dword [ebx + 0x2f8], esi
call fcn.0045a6e0
test al, al
je 0x45aa13
lea eax, [ebp - 0x248]
push eax
push 0x20019
push edi
lea eax, [ebp - 0x218]
push eax
push SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x45aa13
push 0x1c
mov dword [ebp - 0x240], 3
mov dword [ebp - 0x244], 0x2c
call dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0x1d
mov esi, eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov edi, eax
lea ecx, [ebp - 0x244]
push ecx
lea eax, [ebx + 0x2cc]
push eax
lea eax, [ebp - 0x240]
push eax
push 0
push 0x4a20c0
push dword [ebp - 0x248]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x45a920
cmp dword [ebp - 0x240], 3
jne 0x45a920
cmp dword [ebp - 0x244], 0x2c
jne 0x45a920
mov eax, dword [ebx + 0x2f0]
sub eax, dword [ebx + 0x2e8]
cmp eax, esi
jl 0x45a920
mov eax, dword [ebx + 0x2f4]
sub eax, dword [ebx + 0x2ec]
cmp eax, edi
jl 0x45a920
test esi, esi
je 0x45a920
test edi, edi
jne 0x45aa05
push 0x2c
lea eax, [ebx + 0x2cc]
push 0
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push 0
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x23c], eax
fild dword [ebp - 0x23c]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x23c]
fmul qword [0x4130d0]
call sub.msvcrt.dll__ftol2_sse
push 1
mov edi, eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x23c], eax
fild dword [ebp - 0x23c]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x23c]
fmul qword [0x4130d0]
call sub.msvcrt.dll__ftol2_sse
push 0
mov esi, eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x23c], eax
fild dword [ebp - 0x23c]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x23c]
fmul qword [0x413060]
call sub.msvcrt.dll__ftol2_sse
push 1
mov dword [ebx + 0x2e8], eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov dword [ebp - 0x23c], eax
fild dword [ebp - 0x23c]
fstp dword [ebp - 0x23c]
fld dword [ebp - 0x23c]
fmul qword [0x413060]
call sub.msvcrt.dll__ftol2_sse
mov ecx, dword [ebx + 0x2e8]
add ecx, edi
mov dword [ebx + 0x2ec], eax
add eax, esi
mov dword [ebx + 0x2f0], ecx
mov dword [ebx + 0x2f4], eax
push dword [ebp - 0x248]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor edi, edi
push edi
push str.ThumbXPos
mov esi, str.View
mov ecx, ebx
push esi
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push edi
push str.ThumbYPos
push esi
mov ecx, ebx
mov dword [ebp - 0x23c], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push 0
push str.ThumbWidth
push esi
mov ecx, ebx
mov edi, eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push 0
push str.ThumbHeight
push str.View
mov ecx, ebx
mov esi, eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
mov ecx, dword [ebp - 0x23c]
test ecx, ecx
je 0x45aada
test edi, edi
je 0x45aada
test esi, esi
je 0x45aada
test eax, eax
je 0x45aada
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x250]
push eax
push edi
push ecx
lea eax, [ebp - 0x25c]
mov dword [ebp - 0x250], esi
push eax
mov ecx, ebx
call fcn.0044b820
lea edi, [ebx + 0x290]
lea esi, [ebp - 0x264]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [ebp - 0x250]
add eax, ecx
mov dword [ebp - 0x264], ecx
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp - 0x24c]
mov dword [ebp - 0x260], edx
add eax, edx
mov dword [ebp - 0x258], eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor esi, esi
mov edi, str.View
push esi
push str.UnitSetting
push edi
mov ecx, ebx
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push esi
push str.ShowRulers
push edi
mov ecx, ebx
mov dword [ebx + 0x27c], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push esi
push str.ShowGrid
push edi
mov ecx, ebx
mov dword [ebx + 0x278], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push 1
push str.ShowStatusBar
push edi
mov ecx, ebx
mov dword [ebx + 0x238], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push 1
push str.ShowTextTool
push str.Text
mov ecx, ebx
mov dword [ebx + 0x228], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push 0xb
push str.PointSize
push str.Text
mov ecx, ebx
mov dword [ebx + 0x230], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push esi
push str.Bold
push str.Text
mov ecx, ebx
mov dword [ebx + 0x300], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push esi
push str.Underline
push str.Text
mov ecx, ebx
mov dword [ebx + 0x30c], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push esi
push str.Italic
push str.Text
mov ecx, ebx
mov dword [ebx + 0x310], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push esi
push str.Strikeout
push str.Text
mov ecx, ebx
mov dword [ebx + 0x314], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push esi
push str.PositionX
push str.Text
mov ecx, ebx
mov dword [ebx + 0x318], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push esi
push str.PositionY
push str.Text
mov ecx, ebx
mov dword [ebx + 0x304], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push 0x40efc8
push str.TypeFaceName
mov dword [ebx + 0x308], eax
mov ecx, ebx
push str.Text
lea eax, [ebp - 0x254]
push eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileStringW]
push eax
lea ecx, [ebx + 0x320]
mov dword [ebp - 4], esi
call dword [0x4a557c]
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x254]
call dword [sym.imp.MFC42u.dll_CString::CString]
push 0xffffffffffffffff
push str.CharSet
push str.Text
mov ecx, ebx
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
mov dword [ebx + 0x324], eax
cmp eax, 0xffffffff
jne 0x45ac89
push 2
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.KERNEL32.dll_GetACP]
push eax
call dword [sym.imp.GDI32.dll_TranslateCharsetInfo]
neg eax
sbb eax, eax
and eax, dword [ebp - 0x238]
mov dword [ebp - 0x238], eax
mov dword [ebx + 0x324], eax
push esi
push str.TextPen
push str.Text
mov ecx, ebx
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push esi
push str.SnapToGrid
push edi
mov ecx, ebx
mov dword [ebx + 0x31c], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push 1
push str.GridExtent
push edi
mov ecx, ebx
mov dword [ebx + 0x328], eax
call dword [sym.imp.MFC42u.dll_CWinApp::GetProfileIntW]
push 0x20019
mov ecx, ebx
mov dword [ebx + 0x32c], eax
call fcn.0045a718
mov esi, eax
test esi, esi
je 0x45acf2
push esi
lea ecx, [ebx + 0x604]
call fcn.0041797d
push esi
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
call fcn.0048e652
ret