Function at 0x408690
Capabilities:
Set registry value

Disassembly:
sub esp, 0x34
lea eax, [esp + 4]
push esi
push eax
push 0x401268
push 0x80000001
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
je 0x4086b4
xor eax, eax
pop esi
add esp, 0x34
ret
mov eax, dword [0x40f210]
push 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], eax
lea eax, [esp + 8]
mov esi, dword [sym.imp.ADVAPI32.dll_RegSetValueExA]
push eax
push 4
push 0
push str.SaveSettingsOnExit
push ecx
call esi
cmp dword [0x40f210], 0
jne 0x4086f8
mov eax, dword [esp + 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
pop esi
add esp, 0x34
ret
mov eax, dword [0x40f16c]
push 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], eax
lea eax, [esp + 8]
push eax
push 4
push 0
push str.SmallFont
push ecx
call esi
mov ecx, dword [0x40f218]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.ToolTips
push eax
call esi
mov ecx, dword [0x40f204]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.StopCDPlayingOnExit
push eax
call esi
mov ecx, dword [0x40f53c]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.DisplayT
push eax
call esi
mov ecx, dword [0x40f220]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.DisplayTr
push eax
call esi
mov ecx, dword [0x40f208]
push 4
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
mov eax, dword [esp + 0x14]
push 0
push str.DisplayDr
push eax
call esi
mov ecx, dword [0x40f3a0]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.InOrderPlay
push eax
call esi
cmp dword [0x40f4ec], 1
sbb eax, eax
push 4
neg eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], eax
lea eax, [esp + 8]
push eax
push 4
push 0
push str.MultiDiscPlay
push ecx
call esi
mov ecx, dword [0x40f168]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.IntroPlay
push eax
call esi
mov ecx, dword [0x40f160]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.IntroPlayLen
push eax
call esi
mov ecx, dword [0x40f540]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.ContinuousPlay
push eax
call esi
mov ecx, dword [0x40f2a0]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.ToolBar
push eax
call esi
mov ecx, dword [0x40f60c]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.DiscAndTrackDisplay
push eax
call esi
mov ecx, dword [0x40f52c]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.StatusBar
push eax
call esi
lea ecx, [esp + 0xc]
mov edx, dword [0x40f230]
mov dword [esp + 0xc], 0x2c
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowPlacement]
cmp dword [0x40f608], 0
jne 0x4088f6
mov eax, dword [0x40f530]
sub dword [esp + 0x2c], eax
mov eax, dword [esp + 0x28]
push 4
mov ecx, dword [esp + 0xc]
mov dword [esp + 8], eax
lea eax, [esp + 8]
push eax
push 4
push 0
push str.WindowOriginX
push ecx
call esi
mov ecx, dword [esp + 0x2c]
push 4
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ecx
lea ecx, [esp + 8]
push ecx
push 4
push 0
push str.WindowOriginY
push eax
call esi
mov ecx, dword [esp + 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
pop esi
add esp, 0x34
ret