Function at 0x405e90
Capabilities:
Create directory
Read .ini file

Disassembly:
mov ecx, dword [0x264d3c4]
sub esp, 0x300
push 0x100
lea eax, [esp + 0x104]
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x100]
push 0x5c
push edx
call fcn.00563b70
add esp, 8
test eax, eax
je 0x405f12
mov ecx, dword [str.inispcsx2.ini]
mov dword [eax], ecx
mov edx, dword [0x582acc]
mov dword [eax + 4], edx
mov ecx, dword [0x582ad0]
mov dword [eax + 8], ecx
mov edx, dword [0x582ad4]
push 0x582ac4
push 0x582ab4
mov dword [eax + 0xc], edx
call fcn.00563b54
add esp, 8
test eax, eax
jne 0x405f1c
push eax
push str.inis
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
or eax, 0xffffffff
add esp, 0x300
ret
push esi
push eax
call fcn.00563a14
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
add esp, 4
lea eax, [esp + 0x104]
push eax
push 0x100
lea ecx, [esp + 0xc]
push ecx
push 0
push str.Bios
push str.Interface
call esi
xor eax, eax
mov edi, edi
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263d020], cl
add eax, 1
test cl, cl
jne 0x405f50
lea edx, [esp + 0x104]
push edx
push 0x100
lea eax, [esp + 0xc]
push eax
push 0
push str.Lang
push str.Interface
call esi
xor eax, eax
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263dd20], cl
add eax, 1
test cl, cl
jne 0x405f83
lea ecx, [esp + 0x104]
push ecx
push 0x14
lea edx, [esp + 0xc]
push edx
push 0
push str.Ps2Out
push str.Interface
call esi
push 0xa
lea eax, [esp + 8]
push 0
push eax
call fcn.00563977
add esp, 0xc
lea ecx, [esp + 0x104]
push ecx
push 0x14
lea edx, [esp + 0xc]
push edx
push 0
push str.ThPriority
push str.Interface
mov dword [0x263de24], eax
call esi
push 0xa
lea eax, [esp + 8]
push 0
push eax
call fcn.00563977
add esp, 0xc
lea ecx, [esp + 0x104]
push ecx
push 0x100
lea edx, [esp + 0xc]
push edx
push 0
push str.PluginsDir
push str.Interface
mov dword [0x263de38], eax
call esi
xor eax, eax
lea esp, [esp]
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263db20], cl
add eax, 1
test cl, cl
jne 0x406020
lea eax, [esp + 0x104]
push eax
push 0x100
lea ecx, [esp + 0xc]
push ecx
push 0
push str.BiosDir
push str.Interface
call esi
xor eax, eax
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263dc20], cl
add eax, 1
test cl, cl
jne 0x406053
lea edx, [esp + 0x104]
push edx
push 0x100
lea eax, [esp + 0xc]
push eax
push 0
push str.Mcd1
push str.Interface
call esi
xor eax, eax
jmp 0x406090
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263d920], cl
add eax, 1
test cl, cl
jne 0x406090
lea ecx, [esp + 0x104]
push ecx
push 0x100
lea edx, [esp + 0xc]
push edx
push 0
push str.Mcd2
push str.Interface
call esi
xor eax, eax
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263da20], cl
add eax, 1
test cl, cl
jne 0x4060c3
lea eax, [esp + 0x104]
push eax
push 0x100
lea ecx, [esp + 0xc]
push ecx
push 0
push 0x582a5c
push str.Plugins
call esi
xor eax, eax
jmp 0x406100
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263d120], cl
add eax, 1
test cl, cl
jne 0x406100
lea edx, [esp + 0x104]
push edx
push 0x100
lea eax, [esp + 0xc]
push eax
push 0
push str.SPU2
push str.Plugins
call esi
xor eax, eax
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263d420], cl
add eax, 1
test cl, cl
jne 0x406133
lea ecx, [esp + 0x104]
push ecx
push 0x100
lea edx, [esp + 0xc]
push edx
push 0
push str.CDVD
push str.Plugins
call esi
xor eax, eax
jmp 0x406170
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263d520], cl
add eax, 1
test cl, cl
jne 0x406170
lea eax, [esp + 0x104]
push eax
push 0x100
lea ecx, [esp + 0xc]
push ecx
push 0
push str.PAD1
push str.Plugins
call esi
xor eax, eax
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263d220], cl
add eax, 1
test cl, cl
jne 0x4061a3
lea edx, [esp + 0x104]
push edx
push 0x100
lea eax, [esp + 0xc]
push eax
push 0
push str.PAD2
push str.Plugins
call esi
xor eax, eax
jmp 0x4061e0
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263d320], cl
add eax, 1
test cl, cl
jne 0x4061e0
lea ecx, [esp + 0x104]
push ecx
push 0x100
lea edx, [esp + 0xc]
push edx
push 0
push str.DEV9
push str.Plugins
call esi
xor eax, eax
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263d620], cl
add eax, 1
test cl, cl
jne 0x406213
lea eax, [esp + 0x104]
push eax
push 0x100
lea ecx, [esp + 0xc]
push ecx
push 0
push 0x582a28
push str.Plugins
call esi
xor eax, eax
jmp 0x406250
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263d720], cl
add eax, 1
test cl, cl
jne 0x406250
lea edx, [esp + 0x104]
push edx
push 0x100
lea eax, [esp + 0xc]
push eax
push 0
push 0x582a24
push str.Plugins
call esi
xor eax, eax
mov cl, byte [esp + eax + 4]
mov byte [eax + 0x263d820], cl
add eax, 1
test cl, cl
jne 0x406283
lea ecx, [esp + 0x104]
push ecx
push 0x14
lea edx, [esp + 0xc]
push edx
push 0
push str.Options
push str.Cpu_Options
call esi
push 0xa
lea eax, [esp + 8]
push 0
push eax
call fcn.00563977
add esp, 0xc
lea ecx, [esp + 0x104]
push ecx
push 0x14
lea edx, [esp + 0xc]
push edx
push 0
push str.Patch
push 0x582a00
mov dword [0x263de20], eax
call esi
push 0xa
lea eax, [esp + 8]
push 0
push eax
call fcn.00563977
add esp, 0xc
lea ecx, [esp + 0x104]
push ecx
push 0x14
lea edx, [esp + 0xc]
push edx
push 0
push str.varLog
push 0x582a00
mov dword [0x263de34], eax
call esi
push 0x10
lea eax, [esp + 8]
push 0
push eax
call fcn.00563977
push 0x263dd20
lea ecx, [esp + 0x214]
push str.LANGUAGE_s
push ecx
mov dword [0x263cffc], eax
call fcn.00563254
lea edx, [esp + 0x21c]
push edx
call sub.gnu_gettext.dll_Ordinal_5
add esp, 0x1c
xor eax, eax
pop esi
add esp, 0x300
ret