Function at 0x45a240
Capabilities:
Copy file

Disassembly:
push 0xffffffffffffffff
push 0x4868e7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x434
mov eax, dword [0x4ce19c]
push ebx
push esi
push edi
mov ebx, 1
push 0x48b000
lea ecx, [esp + 0x14]
mov dword [esp + 0x440], eax
mov byte [esp + 0x13], bl
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
lea ecx, [esp + 0x20]
mov dword [esp + 0x448], 0
call fcn.00414090
push ebx
lea eax, [esp + 0x24]
push eax
push 0x1b
mov byte [esp + 0x454], bl
call fcn.00459fe0
add esp, 0xc
test al, al
jne 0x45a2d2
lea ecx, [esp + 0x20]
mov byte [esp + 0x448], al
call fcn.004034a5
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
xor al, al
jmp 0x45a61b
mov esi, dword [esp + 0x454]
push esi
call fcn.004579e0
add esp, 4
test eax, eax
jne 0x45a376
push str._INITIALIZING_LOG_
push 0x48ae58
call fcn.004572b0
mov ecx, dword [esp + 0x2c]
push ecx
push esi
lea edx, [esp + 0x20]
push str._s__E__G__s:F
push edx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x18
push 0
push ebx
push 0x48ae58
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x2c], esp
push 0x48b000
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push 0x20
push ebx
push 0
push ecx
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
mov byte [esp + 0x470], 2
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
push ecx
mov ecx, esp
mov dword [esp + 0x44], esp
push str.cacls.exe
mov byte [esp + 0x474], 3
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
mov byte [esp + 0x470], bl
call fcn.00460ca0
add esp, 0x28
mov esi, dword [esp + 0x450]
push esi
call fcn.004579e0
add esp, 4
test eax, eax
jne 0x45a4b4
push str.Restore_log_started
push str.Restore
call fcn.004574f0
mov ecx, dword [esp + 0x2c]
push ecx
push esi
lea edx, [esp + 0x20]
push str._s__E__G__s:F
push edx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x18
push 0
push ebx
push 0x48ae58
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x48b000
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push 0x20
push ebx
push 0
push ecx
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
mov byte [esp + 0x470], 4
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.cacls.exe
mov byte [esp + 0x474], 5
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
mov byte [esp + 0x470], bl
call fcn.00460ca0
mov edi, dword [sym.imp.MSVCR71.dll__wgetenv]
push 0x48cf08
call edi
xor ecx, ecx
mov cx, word [eax]
push ecx
call fcn.004598f0
add esp, 0x30
push eax
push 0x48cf08
call edi
add esp, 4
push eax
push 0x48be08
lea edx, [esp + 0x240]
push 0x208
push edx
call fcn.00403fa3
push str.restore.log
push str.common
lea eax, [esp + 0x250]
push eax
push str._s_s_s
lea ecx, [esp + 0x50]
push 0x208
push ecx
call fcn.00403fa3
add esp, 0x2c
push 0
lea edx, [esp + 0x30]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x45a4b4
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
lea eax, [esp + 0x30]
push eax
push esi
push str.InitRestoreLog_____Error_copying__s_to__s._Error__d
push 0x48ae58
call fcn.004572b0
add esp, 0x14
mov byte [esp + 0xf], 0
mov esi, dword [esp + 0x458]
push esi
call fcn.004579e0
add esp, 4
test eax, eax
jne 0x45a558
push str._INITIALIZING_LOG_
push str.Engine
call fcn.004572b0
mov ecx, dword [esp + 0x2c]
push ecx
push esi
lea edx, [esp + 0x20]
push str._s__E__G__s:F
push edx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x18
push 0
push ebx
push 0x48ae58
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x48b000
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push 0x20
push ebx
push 0
push ecx
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
mov byte [esp + 0x470], 6
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.cacls.exe
mov byte [esp + 0x474], 7
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
mov byte [esp + 0x470], bl
call fcn.00460ca0
add esp, 0x28
mov esi, dword [esp + 0x45c]
push esi
call fcn.004579e0
add esp, 4
test eax, eax
jne 0x45a5fc
push str._INITIALIZING_LOG_
push 0x48e3a0
call fcn.004572b0
mov ecx, dword [esp + 0x2c]
push ecx
push esi
lea edx, [esp + 0x20]
push str._s__E__G__s:F
push edx
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::Format]
add esp, 0x18
push 0
push ebx
push 0x48ae58
push 0
push ecx
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x48b000
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
push 0x20
push ebx
push 0
push ecx
lea eax, [esp + 0x34]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
mov byte [esp + 0x470], 8
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_4]
push ecx
mov ecx, esp
mov dword [esp + 0x40], esp
push str.cacls.exe
mov byte [esp + 0x474], 9
call dword [sym.imp.MFC71U.DLL_ATL::CStringT::CStringT_6]
mov byte [esp + 0x470], bl
call fcn.00460ca0
add esp, 0x28
lea ecx, [esp + 0x20]
mov byte [esp + 0x448], 0
call fcn.004034a5
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71U.DLL_ATL::CSimpleStringT::CSimpleStringT]
mov al, byte [esp + 0xf]
mov ecx, dword [esp + 0x440]
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x43c]
call fcn.00475533
pop edi
pop esi
pop ebx
add esp, 0x440
ret