Function at 0x420eb0
Capabilities:
Get common file path
Get startup folder

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x432e0e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1cc
push ebx
push esi
push edi
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x24]
call fcn.00430110
mov dword [ebp - 4], 0
push 0
push 0x40
push str..dat
lea eax, [ebp - 0x140]
push eax
call fcn.004207a0
add esp, 4
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x164]
mov dword [ebp - 0x168], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x168]
push edx
push 0x435bd4
push 0x43f5a8
lea eax, [ebp - 0x144]
push eax
call sub.MFC42.DLL_operator
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x170], ecx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x170]
push edx
lea eax, [ebp - 0x148]
push eax
call sub.MFC42.DLL_operator_2
mov dword [ebp - 0x174], eax
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x178], ecx
mov byte [ebp - 4], 3
mov edx, dword [ebp - 0x178]
push edx
lea eax, [ebp - 0x14c]
push eax
call sub.MFC42.DLL_operator
mov dword [ebp - 0x17c], eax
mov ecx, dword [ebp - 0x17c]
mov dword [ebp - 0x180], ecx
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x180]
call fcn.00408e10
push eax
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::Open
neg eax
sbb eax, eax
neg eax
mov byte [ebp - 0x13c], al
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x14c]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x148]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x144]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x140]
call sub.MFC42.DLL_CString::CString
mov edx, dword [ebp - 0x13c]
and edx, 0xff
test edx, edx
je 0x421071
lea ecx, [ebp - 0x28]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::GetLength
test eax, eax
jbe 0x42105d
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::GetLength
push eax
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::GetLength
push eax
lea ecx, [ebp - 0x28]
call sub.MFC42.DLL_CString::GetBufferSetLength
push eax
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::Read
lea ecx, [ebp - 0x28]
call fcn.00408e10
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::Close
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x28]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 0x12c], 0
mov ecx, 0x40
xor eax, eax
lea edi, [ebp - 0x12b]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push 0x104
push 0
lea eax, [ebp - 0x12c]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0
push 5
lea ecx, [ebp - 0x12c]
push ecx
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
lea edx, [ebp - 0x12c]
push edx
lea ecx, [ebp - 0x130]
call fcn.004300a4
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x130]
call sub.MFC42.DLL_CString::TrimLeft
push 0x435bd4
lea ecx, [ebp - 0x130]
call sub.MFC42.DLL_CString::TrimLeft_1
push str..dat
lea eax, [ebp - 0x150]
push eax
call fcn.004207a0
add esp, 4
mov dword [ebp - 0x184], eax
mov ecx, dword [ebp - 0x184]
mov dword [ebp - 0x188], ecx
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x188]
push edx
push 0x435bd4
lea eax, [ebp - 0x154]
push eax
call sub.MFC42.DLL_operator_1
mov dword [ebp - 0x18c], eax
mov ecx, dword [ebp - 0x18c]
mov dword [ebp - 0x190], ecx
mov byte [ebp - 4], 8
mov edx, dword [ebp - 0x190]
push edx
lea eax, [ebp - 0x158]
push eax
call sub.MFC42.DLL_operator
mov dword [ebp - 0x194], eax
mov ecx, dword [ebp - 0x194]
mov dword [ebp - 0x198], ecx
mov byte [ebp - 4], 9
mov edx, dword [ebp - 0x198]
push edx
lea ecx, [ebp - 0x130]
call fcn.00430092
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x158]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 7
lea ecx, [ebp - 0x154]
call sub.MFC42.DLL_CString::CString
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x150]
call sub.MFC42.DLL_CString::CString
push 0
push 0x40
lea ecx, [ebp - 0x130]
call fcn.00408e10
push eax
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::Open
test eax, eax
je 0x421230
lea ecx, [ebp - 0x134]
call sub.MFC42.DLL_CString::CString_1
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::GetLength
test eax, eax
jbe 0x421219
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::GetLength
push eax
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::GetLength
push eax
lea ecx, [ebp - 0x134]
call sub.MFC42.DLL_CString::GetBufferSetLength
push eax
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::Read
lea ecx, [ebp - 0x134]
call fcn.00408e10
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::Close
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x134]
call sub.MFC42.DLL_CString::CString
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x10]
jle 0x42123e
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x10], ecx
call fcn.00420640
mov dword [ebp - 0x138], eax
mov edx, dword [ebp - 0x138]
cmp edx, dword [ebp - 0x10]
jle 0x42125d
mov eax, dword [ebp - 0x138]
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
mov dword [0x601444], ecx
cmp dword [0x601444], 1
jle 0x42129f
mov dword [ebp - 0x15c], 0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x130]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::CFile
mov eax, dword [ebp - 0x15c]
jmp 0x4212db
push 0
push 0
push 0x43759c
call sub.MFC42.DLL_AfxMessageBox
mov dword [ebp - 0x160], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x130]
call sub.MFC42.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x24]
call sub.MFC42.DLL_CFile::CFile
mov eax, dword [ebp - 0x160]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret