Function at 0x437944
Capabilities:
Delete file
Get file system object information
Move file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4537da
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x904
push esi
mov dword [ebp - 0x910], ecx
lea ecx, [ebp - 0x4d4]
call fcn.0043d7b0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::CString_2
mov byte [ebp - 4], 1
lea eax, [ebp - 0x2c4]
push eax
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::GetWindowTextW_1
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::TrimLeft
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::TrimRight_1
lea ecx, [ebp - 0x2c4]
call fcn.00402b00
push eax
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetWindowTextW
push 0x104
mov ecx, dword [ebp - 0x910]
add ecx, 0x26c
push ecx
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::GetWindowTextW
push 0
push 0
push 1
push 0
mov edx, dword [ebp - 0x910]
add edx, 0x26c
push edx
call fcn.00405866
add esp, 0x14
test eax, eax
jne 0x437ae3
push 0x104
lea eax, [ebp - 0x4d0]
push eax
push 0x3780
call fcn.00404110
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x104
lea ecx, [ebp - 0x6dc]
push ecx
push 0x3751
call fcn.00404110
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x30
lea edx, [ebp - 0x6dc]
push edx
lea eax, [ebp - 0x4d0]
push eax
mov ecx, dword [ebp - 0x910]
mov edx, dword [ecx + 0x20]
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetFocus
push 0
push 0xffffffffffffffff
push 0
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call fcn.004354a0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4d4]
call fcn.0043d7be
jmp 0x4382e7
lea eax, [ebp - 0x2c4]
push eax
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::GetWindowTextW_1
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::TrimLeft
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::TrimRight_1
lea ecx, [ebp - 0x2c4]
call fcn.00402b00
push eax
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetWindowTextW
push 0x104
mov ecx, dword [ebp - 0x910]
add ecx, 0x64
push ecx
push 0x20d6
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::GetWindowTextW
push 0
push 0
push 1
push 1
mov edx, dword [ebp - 0x910]
add edx, 0x64
push edx
call fcn.00405aa9
add esp, 0x14
test eax, eax
jne 0x437c36
push 0x104
lea eax, [ebp - 0x4d0]
push eax
push 0x377f
call fcn.00404110
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x104
lea ecx, [ebp - 0x6dc]
push ecx
push 0x3751
call fcn.00404110
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x30
lea edx, [ebp - 0x6dc]
push edx
lea eax, [ebp - 0x4d0]
push eax
mov ecx, dword [ebp - 0x910]
mov edx, dword [ecx + 0x20]
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0x20d6
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetFocus
push 0
push 0xffffffffffffffff
push 0
push 0x20d6
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call fcn.004354a0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4d4]
call fcn.0043d7be
jmp 0x4382e7
mov eax, dword [ebp - 0x910]
add eax, 0x64
push eax
lea ecx, [ebp - 0x904]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov edx, dword [ebp - 0x910]
add edx, 0x64
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
mov eax, dword [ebp - 0x910]
add eax, 0x26c
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add esi, eax
cmp esi, 0xff
jl 0x437d4f
push 0x104
lea ecx, [ebp - 0x6dc]
push ecx
push 0x3781
call fcn.00404110
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0xff
lea edx, [ebp - 0x6dc]
push edx
lea eax, [ebp - 0x4d0]
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x104
lea ecx, [ebp - 0x6dc]
push ecx
push 0x3751
call fcn.00404110
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x30
lea edx, [ebp - 0x6dc]
push edx
lea eax, [ebp - 0x4d0]
push eax
mov ecx, dword [ebp - 0x910]
mov edx, dword [ecx + 0x20]
push edx
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetFocus
push 0
push 0xffffffffffffffff
push 0
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call fcn.004354a0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4d4]
call fcn.0043d7be
jmp 0x4382e7
mov eax, dword [ebp - 0x910]
add eax, 0x64
push eax
call dword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
mov ecx, dword [ebp - 0x910]
add ecx, 0x26c
push ecx
mov edx, dword [ebp - 0x910]
add edx, 0x64
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov eax, dword [ebp - 0x910]
mov ecx, dword [eax + 0x60]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenW]
sub eax, 1
mov dword [ebp - 0x908], eax
jmp 0x437da6
mov edx, dword [ebp - 0x908]
sub edx, 1
mov dword [ebp - 0x908], edx
cmp dword [ebp - 0x908], 0
jl 0x437dcd
mov eax, dword [ebp - 0x910]
mov ecx, dword [eax + 0x60]
mov edx, dword [ebp - 0x908]
xor eax, eax
mov ax, word [ecx + edx*2]
cmp eax, 0x2e
jne 0x437dcb
jmp 0x437dcd
jmp 0x437d97
mov ecx, dword [ebp - 0x910]
mov edx, dword [ecx + 0x60]
mov eax, dword [ebp - 0x908]
lea ecx, [edx + eax*2]
push ecx
mov edx, dword [ebp - 0x910]
add edx, 0x64
push edx
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov eax, dword [ebp - 0x910]
mov ecx, dword [eax + 0x60]
push ecx
mov edx, dword [ebp - 0x910]
add edx, 0x64
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x438137
push 0x200
push 0x2b4
lea eax, [ebp - 0x2c0]
push eax
push 0
mov ecx, dword [ebp - 0x910]
add ecx, 0x64
push ecx
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
test eax, eax
je 0x43802d
push 0x104
lea edx, [ebp - 0x4d0]
push edx
push 0x3782
call fcn.00404110
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x104
lea eax, [ebp - 0x6dc]
push eax
push 0x3751
call fcn.00404110
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x34
lea ecx, [ebp - 0x6dc]
push ecx
lea edx, [ebp - 0x4d0]
push edx
mov eax, dword [ebp - 0x910]
mov ecx, dword [eax + 0x20]
push ecx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 7
jne 0x437ef6
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetFocus
push 0
push 0xffffffffffffffff
push 0
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call fcn.004354a0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4d4]
call fcn.0043d7be
jmp 0x4382e7
push 0x1e
push 0
lea edx, [ebp - 0x6fc]
push edx
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0x20a
push 0
lea eax, [ebp - 0x4d0]
push eax
call sub.MSVCRT.dll_memset
add esp, 0xc
mov ecx, dword [ebp - 0x910]
add ecx, 0x64
push ecx
lea edx, [ebp - 0x4d0]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
mov eax, dword [ebp - 0x910]
mov ecx, dword [eax + 0x20]
mov dword [ebp - 0x6fc], ecx
mov dword [ebp - 0x6f8], 3
lea edx, [ebp - 0x4d0]
mov dword [ebp - 0x6f4], edx
mov word [ebp - 0x6ec], 0x414
lea eax, [ebp - 0x6fc]
push eax
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
test eax, eax
je 0x43802d
push 0x104
lea ecx, [ebp - 0x4d0]
push ecx
push 0x3783
call fcn.00404110
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x104
lea edx, [ebp - 0x6dc]
push edx
push 0x3751
call fcn.00404110
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x30
lea eax, [ebp - 0x6dc]
push eax
lea ecx, [ebp - 0x4d0]
push ecx
mov edx, dword [ebp - 0x910]
mov eax, dword [edx + 0x20]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetFocus
push 0
push 0xffffffffffffffff
push 0
push 0x20d4
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call fcn.004354a0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4d4]
call fcn.0043d7be
jmp 0x4382e7
lea ecx, [ebp - 0x904]
push ecx
lea edx, [ebp - 0x4d0]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
lea eax, [ebp - 0x4d0]
push eax
call fcn.00405c85
add esp, 4
mov ecx, dword [ebp - 0x910]
add ecx, 0x64
push ecx
mov edx, dword [ebp - 0x910]
mov eax, dword [edx + 0x60]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x438137
push 0
push 0
lea ecx, [ebp - 0x90c]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0
push 0x1300
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push 0x104
lea edx, [ebp - 0x6dc]
push edx
push 0x3751
call fcn.00404110
push eax
call dword [sym.imp.USER32.dll_LoadStringW]
push 0x40
lea eax, [ebp - 0x6dc]
push eax
mov ecx, dword [ebp - 0x90c]
push ecx
mov edx, dword [ebp - 0x910]
mov eax, dword [edx + 0x20]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov ecx, dword [ebp - 0x90c]
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
push 0x20d6
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::SetFocus
push 0
push 0xffffffffffffffff
push 0
push 0x20d6
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call fcn.004354a0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4d4]
call fcn.0043d7be
jmp 0x4382e7
push 0x104
mov edx, dword [ebp - 0x910]
add edx, 0x474
push edx
push 0x20d0
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::GetWindowTextW
mov eax, dword [ebp - 0x910]
add eax, 0x474
push eax
mov ecx, dword [ebp - 0x910]
call fcn.004384b1
test eax, eax
je 0x43819b
mov ecx, dword [ebp - 0x910]
add ecx, 0xa8c
push ecx
mov edx, dword [ebp - 0x910]
add edx, 0x474
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x104
mov eax, dword [ebp - 0x910]
add eax, 0x67c
push eax
push 0x20d1
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::GetWindowTextW
mov ecx, dword [ebp - 0x910]
add ecx, 0x67c
push ecx
mov ecx, dword [ebp - 0x910]
call fcn.004384b1
test eax, eax
je 0x4381fe
mov edx, dword [ebp - 0x910]
add edx, 0xa8c
push edx
mov eax, dword [ebp - 0x910]
add eax, 0x67c
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x104
mov ecx, dword [ebp - 0x910]
add ecx, 0x884
push ecx
push 0x20d3
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CWnd::GetDlgItem
mov ecx, eax
call sub.MFC42u.DLL_CWnd::GetWindowTextW
mov edx, dword [ebp - 0x910]
add edx, 0x884
push edx
mov ecx, dword [ebp - 0x910]
call fcn.004384b1
test eax, eax
je 0x438262
mov eax, dword [ebp - 0x910]
add eax, 0xa8c
push eax
mov ecx, dword [ebp - 0x910]
add ecx, 0x884
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0
mov edx, dword [ebp - 0x910]
add edx, 0xc98
push edx
push 4
push str.SetRecDirAlwaysDefault
push 2
push 0x80000001
lea ecx, [ebp - 0x4d4]
call fcn.0043de11
mov eax, dword [ebp - 0x910]
cmp dword [eax + 0xc98], 0
je 0x4382bb
push 0
lea ecx, [ebp - 0x904]
push ecx
push 1
push str.SaveLocation
push 2
push 0x80000001
lea ecx, [ebp - 0x4d4]
call fcn.0043de11
mov ecx, dword [ebp - 0x910]
call sub.MFC42u.DLL_CDialog::OnOK
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c4]
call sub.MFC42u.DLL_CString::CString
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x4d4]
call fcn.0043d7be
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
ret