Function at 0x6ba49e
Capabilities:
Check if file exists
Get file attributes
Move file
Read .ini file

Disassembly:
jmp 0x6ba489
mov eax, 0x806955
call fcn.0072bca0
mov eax, 0x4038
call fcn.0072bd20
push ebx
push esi
mov esi, ecx
push edi
xor ebx, ebx
mov ecx, 0xfff
xor eax, eax
lea edi, [ebp - 0x4043]
mov byte [ebp - 0x4044], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [ebp - 0x28]
stosb byte es:[edi], al
call sub.MFC42.DLL_CString::CString_3
mov dword [ebp - 4], ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea eax, [ebp - 0x28]
push 0x8ab5cc
push eax
call sub.MFC42.DLL_CString::Format_1
lea eax, [ebp - 0x14]
push eax
call fcn.004023ec
add esp, 0x10
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
push ecx
push eax
lea eax, [ebp - 0x18]
push eax
call sub.MFC42.DLL_operator_4
mov edi, str.mymacro.htm
mov byte [ebp - 4], 2
push edi
push eax
lea eax, [ebp - 0x1c]
push eax
call sub.MFC42.DLL_operator_3
mov eax, dword [eax]
mov byte [ebp - 4], 3
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x24]
push eax
call fcn.004023ec
pop ecx
push edi
push eax
lea eax, [ebp - 0x10]
mov byte [ebp - 4], 4
push eax
call sub.MFC42.DLL_operator_3
push dword [ebp - 0x20]
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
lea ecx, [ebp - 0x10]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], bl
call sub.MFC42.DLL_CString::CString
lea eax, [ebp - 0x1c]
push eax
call fcn.004023ec
pop ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
push ecx
push eax
lea eax, [ebp - 0x18]
push eax
call sub.MFC42.DLL_operator_4
push edi
push eax
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 6
push eax
call sub.MFC42.DLL_operator_3
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
xor ecx, ecx
cmp eax, 0xffffffff
setne cl
mov dword [ebp - 0x24], ecx
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 5
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call sub.MFC42.DLL_CString::CString
cmp dword [ebp - 0x24], ebx
je 0x6ba648
lea ecx, [esi + 0x134]
push 5
call sub.MFC42.DLL_CWnd::ShowWindow
lea eax, [ebp - 0x1c]
push eax
call fcn.004023ec
pop ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 7
push ecx
push eax
lea eax, [ebp - 0x18]
push eax
call sub.MFC42.DLL_operator_4
push edi
push eax
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 8
push eax
call sub.MFC42.DLL_operator_3
mov eax, dword [eax]
push ebx
push ebx
push ebx
push ebx
push eax
lea ecx, [esi + 0x134]
mov byte [ebp - 4], 9
call fcn.00401afa
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 8
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 7
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call sub.MFC42.DLL_CString::CString
jmp 0x6ba657
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x401c71
call sub.MFC42.DLL_AfxBeginThread
lea edi, [esi + 0x64]
push ebx
mov ecx, edi
call sub.MFC42.DLL_CWnd::ShowWindow
push ebx
mov ecx, edi
call sub.MFC42.DLL_CWnd::EnableWindow
lea eax, [ebp - 0x10]
push eax
call fcn.004023ec
pop ecx
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xa
push ecx
push eax
lea eax, [ebp - 0x20]
push eax
call sub.MFC42.DLL_operator_4
mov edi, str.background.bmp
mov byte [ebp - 4], 0xb
push edi
push eax
lea eax, [ebp - 0x24]
push eax
call sub.MFC42.DLL_operator_3
mov eax, dword [eax]
mov byte [ebp - 4], 0xc
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x1c]
push eax
call fcn.004023ec
pop ecx
push edi
push eax
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 0xd
push eax
call sub.MFC42.DLL_operator_3
push dword [ebp - 0x14]
mov eax, dword [eax]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileA]
lea ecx, [ebp - 0x18]
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0xc
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x24]
mov byte [ebp - 4], 0xb
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 0xa
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x2c]
call sub.MFC42.DLL_CString::CString_3
lea eax, [ebp - 0x2c]
mov byte [ebp - 4], 0xe
push eax
call fcn.00401ec9
mov ecx, eax
call sub.MFC42.DLL_CWnd::GetWindowTextA
push ecx
lea eax, [ebp - 0x2c]
mov ecx, esp
mov dword [ebp - 0x14], esp
push eax
call sub.MFC42.DLL_CString::CString_4
lea eax, [ebp - 0x14]
push eax
call fcn.00766320
pop ecx
pop ecx
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString
call fcn.00401929
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push dword [eax + 0x8c]
call sub.MFC42.DLL_CString::CString_1
lea eax, [ebp - 0x14]
push eax
call fcn.00766320
pop ecx
pop ecx
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString
mov edi, dword [esi + 0x11f0]
xor eax, eax
cmp edi, ebx
mov dword [ebp - 0x10], eax
jbe 0x6ba7d4
jmp 0x6ba77a
mov eax, dword [ebp - 0x10]
cmp eax, dword [esi + 0x11f0]
jge 0x6ba797
cmp eax, ebx
jl 0x6ba797
mov ecx, dword [esi + 0x11e8]
je 0x6ba793
mov ecx, dword [ecx]
dec eax
jne 0x6ba78e
mov eax, ecx
jmp 0x6ba799
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx + 0x20]
push ecx
add eax, 0xc
mov ecx, esp
mov dword [ebp - 0x18], esp
push eax
call sub.MFC42.DLL_CString::CString_4
lea eax, [ebp - 0x14]
push eax
call fcn.00766320
pop ecx
pop ecx
lea ecx, [ebp - 0x14]
call sub.MFC42.DLL_CString::CString
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
jb 0x6ba777
or dword [esi + 0x970], 8
lea ecx, [ebp - 0x34]
call sub.MFC42.DLL_CString::CString_3
push 0xf229
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xf
call sub.MFC42.DLL_CString::LoadStringA
mov eax, dword [ebp - 0x34]
lea edi, [esi + 0x90c]
lea ecx, [esi + 0x1108]
push edi
mov dword [esi + 0x980], eax
call sub.MFC42.DLL_CPropertySheet::AddPage
push dword [esi + 0x121c]
lea eax, [ebp - 0x4044]
mov ecx, esi
push 0x4000
push eax
push 0x8ac4b4
call fcn.004029c3
push ecx
lea eax, [ebp - 0x4044]
mov ecx, esp
mov dword [ebp - 0x18], esp
push eax
call sub.MFC42.DLL_CString::CString_1
mov ecx, edi
call fcn.00402130
push dword [esi + 0x121c]
push ebx
push str.ShowFirstMacro
push str.General
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x11f0]
xor ecx, ecx
cmp eax, ebx
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x10], ecx
jbe 0x6ba91b
jmp 0x6ba87b
mov ecx, dword [ebp - 0x10]
cmp dword [ebp - 0x18], ebx
je 0x6ba889
cmp ecx, 1
jae 0x6ba91b
cmp ecx, dword [esi + 0x11f0]
jge 0x6ba8a4
cmp ecx, ebx
jl 0x6ba8a4
mov eax, dword [esi + 0x11e8]
je 0x6ba8a6
mov eax, dword [eax]
dec ecx
jne 0x6ba89d
jmp 0x6ba8a6
xor eax, eax
mov ecx, dword [eax + 8]
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [eax]
push 1
mov ecx, eax
call dword [edx + 0x20]
push 0x758
mov dword [ebp - 0x1c], eax
call sub.MFC42.DLL_operatornew
pop ecx
mov dword [ebp - 0x20], eax
cmp eax, ebx
mov byte [ebp - 4], 0x10
je 0x6ba8db
mov ecx, eax
call fcn.004023d3
mov edi, eax
jmp 0x6ba8dd
xor edi, edi
push edi
lea ecx, [esi + 0x1a0]
mov byte [ebp - 4], 0xf
call sub.MFC42.DLL_CObList::AddTail
mov ecx, dword [ebp - 0x1c]
or dword [edi + 0x64], 8
push edi
mov eax, dword [ecx + 0xc]
mov dword [edi + 0x90], ecx
lea ecx, [esi + 0x1108]
mov dword [edi + 0x74], eax
call sub.MFC42.DLL_CPropertySheet::AddPage
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
cmp eax, dword [ebp - 0x24]
jb 0x6ba878
or dword [esi + 0x220], 8
lea ecx, [ebp - 0x30]
call sub.MFC42.DLL_CString::CString_3
push 0xf227
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0x11
call sub.MFC42.DLL_CString::LoadStringA
mov eax, dword [ebp - 0x30]
lea edi, [esi + 0x1bc]
mov ecx, edi
mov dword [esi + 0x230], eax
call fcn.0040265d
mov ecx, edi
call fcn.00401ae6
push edi
lea edi, [esi + 0x1108]
mov ecx, edi
call sub.MFC42.DLL_CPropertySheet::AddPage
push 0xf
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
mov ecx, edi
call fcn.00402590
push ebx
push 0x50000000
push esi
mov ecx, edi
call sub.MFC42.DLL_CPropertySheet::Create
push ebx
push 0x10000
push ebx
mov ecx, edi
call sub.MFC42.DLL_CWnd::ModifyStyleEx
push ebx
push 0x10000
push ebx
mov ecx, edi
call sub.MFC42.DLL_CWnd::ModifyStyle
mov ecx, edi
call fcn.00401adc
cmp eax, ebx
je 0x6ba9b9
push ebx
push ebx
push 0x200
mov ecx, eax
call sub.MFC42.DLL_CWnd::ModifyStyle
mov ecx, edi
call sub.MFC42.DLL_CPropertySheet::GetPageCount
dec eax
mov dword [ebp - 0x20], eax
js 0x6ba9d8
jmp 0x6ba9cb
mov eax, dword [ebp - 0x20]
push eax
mov ecx, edi
call sub.MFC42.DLL_CPropertySheet::SetActivePage
dec dword [ebp - 0x20]
jns 0x6ba9c8
push 0x400
mov ecx, esi
call sub.MFC42.DLL_CWnd::GetDlgItem
lea ecx, [ebp - 0x44]
push ecx
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetWindowRect]
lea eax, [ebp - 0x44]
mov ecx, esi
push eax
call sub.MFC42.DLL_CWnd::ScreenToClient
mov ecx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x40]
sub ecx, eax
push 4
push ecx
add eax, 0xfffffff9
push 0x400
push eax
mov eax, dword [ebp - 0x44]
mov ecx, edi
add eax, 0xfffffff9
push eax
push ebx
call sub.MFC42.DLL_CWnd::SetWindowPos
cmp dword [0x8be7ac], ebx
je 0x6baa37
mov ecx, edi
call sub.MFC42.DLL_CPropertySheet::GetPageCount
dec eax
mov ecx, edi
push eax
call sub.MFC42.DLL_CPropertySheet::RemovePage
cmp dword [0x8be7a8], ebx
je 0x6baa53
cmp dword [ebp - 0x10], ebx
jbe 0x6baa53
push dword [ebp - 0x10]
mov ecx, edi
call sub.MFC42.DLL_CPropertySheet::RemovePage
dec dword [ebp - 0x10]
jne 0x6baa44
cmp dword [0x8be7b8], ebx
je 0x6baa69
add esi, 0x1030
mov ecx, edi
push esi
call sub.MFC42.DLL_CPropertySheet::AddPage
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xf
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x34]
mov byte [ebp - 4], 0xe
call sub.MFC42.DLL_CString::CString
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], bl
call sub.MFC42.DLL_CString::CString
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call sub.MFC42.DLL_CString::CString
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret