Function at 0x48a0f0
Capabilities:
Read .ini file

Disassembly:
sub esp, 8
push ebx
push ebp
push esi
push edi
call fcn.00489fa0
mov esi, dword [esp + 0x1c]
mov eax, dword [0x8d8200]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push esi
push eax
push str.DriveType
push 0x4ad028
call edi
mov ecx, dword [0x8d8204]
push esi
push ecx
push str.KeyboardType
push 0x4ad028
mov dword [0x8d8200], eax
call edi
mov edx, dword [0x8d8208]
push esi
push edx
push str.SoundType
push 0x4ad028
mov dword [0x8d8204], eax
call edi
push esi
mov dword [0x8d8208], eax
mov eax, dword [0x8d820c]
push eax
push str.MonitorType
push 0x4ad028
call edi
mov dword [0x8d820c], eax
mov al, byte [0x8d8210]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.ScanLine
push 0x4ad028
call edi
test eax, eax
mov al, byte [0x8d8211]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8d8210], dl
push ecx
push str.ScanLineAuto
push 0x4ad028
call edi
test eax, eax
mov eax, dword [0x8d8214]
push esi
push eax
push str.PrinterType
setne dl
push 0x4ad028
mov byte [0x8d8211], dl
call edi
mov dword [0x8d8214], eax
xor ebx, ebx
mov ebp, 1
mov cl, byte [ebp + 0x8d8217]
push ebp
push str.CorrectDiskTiming_d
mov byte [esp + 0x24], cl
call fcn.00489a30
mov cl, byte [esp + 0x24]
add esp, 8
xor edx, edx
test cl, cl
setne dl
push esi
push edx
push eax
push 0x4ad028
call edi
test eax, eax
setne al
mov byte [ebp + 0x8d8217], al
mov cl, byte [ebx + 0x8d8228]
push ebp
push str.IgnoreDiskCRC_d
mov byte [esp + 0x24], cl
call fcn.00489a30
mov cl, byte [esp + 0x24]
add esp, 8
xor edx, edx
test cl, cl
setne dl
push esi
push edx
push eax
push 0x4ad028
call edi
test eax, eax
setne al
mov byte [ebx + 0x8d8228], al
inc ebx
inc ebp
cmp ebp, 5
jl 0x48a1d1
mov bl, byte [0x8d8238]
push 1
push str.WaveShaper_d
call fcn.00489a30
add esp, 8
xor ecx, ecx
test bl, bl
setne cl
push esi
push ecx
push eax
push 0x4ad028
call edi
mov bl, byte [0x8d8239]
test eax, eax
setne dl
push 1
push str.DirectLoadMZT_d
mov byte [0x8d8238], dl
call fcn.00489a30
add esp, 8
xor ecx, ecx
test bl, bl
setne cl
push esi
push ecx
push eax
push 0x4ad028
call edi
mov bl, byte [0x8d823a]
test eax, eax
setne dl
push 1
push str.BaudHigh_d
mov byte [0x8d8239], dl
call fcn.00489a30
add esp, 8
xor ecx, ecx
test bl, bl
setne cl
push esi
push ecx
push eax
push 0x4ad028
call edi
test eax, eax
mov al, byte [0x8d823b]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8d823a], dl
push ecx
push str.CompressState
push 0x4ad028
call edi
test eax, eax
mov al, byte [0x8d8241]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8d823b], dl
push ecx
push str.DriveVMInOpecode
push 0x4ad028
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
push 0x104
push 0x8d8242
push 0x4a9740
test eax, eax
push str.InitialDiskDir
setne dl
push str.RecentFiles
mov byte [0x8d8241], dl
call ebx
xor ecx, ecx
mov edx, 0x8d8346
xor eax, eax
inc ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
mov ecx, dword [esp + 0x14]
push esi
push 0x104
lea ebp, [eax + 1]
mov eax, dword [esp + 0x24]
push eax
push 0x4a9740
push ebp
push ecx
push str.RecentDiskPath_d__d
call fcn.00489a30
add esp, 0xc
push eax
push str.RecentFiles
call ebx
mov edx, dword [esp + 0x1c]
mov eax, ebp
add edx, 0x104
cmp eax, 8
mov dword [esp + 0x1c], edx
jl 0x48a359
cmp edx, 0x8da3c6
mov ecx, dword [esp + 0x14]
jl 0x48a34e
push esi
push 0x104
push 0x8da3c6
push 0x4a9740
push str.InitialHardDiskDir
push str.RecentFiles
call ebx
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0x8dc54a
mov ecx, 0x8da4ca
xor eax, eax
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x1c]
push esi
push 0x104
push edx
lea ebp, [eax + 1]
mov eax, dword [esp + 0x20]
push 0x4a9740
push ebp
push eax
push str.RecentHardDiskPath_d__d
call fcn.00489a30
add esp, 0xc
push eax
push str.RecentFiles
call ebx
mov edx, dword [esp + 0x1c]
mov eax, ebp
add edx, 0x104
cmp eax, 8
mov dword [esp + 0x1c], edx
jl 0x48a3df
mov ecx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
push esi
push 0x104
push ecx
push 0x4a9740
push ebp
push str.LastHardDiskPath_d
call fcn.00489a30
add esp, 8
push eax
push str.RecentFiles
call ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x1c]
add eax, 0x104
inc ebp
mov dword [esp + 0x14], ebp
dec ebp
cmp ebp, 4
mov dword [esp + 0x10], eax
jl 0x48a3d9
push esi
push 0x104
push 0x8dc95a
push 0x4a9740
push str.InitialTapeDir
push str.RecentFiles
call ebx
xor eax, eax
mov dword [esp + 0x1c], 0x8dca5e
mov edx, dword [esp + 0x1c]
push esi
push 0x104
push edx
push 0x4a9740
lea ebp, [eax + 1]
push ebp
push 1
push str.RecentTapePath_d__d
call fcn.00489a30
add esp, 0xc
push eax
push str.RecentFiles
call ebx
mov edx, dword [esp + 0x1c]
mov eax, ebp
add edx, 0x104
cmp eax, 8
mov dword [esp + 0x1c], edx
jl 0x48a492
mov eax, dword [0x8dd280]
push esi
push eax
push str.WindowMode
push 0x4acff4
call edi
mov ecx, dword [0x8dd284]
push esi
push ecx
push str.WindowStretchType
push 0x4acff4
mov dword [0x8dd280], eax
call edi
mov edx, dword [0x8dd288]
push esi
push edx
push str.FullScreenStretchType
push 0x4acff4
mov dword [0x8dd284], eax
call edi
push esi
mov dword [0x8dd288], eax
mov eax, dword [0x8dd28c]
push eax
push str.RotateType
push 0x4acff4
call edi
mov ecx, dword [0x8dd290]
push esi
push ecx
push str.FilterType
push 0x4acff4
mov dword [0x8dd28c], eax
call edi
mov edx, dword [0x8dd294]
push esi
push edx
push str.Frequency
push 0x4acfb0
mov dword [0x8dd290], eax
call edi
push esi
mov dword [0x8dd294], eax
mov eax, dword [0x8dd298]
push eax
push str.Latency
push 0x4acfb0
call edi
mov dword [0x8dd298], eax
mov al, byte [0x8dd29c]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.StrictRendering
push 0x4acfb0
call edi
test eax, eax
mov al, byte [0x8dd29d]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd29c], dl
push ecx
push str.NoiseFDD
push 0x4acfb0
call edi
test eax, eax
mov al, byte [0x8dd29e]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd29d], dl
push ecx
push str.NoiseCMT
push 0x4acfb0
call edi
test eax, eax
mov al, byte [0x8dd29f]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd29e], dl
push ecx
push str.TapeSignal
push 0x4acfb0
call edi
test eax, eax
mov al, byte [0x8dd2a0]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd29f], dl
push ecx
push str.TapeVoice
push 0x4acfb0
call edi
test eax, eax
setne dl
mov byte [0x8dd2a0], dl
mov dword [esp + 0x1c], 1
mov ebp, 0x8dd2c0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [esp + 0x1c]
push esi
push eax
push ecx
push str.VolumeLeft_d
call fcn.00489a30
add esp, 8
push eax
push 0x4acfb0
call edi
mov edx, dword [ebp]
push esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x20]
push edx
push eax
push str.VolumeRight_d
call fcn.00489a30
add esp, 8
push eax
push 0x4acfb0
call edi
mov ecx, dword [esp + 0x14]
xor edx, edx
test ecx, ecx
setg dl
dec edx
and ecx, edx
cmp ecx, 0xffffffd8
jge 0x48a69e
mov ecx, 0xffffffd8
mov dword [ebp - 0x1c], ecx
xor ecx, ecx
test eax, eax
setg cl
dec ecx
and eax, ecx
cmp eax, 0xffffffd8
jge 0x48a6b5
mov eax, 0xffffffd8
mov dword [ebp], eax
mov eax, dword [esp + 0x1c]
inc eax
add ebp, 4
mov dword [esp + 0x1c], eax
dec eax
cmp eax, 7
jl 0x48a644
push esi
push 0x104
push 0x8dd2dc
push str.mame2151.dll
push str.FMGenDll
push 0x4acfb0
call ebx
push str.mamefm.dll
push 0x104
push 0x8dd3e0
call fcn.00489320
add esp, 0xc
push esi
push 0x104
push 0x8dd2dc
push 0x8dd2dc
push str.YM2151GenDll
push 0x4acfb0
call ebx
push esi
push 0x104
push 0x8dd3e0
push 0x8dd3e0
push str.YM2608GenDll
push 0x4acfb0
call ebx
xor edx, edx
mov ebp, 0x8dd4e4
mov ecx, edx
shl ecx, 4
xor eax, eax
inc edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], edx
jmp 0x48a756
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
push esi
or ecx, eax
push ecx
lea ebx, [eax + 1]
push ebx
push edx
push str.JoyButtons_d__d
call fcn.00489a30
add esp, 0xc
push eax
push 0x4acfb8
call edi
mov edx, dword [esp + 0x1c]
mov ecx, eax
and ecx, 0xfffffff0
push esi
shl ecx, 1
and eax, 0xf
or ecx, eax
push ecx
push ebx
push edx
push str.JoyButtonsEx_d__d
call fcn.00489a30
add esp, 0xc
push eax
push 0x4acfb8
call edi
mov dword [ebp], eax
mov eax, ebx
add ebp, 4
cmp eax, 0x10
jl 0x48a752
cmp ebp, 0x8dd5e4
mov edx, dword [esp + 0x1c]
jl 0x48a740
mov al, byte [0x8dd6e4]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.UseJoyToKey
push 0x4acfb8
call edi
test eax, eax
mov eax, dword [0x8dd6e8]
push esi
push eax
push str.JoyToKeyType
setne dl
push 0x4acfb8
mov byte [0x8dd6e4], dl
call edi
mov dword [0x8dd6e8], eax
mov al, byte [0x8dd6ec]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.JoyToKeyNumPad5
push 0x4acfb8
call edi
test eax, eax
setne dl
mov byte [0x8dd6ec], dl
xor ebp, ebp
mov ebx, 0x8dd6f0
mov eax, dword [ebx]
push esi
push eax
inc ebp
push ebp
push str.JoyToKeyButtons_d
call fcn.00489a30
add esp, 8
push eax
push 0x4acfb8
call edi
mov dword [ebx], eax
add ebx, 4
cmp ebx, 0x8dd730
jl 0x48a823
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
push 0x104
push 0x8dd731
push str.printer.dll
push str.PrinterDll
push 0x4becb0
call ebx
mov al, byte [0x8dd837]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.UseTelnet
push str.Win32
call edi
test eax, eax
mov al, byte [0x8dd838]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd837], dl
push ecx
push str.UseDirect2D1
push str.Win32
call edi
test eax, eax
mov al, byte [0x8dd839]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd838], dl
push ecx
push str.UseDirect3D9
push str.Win32
call edi
test eax, eax
mov al, byte [0x8dd83a]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd839], dl
push ecx
push str.WaitVSync
push str.Win32
call edi
test eax, eax
mov al, byte [0x8dd83b]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd83a], dl
push ecx
push str.UseDirectInput
push str.Win32
call edi
test eax, eax
mov al, byte [0x8dd83c]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd83b], dl
push ecx
push str.DisableDwm
push str.Win32
call edi
test eax, eax
mov al, byte [0x8dd83d]
setne dl
mov byte [0x8dd83c], dl
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.ShowStatusBar
push str.Win32
call edi
test eax, eax
mov eax, dword [0x8dd840]
push esi
push eax
push str.InterlaceBrightness
setne dl
push 0x4acff4
mov byte [0x8dd83d], dl
call edi
mov ecx, dword [0x8dd848]
push esi
push ecx
push str.WinX
push 0x4acff4
mov dword [0x8dd840], eax
call edi
mov edx, dword [0x8dd84c]
push esi
push edx
push str.WinY
push 0x4acff4
mov dword [0x8dd848], eax
call edi
push esi
mov dword [0x8dd84c], eax
mov eax, dword [0x8dd844]
push eax
push str.MasterVolume
push 0x4acfb0
call edi
mov dword [0x8dd844], eax
mov al, byte [0x8dd850]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.Romaji
push 0x4acfb8
call edi
test eax, eax
mov al, byte [0x8dd851]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd850], dl
push ecx
push str.KeyMacro
push 0x4acfb8
call edi
test eax, eax
mov al, byte [0x8dd852]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd851], dl
push ecx
push str.UseZLIB
push 0x4ad028
call edi
test eax, eax
mov al, byte [0x8dd853]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd852], dl
push ecx
push str.UseResume
push 0x4ad028
call edi
test eax, eax
mov eax, dword [0x8dd854]
push esi
push eax
push str.FPSType
setne dl
push 0x4acff4
mov byte [0x8dd853], dl
call edi
mov dword [0x8dd854], eax
mov al, byte [0x8dd858]
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 0x8dd859
push 0
test eax, eax
push str.Path
setne dl
push str.Win32
mov byte [0x8dd858], dl
call ebx
mov al, byte [0x8dd95d]
xor ecx, ecx
test al, al
setne cl
push esi
push ecx
push str.CursorNumKey
push 0x4acfb8
call edi
test eax, eax
mov al, byte [0x8dd95e]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd95d], dl
push ecx
push str.CursorJoyPad
push 0x4acfb8
call edi
test eax, eax
mov al, byte [0x8dd95f]
setne dl
xor ecx, ecx
test al, al
setne cl
push esi
mov byte [0x8dd95e], dl
push ecx
push str.DisableKSOJ
push 0x4acfb8
call edi
pop edi
pop esi
test eax, eax
setne dl
pop ebp
mov byte [0x8dd95f], dl
pop ebx
add esp, 8
ret