Function at 0x49cfb0
Capabilities:
Read .ini file

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
call fcn.0049cec0
mov esi, dword [esp + 0x18]
mov eax, dword [0x905f28]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push esi
push eax
push str.CPUType
push 0x4bf1a4
call edi
mov ecx, dword [0x905f2c]
push esi
push ecx
push str.DipSwitch
push 0x4bf1a4
mov dword [0x905f28], eax
call edi
mov edx, dword [0x905f30]
push esi
push edx
push str.MonitorType
push 0x4bf1a4
mov dword [0x905f2c], eax
call edi
mov dword [0x905f30], eax
mov al, byte [0x905f34]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.ScanLine
push 0x4bf1a4
call edi
test eax, eax
mov al, byte [0x905f35]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x905f34], dl
push ecx
push str.ScanLineAuto
push 0x4bf1a4
call edi
test eax, eax
mov eax, dword [0x905f38]
push esi
push eax
push str.PrinterType
setne dl
push 0x4bf1a4
mov byte [0x905f35], dl
call edi
mov dword [0x905f38], eax
xor ebx, ebx
mov ebp, 1
mov cl, byte [ebp + 0x905f3b]
push ebp
push str.CorrectDiskTiming_d
mov byte [esp + 0x20], cl
call fcn.0049cbc0
mov cl, byte [esp + 0x20]
add esp, 8
xor edx, edx
test cl, cl
setne dl
push esi
push edx
push eax
push 0x4bf1a4
call edi
test eax, eax
setne al
mov byte [ebp + 0x905f3b], al
mov cl, byte [ebx + 0x905f4c]
push ebp
push str.IgnoreDiskCRC_d
mov byte [esp + 0x20], cl
call fcn.0049cbc0
mov cl, byte [esp + 0x20]
add esp, 8
xor edx, edx
test cl, cl
setne dl
push esi
push edx
push eax
push 0x4bf1a4
call edi
test eax, eax
setne al
mov byte [ebx + 0x905f4c], al
inc ebx
inc ebp
cmp ebp, 5
jl 0x49d077
mov bl, byte [0x905f5c]
push 1
push str.WaveShaper_d
call fcn.0049cbc0
add esp, 8
xor ecx, ecx
test bl, bl
setne cl
push esi
push ecx
push eax
push 0x4bf1a4
call edi
mov bl, byte [0x905f5d]
test eax, eax
setne dl
push 1
push str.DirectLoadMZT_d
mov byte [0x905f5c], dl
call fcn.0049cbc0
add esp, 8
xor ecx, ecx
test bl, bl
setne cl
push esi
push ecx
push eax
push 0x4bf1a4
call edi
mov bl, byte [0x905f5e]
test eax, eax
setne dl
push 1
push str.BaudHigh_d
mov byte [0x905f5d], dl
call fcn.0049cbc0
add esp, 8
xor ecx, ecx
test bl, bl
setne cl
push esi
push ecx
push eax
push 0x4bf1a4
call edi
test eax, eax
mov al, byte [0x905f5f]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x905f5e], dl
push ecx
push str.CompressState
push 0x4bf1a4
call edi
test eax, eax
mov al, byte [0x905f65]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x905f5f], dl
push ecx
push str.DriveVMInOpecode
push 0x4bf1a4
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
push 0x104
push 0x905f66
push 0x4bc73c
test eax, eax
push str.InitialDiskDir
setne dl
push str.RecentFiles
mov byte [0x905f65], dl
call ebx
xor ecx, ecx
mov edx, 0x90606a
xor eax, eax
inc ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x10]
push esi
push 0x104
lea ebp, [eax + 1]
mov eax, dword [esp + 0x20]
push eax
push 0x4bc73c
push ebp
push ecx
push str.RecentDiskPath_d__d
call fcn.0049cbc0
add esp, 0xc
push eax
push str.RecentFiles
call ebx
mov edx, dword [esp + 0x18]
mov eax, ebp
add edx, 0x104
cmp eax, 8
mov dword [esp + 0x18], edx
jl 0x49d1ff
cmp edx, 0x9080ea
mov ecx, dword [esp + 0x10]
jl 0x49d1f4
push esi
push 0x104
push 0x9080ea
push 0x4bc73c
push str.InitialQuickDiskDir
push str.RecentFiles
call ebx
xor eax, eax
mov dword [esp + 0x18], 0x9081ee
mov edx, dword [esp + 0x18]
push esi
push 0x104
push edx
push 0x4bc73c
lea ebp, [eax + 1]
push ebp
push 1
push str.RecentQuickDiskPath_d__d
call fcn.0049cbc0
add esp, 0xc
push eax
push str.RecentFiles
call ebx
mov edx, dword [esp + 0x18]
mov eax, ebp
add edx, 0x104
cmp eax, 8
mov dword [esp + 0x18], edx
jl 0x49d274
push esi
push 0x104
push 0x908a0e
push 0x4bc73c
push str.InitialTapeDir
push str.RecentFiles
call ebx
xor eax, eax
mov dword [esp + 0x18], 0x908b12
push esi
push 0x104
lea ebp, [eax + 1]
mov eax, dword [esp + 0x20]
push eax
push 0x4bc73c
push ebp
push 1
push str.RecentTapePath_d__d
call fcn.0049cbc0
add esp, 0xc
push eax
push str.RecentFiles
call ebx
mov edx, dword [esp + 0x18]
mov eax, ebp
add edx, 0x104
cmp eax, 8
mov dword [esp + 0x18], edx
jl 0x49d2da
mov ecx, dword [0x909334]
push esi
push ecx
push str.WindowMode
push 0x4bf170
call edi
mov edx, dword [0x909338]
push esi
push edx
push str.WindowStretchType
push 0x4bf170
mov dword [0x909334], eax
call edi
push esi
mov dword [0x909338], eax
mov eax, dword [0x90933c]
push eax
push str.FullScreenStretchType
push 0x4bf170
call edi
mov ecx, dword [0x909340]
push esi
push ecx
push str.RotateType
push 0x4bf170
mov dword [0x90933c], eax
call edi
mov edx, dword [0x909344]
push esi
push edx
push str.FilterType
push 0x4bf170
mov dword [0x909340], eax
call edi
push esi
mov dword [0x909344], eax
mov eax, dword [0x909348]
push eax
push str.Frequency
push 0x4bf12c
call edi
mov ecx, dword [0x90934c]
push esi
push ecx
push str.Latency
push 0x4bf12c
mov dword [0x909348], eax
call edi
mov dword [0x90934c], eax
mov al, byte [0x909350]
xor edx, edx
test al, al
setne dl
push esi
push edx
push str.StrictRendering
push 0x4bf12c
call edi
test eax, eax
setne al
mov byte [0x909350], al
mov al, byte [0x909351]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.NoiseFDD
push 0x4bf12c
call edi
test eax, eax
mov al, byte [0x909353]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x909351], dl
push ecx
push str.NoiseCMT
push 0x4bf12c
call edi
test eax, eax
mov al, byte [0x909354]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x909353], dl
push ecx
push str.TapeSignal
push 0x4bf12c
call edi
test eax, eax
mov al, byte [0x909355]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x909354], dl
push ecx
push str.TapeVoice
push 0x4bf12c
call edi
test eax, eax
setne dl
mov byte [0x909355], dl
mov dword [esp + 0x18], 1
mov ebp, 0x90937c
mov eax, dword [ebp - 0x24]
mov ecx, dword [esp + 0x18]
push esi
push eax
push ecx
push str.VolumeLeft_d
call fcn.0049cbc0
add esp, 8
push eax
push 0x4bf12c
call edi
mov edx, dword [ebp]
push esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
push edx
push eax
push str.VolumeRight_d
call fcn.0049cbc0
add esp, 8
push eax
push 0x4bf12c
call edi
mov ecx, dword [esp + 0x10]
xor edx, edx
test ecx, ecx
setg dl
dec edx
and ecx, edx
cmp ecx, 0xffffffd8
jge 0x49d4e6
mov ecx, 0xffffffd8
mov dword [ebp - 0x24], ecx
xor ecx, ecx
test eax, eax
setg cl
dec ecx
and eax, ecx
cmp eax, 0xffffffd8
jge 0x49d4fd
mov eax, 0xffffffd8
mov dword [ebp], eax
mov eax, dword [esp + 0x18]
inc eax
add ebp, 4
mov dword [esp + 0x18], eax
dec eax
cmp eax, 9
jl 0x49d48c
push esi
push 0x104
push str.mamefm.dll
push 0x4e070c
push str.FMGenDll
push 0x4bf12c
call ebx
push 0x4e06f0
push 0x104
push str.mame2151.dll
call fcn.0049c4e0
add esp, 0xc
push esi
push 0x104
push str.mame2151.dll
push str.mame2151.dll
push str.YM2151GenDll
push 0x4bf12c
call ebx
push esi
push 0x104
push str.mamefm.dll
push str.mamefm.dll
push str.YM2608GenDll
push 0x4bf12c
call ebx
push esi
push 0x104
push str.printer.dll
push 0x4e06c4
push str.PrinterDll
push 0x4e06b0
call ebx
mov al, byte [0x9096af]
xor edx, edx
test al, al
setne dl
push esi
push edx
push str.UseTelnet
push str.Win32
call edi
test eax, eax
setne al
mov byte [0x9096af], al
mov al, byte [0x9096b0]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.UseDirect2D1
push str.Win32
call edi
test eax, eax
mov al, byte [0x9096b1]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x9096b0], dl
push ecx
push str.UseDirect3D9
push str.Win32
call edi
test eax, eax
mov al, byte [0x9096b2]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x9096b1], dl
push ecx
push str.WaitVSync
push str.Win32
call edi
test eax, eax
setne dl
mov byte [0x9096b2], dl
mov al, byte [0x9096b3]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.UseDirectInput
push str.Win32
call edi
test eax, eax
mov al, byte [0x9096b4]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x9096b3], dl
push ecx
push str.DisableDwm
push str.Win32
call edi
test eax, eax
mov al, byte [0x9096b5]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x9096b4], dl
push ecx
push str.ShowStatusBar
push str.Win32
call edi
test eax, eax
mov eax, dword [0x9096b8]
push esi
push eax
push str.InterlaceBrightness
setne dl
push 0x4bf170
mov byte [0x9096b5], dl
call edi
mov ecx, dword [0x9096c0]
push esi
push ecx
push str.WinX
push 0x4bf170
mov dword [0x9096b8], eax
call edi
mov edx, dword [0x9096c4]
push esi
push edx
push str.WinY
push 0x4bf170
mov dword [0x9096c0], eax
call edi
push esi
mov dword [0x9096c4], eax
mov eax, dword [0x9096bc]
push eax
push str.MasterVolume
push 0x4bf12c
call edi
mov dword [0x9096bc], eax
mov al, byte [0x9096c8]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.Romaji
push str.Input
call edi
test eax, eax
mov al, byte [0x9096c9]
setne dl
xor ecx, ecx
test al, al
mov byte [0x9096c8], dl
push esi
setne cl
push ecx
push str.KeyMacro
push str.Input
call edi
test eax, eax
mov al, byte [0x9096ca]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x9096c9], dl
push ecx
push str.UseZLIB
push 0x4bf1a4
call edi
test eax, eax
mov al, byte [0x9096cb]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x9096ca], dl
push ecx
push str.UseResume
push 0x4bf1a4
call edi
test eax, eax
mov eax, dword [0x9096cc]
push esi
push eax
push str.FPSType
setne dl
push 0x4bf170
mov byte [0x9096cb], dl
call edi
mov dword [0x9096cc], eax
mov al, byte [0x9096d0]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.DisableScreenSaver
push str.Win32
call edi
push esi
push 0x104
push 0x9096d1
push 0
test eax, eax
push str.Path
setne dl
push str.Win32
mov byte [0x9096d0], dl
call ebx
push esi
push 0x104
push 0x9097d5
push 0
push str.DllPath
push str.Win32
call ebx
mov al, byte [0x9098d9]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.CursorNumKey
push str.Input
call edi
test eax, eax
mov al, byte [0x9098da]
setne dl
xor ecx, ecx
test al, al
mov byte [0x9098d9], dl
push esi
setne cl
push ecx
push str.CursorJoyPad
push str.Input
call edi
pop edi
pop esi
test eax, eax
setne dl
pop ebp
mov byte [0x9098da], dl
pop ebx
pop ecx
ret