Function at 0x401590
Capabilities:
Create directory

Disassembly:
sub esp, 0x610
lea edx, [esp + 0x200]
lea ecx, [esp + 0x408]
push str.config.ini
call fcn.0040b830
add esp, 4
lea eax, [esp + 0x200]
push 0
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x4015cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor eax, eax
nop dword [eax]
movzx ecx, word [esp + eax + 0x408]
lea eax, [eax + 2]
mov word [eax + 0x43390e], cx
test cx, cx
jne 0x4015d0
push esi
push edi
push dword [0x433b20]
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
mov edi, dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea eax, [esp + 0x14]
add esp, 0xc
push 0x433910
push eax
push 0x42dfa8
push str.Video
call edi
push dword [0x433b24]
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push 0x42dfc4
push str.Video
call edi
push dword [0x433b28]
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.Mode
push str.Video
call edi
imul eax, dword [0x433b24], 0x1158
imul esi, dword [0x433b20], 0x26f4
add esi, eax
mov eax, dword [0x433b28]
lea ecx, [eax*8]
sub ecx, eax
mov edx, dword [esi + ecx*4 + 0x437830]
mov eax, dword [esi + ecx*4 + 0x437834]
push edx
mov dword [0x433b34], eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
mov dword [0x433b30], edx
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.Width
push str.Video
call edi
push dword [0x433b34]
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.Height
push str.Video
call edi
push dword [0x433b2c]
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.RefreshRate
push str.Video
call edi
push dword [0x433b60]
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.Format
push str.Video
call edi
push dword [0x433f6c]
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.VendorID
push str.Video
call edi
push dword [0x433f70]
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.DeviceID
push str.Video
call edi
movzx eax, byte [0x433b38]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.KeepAspect
push str.Video
call edi
movzx eax, byte [0x433f99]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.HardwareVertexShader
push str.Video
call edi
movzx eax, byte [0x433f9a]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.WindowMode
push str.Video
call edi
movzx eax, byte [0x433f9d]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.UseMipmap
push str.Video
call edi
movzx eax, byte [0x433f9b]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.WaitVSync
push str.Video
call edi
movzx eax, byte [0x433f9c]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.LowTexture
push str.Video
call edi
movzx eax, byte [0x433f90]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.TextureFilter
push str.Video
call edi
movzx eax, byte [0x433f91]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.FpsMode
push str.Video
call edi
movzx eax, byte [0x433f98]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.FullAntiAlias
push str.Video
call edi
movzx eax, byte [0x433f9e]
push eax
push 0x42df78
lea eax, [esp + 0x10]
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.LowEffect
push str.Video
call edi
movzx eax, byte [0x433f9f]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.ShadowQuality
push str.Video
call edi
movzx eax, byte [0x433fa0]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.HighResoText
push str.Video
call edi
movzx eax, byte [0x433fa1]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.ForceTextReso
push str.Video
call edi
movzx eax, byte [0x433fa2]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.HighResoAssets
push str.Video
call edi
movzx eax, byte [0x433fac]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.BoostFont
push str.Video
call edi
push dword [0x433fa4]
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.MinimapMode
push str.Video
call edi
movzx eax, byte [0x433fa8]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.StatusMode
push str.Video
call edi
movzx eax, byte [0x433fa9]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.Menu
push str.Video
call edi
movzx eax, byte [0x433faa]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.LogoPlayOff
push str.Video
call edi
movzx eax, byte [0x433fab]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.OpeningPlayOff
push str.Video
call edi
movzx eax, byte [0x433fad]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.UseNewOrbmentLine
push str.Video
call edi
movzx eax, byte [0x433fae]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.UseNewOrbmentLineStyle
push str.Video
call edi
movzx eax, byte [0x433fb2]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.BgmOff
push str.Sound
call edi
movzx eax, byte [0x433fb3]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.SeOff
push str.Sound
call edi
movzx eax, byte [0x433fb0]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.BgmVolume
push str.Sound
call edi
movzx eax, byte [0x433fb1]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.SeVolume
push str.Sound
call edi
movzx eax, byte [0x433fb6]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.NotUseDirectSound
push str.Sound
call edi
movzx eax, byte [0x433fb7]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.NotUseDirectSound3d
push str.Sound
call edi
movzx eax, byte [0x433fb4]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.BtVoiceOff
push str.Sound
call edi
movzx eax, byte [0x433fb5]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.BtVoiceLang
push str.Sound
call edi
movzx eax, byte [0x433fb8]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.SoftwareSoundBuffer
push str.Sound
call edi
movzx eax, byte [0x433fbb]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.NoBeeping
push str.Sound
call edi
movzx eax, byte [0x433fbc]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.BgmPack
push str.Sound
call edi
movzx eax, byte [0x433fc0]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.Camera45Deg
push str.Control
call edi
movzx eax, byte [0x433fc3]
push eax
push 0x42df78
lea eax, [esp + 0x10]
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.UseGamaPad
push str.Control
call edi
movzx eax, byte [0x433fc2]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.KeyboardUseDI
push str.Control
call edi
movzx eax, byte [0x433fc1]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.MouseUseDI
push str.Control
call edi
movzx eax, byte [0x433fc4]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.DefaultRun
push str.Control
call edi
movzx eax, byte [0x433fc5]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.ChrTrans
push str.Control
call edi
movzx eax, byte [0x433fc6]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push 0x42e44c
push str.Control
call edi
movzx eax, byte [0x433fc7]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
push 0x433910
lea eax, [esp + 0xc]
push eax
push str.RightCamera
push str.Control
call edi
movzx eax, byte [0x433fc8]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.InvertCamera
push str.Control
call edi
push dword [0x433fd0]
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.LastAccessFile
push str.Control
call edi
push dword [0x433fcc]
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.ButtonMode
push str.Control
call edi
push 0x11
push 0x433fd4
mov edx, str.Keyboard
call fcn.00401350
push 0xc
push 0x433fe7
mov edx, str.GamePad
call fcn.00401350
movzx eax, byte [0x433fe5]
push eax
lea eax, [esp + 0x1c]
push 0x42df78
push eax
call fcn.00401290
add esp, 0x1c
lea eax, [esp + 8]
push 0x433910
push eax
push str.PadDeviceNo
push str.Control
call edi
movzx eax, byte [0x433fe6]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.PadSensitivity
push str.Control
call edi
push 2
push 0x433ff6
mov edx, str.Mouse
call fcn.00401350
movzx eax, byte [0x433ff3]
push eax
lea eax, [esp + 0x14]
push 0x42df78
push eax
call fcn.00401290
add esp, 0x14
lea eax, [esp + 8]
push 0x433910
push eax
push str.UseWheel
push str.Control
call edi
movzx eax, byte [0x433ff4]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.WheelReverse
push str.Control
call edi
movzx eax, byte [0x433ff5]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.RetryOffset
push str.Control
call edi
movzx eax, byte [0x433ff8]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.TurboLvField
push str.Control
call edi
movzx eax, byte [0x433ff9]
push eax
lea eax, [esp + 0xc]
push 0x42df78
push eax
call fcn.00401290
add esp, 0xc
lea eax, [esp + 8]
push 0x433910
push eax
push str.TurboLvBattle
push str.Control
call edi
pop edi
mov al, 1
pop esi
add esp, 0x610
ret