Function at 0x420d90
Capabilities:
Check if file exists
Create directory
Get common file path
Get file attributes
Read .ini file

Disassembly:
mov rax, rsp
sub rsp, 0x8c8
mov qword [rsp + 0xa8], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x004583d0]
mov qword [rsp + 0x8b8], rax
lea rdx, [0x0045df30]
lea rcx, [rsp + 0x68]
call sub.MFC42u.dll_CControlBar::CControlBar
nop
mov rax, qword [0x0045df30]
cmp dword [rax - 8], 3
jge 0x420e3e
lea rdx, str.Ini__
lea rcx, [rsp + 0x78]
call sub.MFC42u.dll_CCtrlView::CCtrlView
mov rbx, rax
mov qword [rsp + 0x88], rax
lea rdx, str.string
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CCtrlView::CCtrlView
mov rdi, qword [rax]
mov rsi, qword [rbx]
call qword [sym.imp.USER32.dll_GetActiveWindow]
mov rcx, rax
xor r9d, r9d
mov r8, rdi
mov rdx, rsi
call qword [sym.imp.USER32.dll_MessageBoxW]
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
mov rcx, rbx
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
mov dword [rsp + 0xb0], 0
xor edx, edx
mov r8d, 0x7fc
lea rcx, [rsp + 0xb4]
call sub.msvcrt.dll_memset
lea rdx, [rsp + 0xb0]
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x50]
call sub.MFC42u.dll_CDaoException::CDaoException
nop
lea rcx, [rsp + 0x40]
call fcn.00420b30
nop
lea rdx, [0x00433fd0]
lea rcx, [rsp + 0x30]
call sub.MFC42u.dll_CCtrlView::CCtrlView
nop
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x50]
call sub.MFC42u.dll_Ordinal_1284
nop
lea rcx, [rsp + 0x30]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
lea rdx, [0x00433fd0]
lea rcx, [rsp + 0x30]
call sub.MFC42u.dll_CCtrlView::CCtrlView
nop
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call sub.MFC42u.dll_Ordinal_1284
nop
lea rcx, [rsp + 0x30]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
lea r8, [0x00434ec8]
lea rdx, [0x004362f0]
lea rcx, [rsp + 0x50]
call sub.MFC42u.dll_COleControl::SetFont
lea r8, [0x00434ec8]
lea rdx, [0x004362f0]
lea rcx, [rsp + 0x40]
call sub.MFC42u.dll_COleControl::SetFont
lea rcx, [rsp + 0x50]
call sub.MFC42u.dll_CWnd::OnDragList
lea rcx, [rsp + 0x40]
call sub.MFC42u.dll_CWnd::OnDragList
lea rdx, str..ini
lea rcx, [rsp + 0x80]
call sub.MFC42u.dll_CCtrlView::CCtrlView
nop
lea r8, [rsp + 0x68]
lea rdx, [0x00434ec8]
lea rcx, [rsp + 0xa0]
call sub.MFC42u.dll_AfxThrowUserException
nop
lea r8, [rsp + 0x80]
mov rdx, rax
lea rcx, [rsp + 0x98]
call sub.MFC42u.dll_AfxThrowNotSupportedException
mov rdi, rax
lea rcx, [rsp + 0x90]
call fcn.00420b30
nop
mov rdx, rdi
mov rcx, rax
call sub.MFC42u.dll_Ordinal_1284
mov rdx, rax
lea rcx, [rsp + 0x58]
call sub.MFC42u.dll_CControlBar::CControlBar
nop
lea rcx, [rsp + 0x90]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x98]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0xa0]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x80]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
lea rdx, [rsp + 0x58]
lea rcx, [0x0045df38]
call sub.MFC42u.dll_AfxDaoGetEngine
lea rcx, [rsp + 0x48]
call fcn.00420ca0
nop
lea rcx, [rsp + 0x48]
call sub.MFC42u.dll_CWnd::OnDragList
lea rdx, [0x00438bbc]
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CCtrlView::CCtrlView
nop
mov rdx, qword [rax]
lea rcx, [rsp + 0x48]
call sub.MFC42u.dll_CRichEditView::FindTextW
test eax, eax
setg dil
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
mov edx, dword [0x0045dd1c]
mov ebx, 1
test dil, dil
cmovne edx, ebx
mov dword [0x0045dd1c], edx
lea rdx, str._portable
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CCtrlView::CCtrlView
nop
mov rdx, qword [rax]
lea rcx, [rsp + 0x48]
call sub.MFC42u.dll_CRichEditView::FindTextW
test eax, eax
setg dil
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
mov edx, dword [0x0045dd1c]
test dil, dil
cmovne edx, ebx
mov dword [0x0045dd1c], edx
lea rdx, str._port
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CCtrlView::CCtrlView
nop
mov rdx, qword [rax]
lea rcx, [rsp + 0x48]
call sub.MFC42u.dll_CRichEditView::FindTextW
test eax, eax
setg dil
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
test dil, dil
je 0x4210bc
mov dword [0x0045dd1c], ebx
jmp 0x4210c5
cmp dword [0x0045dd1c], 0
je 0x4210e7
mov r9, qword [0x0045df38]
lea r8, [0x00438ba0]
lea rdx, str.TestIni
lea rcx, str.Program
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
mov rdx, qword [rsp + 0x50]
lea rcx, [rsp + 0x40]
call sub.MFC42u.dll_CRichEditView::FindTextW
test eax, eax
je 0x421231
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x78]
call sub.MFC42u.dll_CControlBar::CControlBar
mov rdi, rax
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x42114e
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x421141
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 3
je 0x421141
mov rcx, rdi
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
jmp 0x421231
mov rcx, rdi
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
jmp 0x421231
test al, 0x10
je 0x42115f
mov rcx, rdi
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
jmp 0x421231
mov rcx, rdi
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
lea rdx, [0x00438b80]
lea rcx, [rsp + 0x30]
call sub.MFC42u.dll_CDaoException::CDaoException
nop
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.0042e2a2
mov r9, qword [0x0045df38]
mov r8, rax
lea rdx, str.TestIni
lea rcx, str.Program
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea rdx, [0x0043314b]
lea rcx, [rsp + 0x30]
call sub.MFC42u.dll_AfxDaoTerm
mov edx, reloc.WS2_32.dll_WSAGetLastError
lea rcx, [rsp + 0x30]
call fcn.0042e2a2
mov rcx, qword [0x0045df38]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], 0x400
mov r9, rax
mov r8, rax
lea rdx, str.TestIni
lea rcx, str.Program
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edx, 0xffffffff
lea rcx, [rsp + 0x30]
call fcn.0042e2ae
lea rdi, [0x00438b80]
mov rsi, qword [rsp + 0x30]
mov ecx, 5
repe cmpsw word [rsi], word [rdi]
je 0x421222
lea rcx, [rsp + 0x30]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
jmp 0x421231
lea rcx, [rsp + 0x30]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
jmp 0x421392
lea rcx, [rsp + 0x30]
call sub.MFC42u.dll_CDaoIndexFieldInfo::CDaoIndexFieldInfo
nop
mov edx, 0x400
lea rcx, [rsp + 0x30]
call fcn.0042e2a2
mov rdx, rax
xor r9d, r9d
xor ecx, ecx
lea r8d, [r9 + 0x1a]
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov edx, 0xffffffff
lea rcx, [rsp + 0x30]
call fcn.0042e2ae
lea rdx, [0x00433fd0]
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CCtrlView::CCtrlView
nop
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x70]
call sub.MFC42u.dll_AfxThrowNotSupportedException
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call sub.MFC42u.dll_Ordinal_1284
nop
lea rcx, [rsp + 0x70]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
xor edx, edx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rdx, str..ini
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CCtrlView::CCtrlView
nop
lea r8, [0x00434ec8]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x78]
call sub.MFC42u.dll_AfxThrowOleException
nop
lea r8, [rsp + 0x68]
mov rdx, rax
lea rcx, [rsp + 0x88]
call sub.MFC42u.dll_AfxThrowNotSupportedException
nop
lea r8, [rsp + 0x38]
mov rdx, rax
lea rcx, [rsp + 0x70]
call sub.MFC42u.dll_AfxThrowNotSupportedException
nop
mov rdx, rax
lea rcx, [rsp + 0x58]
call sub.MFC42u.dll_AfxDaoGetEngine
nop
lea rcx, [rsp + 0x70]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x88]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x78]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x38]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x30]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
lea rdx, [rsp + 0x58]
lea rcx, [0x0045df38]
call sub.MFC42u.dll_AfxDaoGetEngine
lea rcx, [0x0045dd20]
call qword [sym.imp.KERNEL32.dll_lstrlenW]
cmp eax, 3
jle 0x421392
lea rdx, [0x0045dd20]
lea rcx, [0x0045df38]
call sub.MFC42u.dll_AfxDeleteObject
lea rdx, [0x00438b80]
lea rcx, [rsp + 0x60]
call sub.MFC42u.dll_CDaoException::CDaoException
nop
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.0042e2a2
mov r9, qword [0x0045df38]
mov r8, rax
lea rdx, str.TestIni
lea rcx, str.Program
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringW]
lea rdx, [0x0043314b]
lea rcx, [rsp + 0x60]
call sub.MFC42u.dll_AfxDaoTerm
mov edx, reloc.WS2_32.dll_WSAGetLastError
lea rcx, [rsp + 0x60]
call fcn.0042e2a2
mov r8, rax
mov rax, qword [0x0045df38]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0x400
mov r9, r8
lea rdx, str.TestIni
lea rcx, str.Program
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov edx, 0xffffffff
lea rcx, [rsp + 0x60]
call fcn.0042e2ae
nop
lea rcx, [rsp + 0x60]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x48]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x58]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x40]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x50]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
nop
lea rcx, [rsp + 0x68]
call sub.MFC42u.dll_CDocObjectServer::XOleDocument::AddRef
mov eax, ebx
mov rcx, qword [rsp + 0x8b8]
call fcn.0042ec20
mov rbx, qword [rsp + 0x8d8]
mov rsi, qword [rsp + 0x8e0]
mov rdi, qword [rsp + 0x8e8]
add rsp, 0x8c8
ret