Function at 0x4031b9
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45ac4a
mov eax, dword fs:[0]
push eax
mov eax, 0x121c
call fcn.0044b9a0
mov eax, dword [0x479548]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x1180]
push eax
mov edi, ecx
call fcn.00407002
xor ebx, ebx
mov dword [ebp - 4], ebx
mov eax, dword [0x47d1c4]
add eax, 0x2b0
push eax
lea ecx, [ebp - 0x1064]
call fcn.00414d81
push 0x468e58
lea eax, [ebp - 0x1228]
push eax
mov byte [ebp - 4], 1
call fcn.0040b971
push 0x47b3d8
mov byte [ebp - 4], 2
call fcn.0040bb61
lea edx, [ebp - 0x10a0]
mov ecx, eax
call fcn.0040ba10
push 0xffffffffffffffff
push ebx
lea esi, [ebp - 0x1064]
mov byte [ebp - 4], 3
call fcn.00408eb7
push ebx
push 1
lea ecx, [ebp - 0x10a0]
call fcn.00414e73
lea eax, [ebp - 0x1228]
push eax
mov byte [ebp - 4], 1
call fcn.00403160
cmp dword [ebp - 0x104c], 0x10
mov eax, dword [ebp - 0x1060]
jae 0x403289
lea eax, [ebp - 0x1060]
push eax
push 0x1000
lea eax, [ebp - 0x1010]
push eax
push 0x468e5c
push str.FullScreen
push str.General
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x403343
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x1048]
call fcn.00414a2c
lea eax, [ebp - 0x1048]
push eax
mov byte [ebp - 4], 4
call fcn.004199e0
pop ecx
push eax
lea ecx, [ebp - 0x102c]
call fcn.00414d81
push ebx
push 1
lea ecx, [ebp - 0x1048]
mov byte [ebp - 4], 6
call fcn.00414e73
push 0x468e74
lea esi, [ebp - 0x102c]
call fcn.0040b573
pop ecx
push ebx
test al, al
je 0x403315
mov byte [edi + 0x2338], 1
push 1
jmp 0x40331d
mov byte [edi + 0x2338], 0
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0xf1
push dword [edi + 0x38]
call ebx
xor esi, esi
push esi
push 1
lea ecx, [ebp - 0x102c]
mov byte [ebp - 4], 1
call fcn.00414e73
jmp 0x40335f
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 1
push 0xf1
push dword [edi + 0x38]
mov byte [edi + 0x2338], 0
call ebx
xor esi, esi
cmp dword [ebp - 0x104c], 0x10
mov eax, dword [ebp - 0x1060]
jae 0x403374
lea eax, [ebp - 0x1060]
push eax
push 0x1000
lea eax, [ebp - 0x1010]
push eax
push 0x468e78
push str.ShowMenu
push str.General
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40342b
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x1048]
call fcn.00414a2c
lea eax, [ebp - 0x1048]
push eax
mov byte [ebp - 4], 7
call fcn.004199e0
pop ecx
push eax
lea ecx, [ebp - 0x102c]
call fcn.00414d81
push esi
push 1
lea ecx, [ebp - 0x1048]
mov byte [ebp - 4], 9
call fcn.00414e73
push 0x468e74
lea esi, [ebp - 0x102c]
call fcn.0040b573
pop ecx
push 0
test al, al
je 0x403401
mov byte [edi + 0x2339], 1
push 1
jmp 0x40340a
mov byte [edi + 0x2339], 0
push 0
push 0xf1
push dword [edi + 0x3c]
call ebx
push 0
push 1
lea ecx, [ebp - 0x102c]
mov byte [ebp - 4], 1
call fcn.00414e73
xor esi, esi
jmp 0x40343e
push esi
push esi
push 0xf1
push dword [edi + 0x40]
mov byte [edi + 0x2339], 1
call ebx
cmp dword [ebp - 0x104c], 0x10
mov eax, dword [ebp - 0x1060]
jae 0x403453
lea eax, [ebp - 0x1060]
push eax
push 0x1000
lea eax, [ebp - 0x1010]
push eax
push 0x468e5c
push str.ShowFPS
push str.General
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40350a
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x1048]
call fcn.00414a2c
lea eax, [ebp - 0x1048]
push eax
mov byte [ebp - 4], 0xa
call fcn.004199e0
pop ecx
push eax
lea ecx, [ebp - 0x102c]
call fcn.00414d81
push esi
push 1
lea ecx, [ebp - 0x1048]
mov byte [ebp - 4], 0xc
call fcn.00414e73
push 0x468e74
lea esi, [ebp - 0x102c]
call fcn.0040b573
pop ecx
push 0
test al, al
je 0x4034e0
mov byte [edi + 0x233a], 1
push 1
jmp 0x4034e9
mov byte [edi + 0x233a], 0
push 0
push 0xf1
push dword [edi + 0x40]
call ebx
push 0
push 1
lea ecx, [ebp - 0x102c]
mov byte [ebp - 4], 1
call fcn.00414e73
xor esi, esi
jmp 0x40351d
push esi
push esi
push 0xf1
push dword [edi + 0x40]
mov byte [edi + 0x233a], 0
call ebx
push esi
push 1
push 0xf1
push dword [edi + 0x44]
mov byte [edi + 0x233b], 1
call ebx
cmp dword [ebp - 0x104c], 0x10
mov eax, dword [ebp - 0x1060]
jae 0x403546
lea eax, [ebp - 0x1060]
push eax
push 0x1000
lea eax, [ebp - 0x1010]
push eax
push 0x468e90
push str.MaxVRAMCacheSize
push str.General
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x403624
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x1048]
call fcn.00414a2c
lea eax, [ebp - 0x1048]
push eax
mov byte [ebp - 4], 0xd
call fcn.004199e0
pop ecx
push eax
lea ecx, [ebp - 0x102c]
call fcn.00414d81
push esi
push 1
lea ecx, [ebp - 0x1048]
mov byte [ebp - 4], 0xf
call fcn.00414e73
push 0x468e90
lea esi, [ebp - 0x102c]
call fcn.0040b573
pop ecx
test al, al
je 0x4035d2
xor eax, eax
push eax
mov dword [edi + 0x2328], eax
push eax
jmp 0x403603
push 0x468ea8
lea esi, [ebp - 0x102c]
call fcn.0040b573
pop ecx
push 0
test al, al
je 0x4035f7
mov dword [edi + 0x2328], 0x200
push 1
jmp 0x403603
mov dword [edi + 0x2328], 0x100
push 2
push 0x14e
push dword [edi + 0x2c]
call ebx
push 0
push 1
lea ecx, [ebp - 0x102c]
mov byte [ebp - 4], 1
call fcn.00414e73
xor esi, esi
jmp 0x403636
push esi
push esi
push 0x14e
push dword [edi + 0x2c]
mov dword [edi + 0x2328], esi
call ebx
cmp dword [ebp - 0x104c], 0x10
mov eax, dword [ebp - 0x1060]
jae 0x40364b
lea eax, [ebp - 0x1060]
push eax
push 0x1000
lea eax, [ebp - 0x1010]
push eax
push 0x468eac
push str.MaxFileCacheSize
push str.General
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x40372d
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x1048]
call fcn.00414a2c
lea eax, [ebp - 0x1048]
push eax
mov byte [ebp - 4], 0x10
call fcn.004199e0
pop ecx
push eax
lea ecx, [ebp - 0x102c]
call fcn.00414d81
push esi
push 1
lea ecx, [ebp - 0x1048]
mov byte [ebp - 4], 0x12
call fcn.00414e73
push 0x468ea8
lea esi, [ebp - 0x102c]
call fcn.0040b573
pop ecx
test al, al
je 0x4036db
push 0
mov dword [edi + 0x232c], 0x200
push 0
jmp 0x40370c
push 0x468eac
lea esi, [ebp - 0x102c]
call fcn.0040b573
pop ecx
push 0
test al, al
je 0x403700
mov dword [edi + 0x232c], 0x100
push 1
jmp 0x40370c
mov dword [edi + 0x232c], 0x80
push 2
push 0x14e
push dword [edi + 0x30]
call ebx
push 0
push 1
lea ecx, [ebp - 0x102c]
mov byte [ebp - 4], 1
call fcn.00414e73
xor esi, esi
jmp 0x403744
push esi
push 1
push 0x14e
push dword [edi + 0x30]
mov dword [edi + 0x232c], 0x100
call ebx
cmp dword [ebp - 0x104c], 0x10
mov eax, dword [ebp - 0x1060]
jae 0x403759
lea eax, [ebp - 0x1060]
push eax
push 0x1000
lea eax, [ebp - 0x1010]
push eax
push 0x468e90
push str.ScreenSize
push str.General
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x403826
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x1048]
call fcn.00414a2c
lea eax, [ebp - 0x1048]
lea ecx, [ebp - 0x1178]
mov byte [ebp - 4], 0x13
call fcn.00407e60
push esi
push 1
lea ecx, [ebp - 0x1048]
mov byte [ebp - 4], 1
call fcn.00414e73
mov eax, dword [ebp - 0x1180]
mov eax, dword [eax + 4]
lea eax, [ebp + eax - 0x1180]
mov ecx, dword [eax + 0x28]
neg ecx
sbb ecx, ecx
and ecx, 0xfffffffc
push esi
add ecx, 4
push eax
call fcn.0041262b
lea eax, [ebp - 0x1084]
push eax
lea eax, [ebp - 0x1180]
push eax
call fcn.00406b75
mov ecx, dword [eax]
mov ecx, dword [ecx + 4]
add ecx, eax
mov eax, dword [ecx + 8]
and al, 6
movsx eax, al
neg eax
sbb eax, eax
not eax
test ecx, eax
je 0x403826
mov eax, dword [ebp - 0x1084]
push esi
push 4
cmp eax, 4
ja 0x403829
pop ecx
sub ecx, eax
mov dword [edi + 0x2330], eax
push ecx
jmp 0x40382f
push esi
push 4
mov dword [edi + 0x2330], esi
push 0x14e
push dword [edi + 0x34]
call ebx
mov eax, dword [0x47d1c4]
add eax, 0x2b0
push eax
lea ecx, [ebp - 0x1080]
call fcn.00414d81
push 0x468e58
lea eax, [ebp - 0x1228]
push eax
mov byte [ebp - 4], 0x14
call fcn.0040b971
push 0x47b3dc
mov byte [ebp - 4], 0x15
call fcn.0040bb61
lea edx, [ebp - 0x10a0]
mov ecx, eax
call fcn.0040ba10
push 0xffffffffffffffff
push esi
lea esi, [ebp - 0x1080]
mov byte [ebp - 4], 0x16
call fcn.00408eb7
xor ebx, ebx
push ebx
push 1
lea ecx, [ebp - 0x10a0]
call fcn.00414e73
lea eax, [ebp - 0x1228]
push eax
mov byte [ebp - 4], 0x14
call fcn.00403160
cmp dword [ebp - 0x1068], 0x10
mov eax, dword [ebp - 0x107c]
jae 0x4038c6
lea eax, [ebp - 0x107c]
push eax
push 0x1000
lea eax, [ebp - 0x1010]
push eax
push 0x468bc4
mov edi, str.InstallationKey
push edi
mov esi, str.Game
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x403a2a
push str.Sagiri
lea ecx, [ebp - 0x10f4]
call fcn.00414a2c
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x10bc]
mov byte [ebp - 4], 0x17
call fcn.00414a2c
lea eax, [ebp - 0x10bc]
push eax
lea edx, [ebp - 0x10f4]
lea ecx, [ebp - 0x1048]
mov byte [ebp - 4], 0x18
call fcn.004013be
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x10bc]
call fcn.00414e73
push ebx
push 1
lea ecx, [ebp - 0x10f4]
mov byte [ebp - 4], 0x1b
call fcn.00414e73
cmp dword [ebp - 0x1034], ebx
jne 0x403a18
push str.Sagiri
lea ecx, [ebp - 0x10a0]
call fcn.00414a2c
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x10d8]
mov byte [ebp - 4], 0x1c
call fcn.00414a2c
lea eax, [ebp - 0x102c]
push eax
lea ecx, [ebp - 0x10a0]
lea edx, [ebp - 0x10d8]
mov byte [ebp - 4], 0x1d
call fcn.0040127b
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x10d8]
call fcn.00414e73
push ebx
push 1
lea ecx, [ebp - 0x10a0]
mov byte [ebp - 4], 0x20
call fcn.00414e73
cmp dword [ebp - 0x1068], 0x10
mov ecx, dword [ebp - 0x107c]
jae 0x4039d9
lea ecx, [ebp - 0x107c]
cmp dword [ebp - 0x1014], 0x10
mov eax, dword [ebp - 0x1028]
jae 0x4039ee
lea eax, [ebp - 0x1028]
push ecx
push eax
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x1048]
call fcn.00414a0f
push ebx
push 1
lea ecx, [ebp - 0x102c]
call fcn.00414e73
push ebx
push 1
lea ecx, [ebp - 0x1048]
mov byte [ebp - 4], 0x14
call fcn.00414e73
cmp dword [ebp - 0x1068], 0x10
mov eax, dword [ebp - 0x107c]
jae 0x403a3f
lea eax, [ebp - 0x107c]
push eax
push 0x1000
lea eax, [ebp - 0x1010]
push eax
push 0x468bc4
mov edi, str.ExecutionKey
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
test eax, eax
je 0x403b9a
push str.Sagiri
lea ecx, [ebp - 0x10d8]
call fcn.00414a2c
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x10a0]
mov byte [ebp - 4], 0x21
call fcn.00414a2c
lea eax, [ebp - 0x10a0]
push eax
lea edx, [ebp - 0x10d8]
lea ecx, [ebp - 0x1048]
mov byte [ebp - 4], 0x22
call fcn.004013be
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x10a0]
call fcn.00414e73
push ebx
push 1
lea ecx, [ebp - 0x10d8]
mov byte [ebp - 4], 0x25
call fcn.00414e73
cmp dword [ebp - 0x1034], ebx
jne 0x403b8c
push str.Sagiri
lea ecx, [ebp - 0x10bc]
call fcn.00414a2c
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x10f4]
mov byte [ebp - 4], 0x26
call fcn.00414a2c
lea eax, [ebp - 0x102c]
push eax
lea ecx, [ebp - 0x10bc]
lea edx, [ebp - 0x10f4]
mov byte [ebp - 4], 0x27
call fcn.0040127b
pop ecx
push ebx
push 1
lea ecx, [ebp - 0x10f4]
call fcn.00414e73
push ebx
push 1
lea ecx, [ebp - 0x10bc]
mov byte [ebp - 4], 0x2a
call fcn.00414e73
cmp dword [ebp - 0x1068], 0x10
mov ecx, dword [ebp - 0x107c]
jae 0x403b4d
lea ecx, [ebp - 0x107c]
cmp dword [ebp - 0x1014], 0x10
mov eax, dword [ebp - 0x1028]
jae 0x403b62
lea eax, [ebp - 0x1028]
push ecx
push eax
push edi
push esi
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea eax, [ebp - 0x1010]
push eax
lea ecx, [ebp - 0x1048]
call fcn.00414a0f
push ebx
push 1
lea ecx, [ebp - 0x102c]
call fcn.00414e73
push ebx
push 1
lea ecx, [ebp - 0x1048]
call fcn.00414e73
push ebx
push 1
lea ecx, [ebp - 0x1080]
call fcn.00414e73
push ebx
push 1
lea ecx, [ebp - 0x1064]
call fcn.00414e73
or dword [ebp - 4], 0xffffffff
lea eax, [ebp - 0x1180]
call fcn.00403bdf
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043c781
leave
ret