Function at 0x405170
Capabilities:
Create directory
Get common file path
Get file attributes
Get graphical window text
Read .ini file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40fcac
mov eax, dword fs:[0]
push eax
sub esp, 0x310
mov eax, dword [0x417014]
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
mov edi, ecx
mov dword [ebp - 0x314], edi
push 0x100
lea eax, [ebp - 0x310]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x310]
push 0
push 0
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea eax, [ebp - 0x310]
push eax
push str._sdl.ini
push 0x4188d8
call fcn.0040c450
lea eax, [ebp - 0x310]
push eax
push 0x411e00
push 0x4180d8
call fcn.0040c450
lea eax, [ebp - 0x310]
push eax
push 0x411e10
push 0x417cd8
call fcn.0040c450
add esp, 0x24
push 0x4180d8
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0x10
je 0x405231
push 0
push 0x4180d8
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x318]
push 0x4188d8
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__2]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push dword [eax]
lea eax, [ebp - 0x210]
push 0x100
push eax
push 0x411e20
push 0x411e28
push 0x411e34
call esi
lea ecx, [ebp - 0x318]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov ebx, dword [sym.imp.mfc140u.dll_CWnd::SetWindowTextW]
lea eax, [ebp - 0x210]
push eax
lea ecx, [edi + 0x2e8]
call ebx
push 0x100
lea eax, [ebp - 0x210]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x318]
push 0x4188d8
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__2]
push dword [eax]
lea eax, [ebp - 0x210]
push 0x100
push eax
push str.20000
push 0x411e4c
push 0x411e34
call esi
lea ecx, [ebp - 0x318]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea eax, [ebp - 0x210]
push eax
lea ecx, [edi + 0x4e8]
call ebx
push 0x100
lea eax, [ebp - 0x210]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x318]
push 0x4188d8
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__2]
push dword [eax]
lea eax, [ebp - 0x210]
push 0x100
push eax
push 0x411e58
push 0x411e60
push 0x411e34
call esi
lea ecx, [ebp - 0x318]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea eax, [ebp - 0x210]
push eax
lea ecx, [edi + 0x9f8]
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push 0x4188d8
push 0
push 0x411e70
push 0x411e7c
call edi
push 0
push eax
mov eax, dword [ebp - 0x314]
push 0xf1
push dword [eax + 0xe20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x314]
push 0
push 0
push 0xf0
push dword [eax + 0xe20]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x4188d8
push 0
push 0x411e88
push 0x411e7c
mov dword [0x419240], eax
call edi
push 0
push eax
mov eax, dword [ebp - 0x314]
push 0xf1
push dword [eax + 0xea0]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x314]
push 0
push 0
push 0xf0
push dword [eax + 0xea0]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x4188d8
push 0
push 0x411e94
push 0x411e7c
mov dword [0x41923c], eax
call edi
push 0
push eax
mov eax, dword [ebp - 0x314]
push 0xf1
push dword [eax + 0xf20]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x314]
push 0
push 0
push 0xf0
push dword [eax + 0xf20]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x4188d8
push 0
push 0x411ea0
push 0x411e7c
mov dword [0x419238], eax
call edi
push 0
push eax
mov eax, dword [ebp - 0x314]
push 0xf1
push dword [eax + 0xfa0]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x4188d8
push 0
push 0x411ea8
push 0x411e7c
call edi
push 0
push eax
mov eax, dword [ebp - 0x314]
push 0xf1
push dword [eax + 0x1020]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x4188d8
push 0
push 0x411eb4
push 0x411e7c
call edi
push 0
push eax
mov eax, dword [ebp - 0x314]
push 0xf1
push dword [eax + 0x10a0]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x4188d8
push 0
push 0x411ebc
push 0x411e7c
call edi
push 0
push eax
mov eax, dword [ebp - 0x314]
push 0xf1
push dword [eax + 0x1120]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x314]
push 0
push 0
push 0xf0
push dword [eax + 0x1120]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x4188d8
push 0
push 0x411ec8
push 0x411e7c
mov dword [0x419234], eax
call edi
push 0
push eax
mov eax, dword [ebp - 0x314]
push 0xf1
push dword [eax + 0x11a0]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x314]
push 0
push 0
push 0xf0
push dword [eax + 0x11a0]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x4188d8
push 0
push 0x411ed8
push 0x411e7c
call edi
push 0
push eax
mov eax, dword [ebp - 0x314]
push 0xf1
push dword [eax + 0x13a0]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x4188d8
push 0
push 0x411ee0
push 0x411e7c
call edi
mov edi, dword [ebp - 0x314]
push 0
push eax
push 0xf1
push dword [edi + 0x1420]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0xf0
push dword [edi + 0x1420]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x100
mov dword [0x419230], eax
lea eax, [ebp - 0x210]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x318]
push 0x4188d8
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__2]
push dword [eax]
lea eax, [ebp - 0x210]
push 0x100
push eax
push 0x412b60
push 0x411eec
push 0x411e34
call esi
lea ecx, [ebp - 0x318]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea eax, [ebp - 0x210]
push eax
lea ecx, [edi + 0x1480]
call ebx
lea eax, [ebp - 0x210]
push eax
lea ecx, [ebp - 0x318]
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__5]
push 0
push 0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x318]
mov eax, dword [ebp - 0x318]
push 0
push 0
push dword [eax - 0xc]
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
mov edi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push eax
push 0
push 0
call edi
mov ecx, dword [ebp - 0x318]
mov esi, eax
push 0
push 0
push esi
push 0x418dfc
push dword [ecx - 0xc]
lea ecx, [ebp - 0x318]
call dword [sym.imp.mfc140u.dll_ATL::CSimpleStringT_wchar_t_1_::GetBuffer]
push eax
push 0
push 0
call edi
lea ecx, [ebp - 0x318]
mov byte [esi + 0x418dfc], 0
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push 0x4188d8
push 0
push 0x411ef8
push 0x411e7c
call esi
mov edi, dword [ebp - 0x314]
push 0
push eax
push 0xf1
push dword [edi + 0x1320]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x100
lea eax, [ebp - 0x210]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea ecx, [ebp - 0x31c]
push 0x4188d8
call dword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__2]
push dword [eax]
lea eax, [ebp - 0x210]
push 0x100
push eax
push 0x411f00
push 0x411f04
push 0x411e34
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea ecx, [ebp - 0x31c]
call dword [sym.imp.mfc140u.dll_Ordinal_1045]
lea eax, [ebp - 0x210]
push eax
lea ecx, [edi + 0x1200]
call ebx
push 0x4188d8
push 0
push 0x411f0c
push 0x411e7c
call esi
push 0
push eax
push 0xf1
push dword [edi + 0x208]
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
call ebx
push 0x4188d8
push 0
push 0x411f18
push 0x411e7c
call esi
push 0
push eax
push 0xf1
push dword [edi + 0x488]
call ebx
push 0x4188d8
push 0
push 0x411f24
push 0x411e7c
call esi
push 0
push eax
push 0xf1
push dword [edi + 0x408]
call ebx
push 0x4188d8
push 0
push 0x411f2c
push 0x411e7c
call esi
push 0
push eax
push 0xf1
push dword [edi + 0x288]
call ebx
push 0x4188d8
push 0
push 0x411f38
push 0x411e7c
call esi
push 0
push eax
push 0xf1
push dword [edi + 0x688]
call ebx
push 0x4188d8
push 0
push 0x411f44
push 0x411e7c
call esi
push 0
push eax
push 0xf1
push dword [edi + 0xb18]
call ebx
push 0
push 1
push 0xf1
push dword [edi + 0x608]
call ebx
push 0x4188d8
push 0x411f4c
push 0x411f50
push 0x411e7c
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
push 0x4188d8
push 1
push 0x411f54
push 0x411e7c
call esi
push 0
push eax
push 0xf1
push dword [edi + 0x918]
call ebx
push 0x4188d8
push 0
push 0x411f60
push 0x411e7c
call esi
push 0
push eax
push 0xf1
push dword [edi + 0xa98]
call ebx
push 0x4188d8
push 0
push 0x411f6c
push 0x411e7c
call esi
push 0
push eax
push 0xf1
push dword [edi + 0xb98]
call ebx
push 0x4188d8
push 0
push 0x411f78
push 0x411e7c
call esi
push 0
push eax
push 0xf1
push dword [edi + 0xc18]
call ebx
push 0x4188d8
push 0
push 0x411f80
push 0x411e7c
call esi
push 0
push eax
push 0xf1
push dword [edi + 0xd20]
call ebx
push 0
push 0
push 0xf0
push dword [edi + 0xd20]
call ebx
push 0x4188d8
push 0
push 0x411f88
push 0x411e7c
mov dword [0x417bc4], eax
call esi
push 0
push eax
push 0xf1
push dword [edi + 0xda0]
call ebx
push 0
push 0
push 0xf0
push dword [edi + 0xda0]
call ebx
push 0
push 0
push 0xf0
push dword [edi + 0xb98]
call ebx
push 0
push 0
push 0xf0
push dword [edi + 0x918]
mov dword [0x419244], eax
call ebx
push 0x4188d8
neg eax
push 0x12c
sbb eax, eax
push 0x411f94
add eax, 2
push 0x411e7c
mov dword [0x41706c], eax
call esi
mov dword [0x4175d4], eax
cmp eax, 0x12c
jne 0x4059c3
push 0
push 1
push 0xf1
push dword [edi + 0x818]
call ebx
mov eax, dword [0x4175d4]
cmp eax, 0x64
jne 0x4059de
push 0
push 1
push 0xf1
push dword [edi + 0x798]
call ebx
mov eax, dword [0x4175d4]
cmp eax, 0xa
jne 0x4059f4
push 0
push 1
push 0xf1
push dword [edi + 0x898]
call ebx
push 2
push 2
push 0x20
push 0x10
lea ecx, [edi + 0xdc]
push 0x10
call dword [sym.imp.mfc140u.dll_CImageList::Create]
call dword [sym.imp.mfc140u.dll_AfxGetModuleState]
mov ebx, dword [sym.imp.mfc140u.dll_AfxFindResourceHandle]
push 0x8b
push 0xe
push 0x8b
call ebx
mov edi, dword [sym.imp.USER32.dll_LoadIconW]
push eax
call edi
mov esi, dword [sym.imp.COMCTL32.dll_ImageList_ReplaceIcon]
push eax
mov eax, dword [ebp - 0x314]
push 0xffffffffffffffff
push dword [eax + 0xe0]
call esi
call dword [sym.imp.mfc140u.dll_AfxGetModuleState]
push 0x89
push 0xe
push 0x89
call ebx
push eax
call edi
mov ebx, dword [ebp - 0x314]
push eax
push 0xffffffffffffffff
push dword [ebx + 0xe0]
call esi
lea eax, [ebx + 0xdc]
test eax, eax
je 0x405a79
mov eax, dword [eax + 4]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push eax
push 1
push 0x1003
push dword [ebx + 0x108]
call esi
push eax
call dword [sym.imp.mfc140u.dll_CImageList::FromHandle]
push 0
push 0
push 0x1037
push dword [ebx + 0x108]
call esi
or eax, 0x21
push eax
push 0
push 0x1036
push dword [ebx + 0x108]
call esi
mov esi, dword [sym.imp.mfc140u.dll_CListCtrl::InsertColumn]
lea edi, [ebx + 0xe8]
push 0xffffffffffffffff
push 0x28
push 2
push 0x411fa0
push 0
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x50
push 2
push 0x411fa8
push 1
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x50
push 2
push 0x411fb0
push 2
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x32
push 2
push str.:S_rg
push 3
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x32
push 2
push 0x411fc0
push 4
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0xc8
push 2
push 0x411fc8
push 5
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x50
push 2
push 0x411fd0
push 6
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x32
push 2
push 0x411fd8
push 7
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x32
push 2
push str._kpe
push 8
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x50
push 2
push 0x411fe8
push 9
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x3c
push 2
push 0x411ff0
push 0xa
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x50
push 2
push 0x411ff8
push 0xb
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0
push 2
push 0x412000
push 0xc
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0x96
push 2
push 0x412008
push 0xd
mov ecx, edi
call esi
push 0xffffffffffffffff
push 0
push 2
push 0x412010
push 0xe
mov ecx, edi
call esi
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.0040e8e5
mov esp, ebp
pop ebp
ret