Function at 0x43a150
Capabilities:
Read .ini file

Disassembly:
sub esp, 0x1b4
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push ebp
push esi
mov esi, dword [esp + 0x1c8]
push edi
mov edi, dword [esp + 0x1c8]
mov dword [esp + 0x18], str.famicom.dat
mov dword [esp + 0x1c], str.nesdbase.dat
mov dword [esp + 0x20], str.ingredients.dat
xor ebp, ebp
push ebp
lea eax, [esp + 0x28]
push str.PreviewColumn_w_u
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esp + 0x24]
push edi
push 0x50
push ecx
push esi
call ebx
push ebp
lea edx, [esp + 0x28]
push str.PreviewColumn_Pos_u
push edx
mov dword [ebp*4 + 0x524488], eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea eax, [esp + 0x24]
push edi
push ebp
push eax
push esi
call ebx
mov dword [ebp*4 + 0x5244a8], eax
inc ebp
cmp ebp, 8
jl 0x43a188
lea ecx, [esp + 0x44]
push 0x104
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xor ebp, ebp
mov dword [esp + 0x10], 0x528614
lea edx, [esp + 0x44]
push edx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecA]
mov eax, dword [esp + ebp*4 + 0x18]
lea ecx, [esp + 0x44]
push eax
lea edx, [esp + 0x48]
push ecx
push edx
call dword [sym.imp.SHLWAPI.dll_PathCombineA]
push ebp
lea eax, [esp + 0x28]
push str.Database__u
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
lea edx, [esp + 0x44]
lea eax, [esp + 0x24]
push edi
push 0x104
push ecx
push edx
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov eax, dword [esp + 0x10]
inc ebp
add eax, 0x104
cmp eax, 0x528920
mov dword [esp + 0x10], eax
jl 0x43a1f5
push edi
push 0x280
push str.Window_w
push esi
call ebx
push edi
push 0x190
push str.Window_h
push esi
mov dword [0x524470], eax
call ebx
push edi
push 0
push str.NotLoadNESJ_DB
push esi
mov dword [0x524474], eax
call ebx
push edi
push 1
push str.NotLoadNESE_DB
push esi
mov dword [0x524440], eax
call ebx
push edi
push 0
push str.NotLoadFDS_DB
push esi
mov dword [0x524444], eax
call ebx
push edi
push 0
push str.NotApplyNES_FixDB
push esi
mov dword [0x524448], eax
call ebx
push edi
push 0
push str.NotApplyFDS_FixDB
push esi
mov dword [0x52444c], eax
call ebx
push edi
push 0
push str.NotLoadNES_AddDB
push esi
mov dword [0x524450], eax
call ebx
push edi
push 0
push str.NotLoadFDS_AddDB
push esi
mov dword [0x524454], eax
call ebx
push edi
push 0
push str.DisableSound
push esi
mov dword [0x524458], eax
call ebx
push edi
push 0
push str.EmuSpeed
push esi
mov dword [0x524460], eax
call ebx
push edi
push 0
push str.NESROM_CRCFrom_Filesize
push esi
mov dword [0x524464], eax
call ebx
push edi
push 0x40
push str.nTree_w
push esi
mov dword [0x52445c], eax
call ebx
push edi
push 1
mov dword [0x528994], eax
push str.TreeDispFlag
push esi
call ebx
push edi
push 1
push str.ScreenDispFlag
push esi
mov dword [0x52899c], eax
call ebx
push edi
push 0
push str.GameTitleDetailDisplay
push esi
mov dword [0x5289a0], eax
call ebx
push edi
push 0xffffff
push str.BGColor
push esi
mov dword [0x528a00], eax
call ebx
push edi
push 0
push str.FontColor
push esi
mov dword [0x528944], eax
call ebx
push edi
lea ecx, [esp + 0x14c]
push 0x79
push ecx
push 0x5167f8
push str.LogFont
push esi
mov dword [0x528940], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x43a3e2
lea edx, [esp + 0x148]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], edx
mov eax, dword [esp + 0x10]
push eax
call fcn.0043a020
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
add esp, 4
add edx, 2
mov byte [ecx + 0x528948], al
inc ecx
cmp ecx, 0x3c
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
jb 0x43a3b6
push edi
push 0
push str.nROMDirectory
push esi
call ebx
xor ebp, ebp
mov dword [0x5244d0], eax
test eax, eax
jle 0x43a46d
mov dword [esp + 0x10], 0x5244d4
push ebp
lea ecx, [esp + 0x28]
push str.ROM_Dir__u
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov edx, dword [esp + 0x1c]
add esp, 0xc
lea eax, [esp + 0x24]
push edi
push 0x104
push edx
push 0x5167f8
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push ebp
lea ecx, [esp + 0x28]
push str.ROM_DirSF__u
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [esp + 0x24]
push edi
push 0
push edx
push esi
call ebx
mov ecx, dword [esp + 0x10]
mov byte [ebp + 0x5285d4], al
mov eax, dword [0x5244d0]
inc ebp
add ecx, 0x104
cmp ebp, eax
mov dword [esp + 0x10], ecx
jl 0x43a400
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1b4
ret