Function at 0x46c720
Capabilities:
Delete file
Get common file path
Get file size
Read file on windows
Timestomp file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x67c
mov eax, dword [0x76d158]
test eax, eax
je 0x46da20
lea esi, [ebp - 0x214]
mov dword [esp], 0x104
mov dword [esp + 4], esi
call dword [sym.imp.kernel32.dll_GetTempPathW]
sub esp, 8
mov ebx, eax
mov eax, 0x3cc
mov edi, dword fs:[0x18]
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.GetTempPathW_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x3cd
call fcn.0045b740
xor eax, eax
cmp ebx, 0x103
mov dword [esp + 4], 0x59813c
setbe al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x624]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [sym.imp.kernel32.dll_GetTempFileNameW]
mov dword [esp + 4], 0x59ee2c
mov dword [esp], esi
mov dword [ebp - 0x668], eax
call eax
sub esp, 0x10
mov ebx, eax
mov eax, 0x3d0
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.GetTempFileNameW_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.0045bef0
lea ecx, [ebp - 0x41c]
mov dword [esp + 8], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 0x59ee2c
mov dword [esp], esi
mov eax, dword [ebp - 0x668]
call eax
sub esp, 0x10
mov ebx, eax
mov eax, 0x3d3
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.GetTempFileNameW_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x638]
mov dword [ebp - 0x630], 0
mov dword [ebp - 0x62c], 0
mov dword [ebp - 0x628], 0
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 1
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 8], eax
lea eax, [ebp - 0x41c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x624]
mov dword [esp], eax
call dword [0x76d158]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3dc
call fcn.0045b740
xor eax, eax
cmp ebx, 0x80070050
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.CopyFile2:_unexpected_error_0x_08lx_n
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x3dd
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.CopyFile2:_last_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x50
sete al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x638]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [esp + 8], eax
lea eax, [ebp - 0x41c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x624]
mov dword [esp], eax
call dword [0x76d158]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3e4
call fcn.0045b740
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.CopyFile2:_error_0x_08lx_n
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x638]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 8], eax
lea eax, [ebp - 0x624]
mov dword [esp + 4], eax
mov dword [esp], eax
call dword [0x76d158]
sub esp, 0xc
mov ebx, eax
mov eax, 0x3ec
call fcn.0045b740
xor eax, eax
cmp ebx, 0x80070020
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], str.CopyFile2:_copying_a_file_to_itself_didnt_fail__0x_08lx_n
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x3ed
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.CopyFile2:_last_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x20
sete al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x624]
mov dword [esp + 0x18], 0
mov dword [esp], eax
mov eax, dword [sym.imp.kernel32.dll_CreateFileW]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x40000000
mov dword [ebp - 0x660], eax
call eax
sub esp, 0x1c
mov ebx, eax
mov eax, 0x3f1
call fcn.0045b740
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.failed_to_open_source_file_n
setne al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x658]
mov dword [esp], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
mov dword [esp + 8], 8
mov dword [esp + 4], 0x59ee2c
call dword [sym.imp.kernel32.dll_WriteFile]
mov dword [ebp - 0x65c], eax
sub esp, 0x14
mov eax, 0x3f3
call fcn.0045b740
mov edx, dword [ebp - 0x65c]
mov eax, dword [edi + 0x34]
test edx, edx
je 0x46cabb
xor edx, edx
cmp dword [ebp - 0x658], 8
sete dl
mov dword [esp], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x5981d0
call fcn.0045bef0
mov eax, 0x3f4
call fcn.0045b740
mov eax, dword [sym.imp.kernel32.dll_GetFileSize]
mov dword [esp], ebx
mov dword [esp + 4], 0
mov dword [ebp - 0x664], eax
call eax
sub esp, 8
cmp eax, 8
sete al
mov dword [esp + 4], str.source_file_has_wrong_size_n
movzx eax, al
mov dword [esp], eax
mov edi, dword fs:[0x18]
call fcn.0045bef0
lea ecx, [ebp - 0x654]
mov dword [esp], ebx
mov dword [esp + 0xc], ecx
mov ecx, dword [sym.imp.kernel32.dll_GetFileTime]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [ebp - 0x66c], ecx
call ecx
sub esp, 0x10
mov dword [ebp - 0x65c], eax
mov eax, 0x3f8
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.GetFileTime_error__ld_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x65c]
mov dword [esp], edx
call fcn.0045bef0
lea edx, [ebp - 0x654]
sub dword [ebp - 0x654], 0x23c34600
mov dword [esp + 0xc], edx
mov dword [esp], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
call dword [sym.imp.kernel32.dll_SetFileTime]
sub esp, 0x10
mov dword [ebp - 0x65c], eax
mov eax, 0x3fb
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.SetFileTime_error__ld_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x65c]
mov dword [esp], edx
call fcn.0045bef0
lea ecx, [ebp - 0x654]
mov dword [esp], ebx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov ecx, dword [ebp - 0x66c]
call ecx
mov eax, dword [sym.imp.kernel32.dll_CloseHandle]
sub esp, 0x10
mov dword [esp], ebx
mov dword [ebp - 0x65c], eax
call eax
lea edx, [ebp - 0x41c]
sub esp, 4
mov dword [esp + 0xc], edx
mov dword [esp], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x59ee2c
mov ecx, dword [ebp - 0x668]
call ecx
sub esp, 0x10
mov ebx, eax
mov eax, 0x400
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], 0x598160
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x638]
lea ecx, [ebp - 0x41c]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 1
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 8], edx
lea edx, [ebp - 0x624]
mov dword [esp + 4], ecx
mov dword [esp], edx
call dword [0x76d158]
sub esp, 0xc
mov esi, eax
mov eax, 0x407
call fcn.0045b740
xor eax, eax
cmp esi, 0x80070050
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.CopyFile2:_unexpected_error_0x_08lx_n
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x408
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.CopyFile2:_last_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x50
sete al
mov dword [esp], eax
call fcn.0045bef0
lea ecx, [ebp - 0x638]
lea edx, [ebp - 0x41c]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [esp + 8], ecx
lea ecx, [ebp - 0x624]
mov dword [esp + 4], edx
mov dword [esp], ecx
call dword [0x76d158]
sub esp, 0xc
mov esi, eax
mov eax, 0x40d
call fcn.0045b740
mov dword [esp + 8], esi
mov dword [esp], ebx
mov dword [esp + 4], str.CopyFile2:_error_0x_08lx_n
call fcn.0045bef0
lea edx, [ebp - 0x624]
mov dword [esp + 0x18], 0
mov dword [esp], edx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 2
mov dword [esp + 4], 0x80000000
mov ecx, dword [ebp - 0x660]
call ecx
sub esp, 0x1c
mov ebx, eax
mov eax, 0x411
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.failed_to_open_source_file__error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x638]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 8], edx
lea edx, [ebp - 0x41c]
mov dword [esp + 4], edx
lea edx, [ebp - 0x624]
mov dword [esp], edx
call dword [0x76d158]
sub esp, 0xc
mov esi, eax
mov eax, 0x417
call fcn.0045b740
xor eax, eax
cmp esi, 0x80070020
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.CopyFile2:_unexpected_error_0x_08lx_n
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x418
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.CopyFile2:_last_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x20
sete al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x638]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 8], edx
lea edx, [ebp - 0x41c]
mov dword [esp + 4], edx
mov dword [esp], 0x59ee14
call dword [0x76d158]
sub esp, 0xc
mov esi, eax
mov eax, 0x41f
call fcn.0045b740
xor eax, eax
cmp esi, 0x80070002
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x59b3b6
lea esi, [ebp - 0x638]
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x420
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.CopyFile2:_last_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 2
sete al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], ebx
mov eax, dword [ebp - 0x65c]
call eax
lea edx, [ebp - 0x624]
sub esp, 4
mov dword [esp], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0xc0000000
mov ecx, dword [ebp - 0x660]
call ecx
sub esp, 0x1c
mov ebx, eax
mov eax, 0x425
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.failed_to_open_source_file__error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x41c]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [esp + 8], esi
lea esi, [ebp - 0x624]
mov dword [esp + 4], edx
mov dword [esp], esi
call dword [0x76d158]
sub esp, 0xc
mov esi, eax
mov eax, 0x42a
call fcn.0045b740
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_0x_08lx_n
lea esi, [ebp - 0x638]
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], ebx
mov eax, dword [ebp - 0x65c]
call eax
lea edx, [ebp - 0x624]
sub esp, 4
mov dword [esp], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x10000
mov ecx, dword [ebp - 0x660]
call ecx
sub esp, 0x1c
mov ebx, eax
mov eax, 0x42f
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.failed_to_open_source_file__error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x41c]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [esp + 8], esi
lea esi, [ebp - 0x624]
mov dword [esp + 4], edx
mov dword [esp], esi
call dword [0x76d158]
sub esp, 0xc
mov esi, eax
mov eax, 0x434
call fcn.0045b740
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.failed_0x_08lx_n
lea esi, [ebp - 0x41c]
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], ebx
mov eax, dword [ebp - 0x65c]
call eax
lea edx, [ebp - 0x41c]
sub esp, 4
mov dword [esp], edx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x40000000
mov ecx, dword [ebp - 0x660]
call ecx
sub esp, 0x1c
mov ebx, eax
mov eax, 0x439
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.failed_to_open_destination_file__error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x624]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], 0
call dword [0x76d158]
sub esp, 0xc
mov esi, eax
mov eax, 0x43f
call fcn.0045b740
xor eax, eax
cmp esi, 0x80070020
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.CopyFile2:_unexpected_error_0x_08lx_n
lea esi, [ebp - 0x41c]
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x440
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.CopyFile2:_last_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x20
sete al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], ebx
mov eax, dword [ebp - 0x65c]
lea ebx, [ebp - 0x41c]
call eax
sub esp, 4
mov dword [esp], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 2
mov dword [esp + 4], 0xc0000000
mov ecx, dword [ebp - 0x660]
call ecx
sub esp, 0x1c
mov ebx, eax
mov eax, 0x445
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.failed_to_open_destination_file__error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x624]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], 0
call dword [0x76d158]
sub esp, 0xc
mov esi, eax
mov eax, 0x44a
call fcn.0045b740
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x59b3b6
lea esi, [ebp - 0x638]
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], ebx
mov eax, dword [ebp - 0x65c]
lea ebx, [ebp - 0x41c]
call eax
sub esp, 4
mov dword [esp], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 7
mov dword [esp + 4], 0x10000
mov ecx, dword [ebp - 0x660]
call ecx
sub esp, 0x1c
mov ebx, eax
mov eax, 0x44f
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.failed_to_open_destination_file__error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x41c]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 8], esi
lea esi, [ebp - 0x624]
mov dword [esp + 4], edx
mov dword [esp], esi
call dword [0x76d158]
sub esp, 0xc
mov esi, eax
mov eax, 0x455
call fcn.0045b740
xor eax, eax
cmp esi, 0x80070020
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.CopyFile2:_unexpected_error_0x_08lx_n
lea esi, [ebp - 0x41c]
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x456
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.CopyFile2:_last_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x20
sete al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], ebx
mov eax, dword [ebp - 0x65c]
lea ebx, [ebp - 0x41c]
call eax
sub esp, 4
mov dword [esp], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0x80000000
mov ecx, dword [ebp - 0x660]
call ecx
sub esp, 0x1c
mov ebx, eax
mov eax, 0x45b
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.failed_to_open_destination_file__error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp ebx, 0xffffffff
setne al
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x638]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [esp + 8], edx
lea edx, [ebp - 0x624]
mov dword [esp], edx
mov dword [esp + 4], esi
call dword [0x76d158]
sub esp, 0xc
mov esi, eax
mov eax, 0x460
call fcn.0045b740
xor eax, eax
test esi, esi
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], 0x59b3b6
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], ebx
mov eax, dword [ebp - 0x65c]
lea ebx, [ebp - 0x41c]
call eax
sub esp, 4
mov dword [esp], ebx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 1
mov dword [esp + 4], 0x80000000
mov ecx, dword [ebp - 0x660]
call ecx
sub esp, 0x1c
mov ebx, eax
mov eax, 0x465
call fcn.0045b740
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.failed_to_open_destination_file_n
setne al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 4], 0
mov dword [esp], ebx
mov eax, dword [ebp - 0x664]
call eax
sub esp, 8
mov esi, eax
mov eax, 0x467
call fcn.0045b740
xor eax, eax
cmp esi, 8
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.destination_file_has_wrong_size__ld_n
mov dword [esp], eax
call fcn.0045bef0
lea edx, [ebp - 0x64c]
mov dword [esp + 8], 0
mov dword [esp + 0xc], edx
mov dword [esp + 4], 0
mov dword [esp], ebx
mov ecx, dword [ebp - 0x66c]
call ecx
sub esp, 0x10
mov esi, eax
mov eax, 0x46b
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp], esi
mov dword [esp + 4], str.GetFileTime_error__ld_n
mov dword [esp + 8], eax
call fcn.0045bef0
mov eax, 0x46c
call fcn.0045b740
lea edx, [ebp - 0x64c]
lea ecx, [ebp - 0x654]
mov dword [esp + 4], edx
mov dword [esp], ecx
call dword [sym.imp.kernel32.dll_CompareFileTime]
sub esp, 8
test eax, eax
sete al
mov dword [esp + 4], str.destination_file_has_wrong_filetime_n
movzx eax, al
mov dword [esp], eax
call fcn.0045bef0
lea ecx, [ebp - 0x638]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 8], ecx
lea ecx, [ebp - 0x41c]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x624]
mov dword [esp], ecx
call dword [0x76d158]
sub esp, 0xc
mov esi, eax
mov eax, 0x472
call fcn.0045b740
xor eax, eax
cmp esi, 0x80070020
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.CopyFile2:_unexpected_error_0x_08lx_n
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x473
call fcn.0045b740
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.CopyFile2:_last_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [edi + 0x34], 0x20
sete al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 4], 0
mov dword [esp], ebx
mov eax, dword [ebp - 0x664]
call eax
sub esp, 8
mov esi, eax
mov eax, 0x477
call fcn.0045b740
xor eax, eax
cmp esi, 8
mov dword [esp + 8], esi
sete al
mov dword [esp + 4], str.destination_file_has_wrong_size__ld_n
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x658]
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x642]
mov dword [esp + 8], 0xa
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [sym.imp.kernel32.dll_ReadFile]
sub esp, 0x14
mov esi, eax
mov eax, 0x479
call fcn.0045b740
mov eax, dword [edi + 0x34]
test esi, esi
jne 0x46d9f0
mov dword [esp + 8], eax
mov dword [esp + 4], str.ReadFile:_error__ld_n
mov dword [esp], esi
call fcn.0045bef0
mov eax, 0x47a
call fcn.0045b740
cmp dword [ebp - 0x642], 0x660070
je 0x46da08
mov eax, 1
xor eax, 1
mov dword [esp + 4], str.buffer_contents_mismatch_n
mov dword [esp], eax
mov esi, dword fs:[0x18]
call fcn.0045bef0
mov edx, dword [sym.imp.kernel32.dll_CreateFileMappingW]
mov dword [esp], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x8000002
mov dword [esp + 4], 0
mov dword [ebp - 0x668], edx
call edx
sub esp, 0x18
mov edi, eax
mov eax, 0x47e
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CreateFileMapping:_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
setne al
mov dword [esp], eax
call fcn.0045bef0
lea eax, [ebp - 0x638]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [esi + 0x34], 0xdeadbeef
mov dword [esp + 8], eax
lea eax, [ebp - 0x41c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x624]
mov dword [esp], eax
call dword [0x76d158]
sub esp, 0xc
mov dword [ebp - 0x664], eax
mov eax, 0x484
call fcn.0045b740
mov ecx, dword [ebp - 0x664]
xor eax, eax
mov dword [esp + 4], str.CopyFile2:_unexpected_error_0x_08lx_n
cmp ecx, 0x80070020
mov dword [esp + 8], ecx
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x485
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CopyFile2:_last_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0x20
sete al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], edi
mov edi, dword [ebp - 0x65c]
mov eax, edi
call eax
mov eax, edi
sub esp, 4
mov dword [esp], ebx
mov dword [ebp - 0x65c], edi
call eax
lea ecx, [ebp - 0x41c]
sub esp, 4
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov dword [esp + 8], 3
mov dword [esp + 4], 0x80000000
mov dword [esp], ecx
mov ecx, dword [ebp - 0x660]
call ecx
sub esp, 0x1c
mov ebx, eax
mov eax, 0x48b
call fcn.0045b740
xor eax, eax
cmp ebx, 0xffffffff
mov dword [esp + 4], str.failed_to_open_destination_file_n
setne al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x8000002
mov dword [esp + 4], 0
mov edx, dword [ebp - 0x668]
call edx
sub esp, 0x18
mov edi, eax
mov eax, 0x48f
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CreateFileMapping:_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
setne al
mov dword [esp], eax
call fcn.0045bef0
lea ecx, [ebp - 0x638]
mov dword [ebp - 0x638], 0x14
mov dword [ebp - 0x634], 0
mov dword [esp + 8], ecx
lea ecx, [ebp - 0x41c]
mov dword [esp + 4], ecx
lea ecx, [ebp - 0x624]
mov dword [esp], ecx
call dword [0x76d158]
sub esp, 0xc
mov dword [ebp - 0x660], eax
mov eax, 0x494
call fcn.0045b740
mov edx, dword [ebp - 0x660]
xor eax, eax
mov dword [esp + 4], str.CopyFile2:_unexpected_error_0x_08lx_n
cmp edx, 0x800704c8
mov dword [esp + 8], edx
sete al
mov dword [esp], eax
call fcn.0045bef0
mov eax, 0x495
call fcn.0045b740
mov eax, dword [esi + 0x34]
mov dword [esp + 4], str.CopyFile2:_last_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
cmp dword [esi + 0x34], 0x4c8
sete al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], edi
mov edi, dword [ebp - 0x65c]
mov eax, edi
call eax
mov eax, edi
sub esp, 4
mov dword [esp], ebx
call eax
lea eax, [ebp - 0x624]
mov ebx, dword [sym.imp.kernel32.dll_DeleteFileW]
sub esp, 4
mov dword [esp], eax
call ebx
lea eax, [ebp - 0x41c]
sub esp, 4
mov dword [esp], eax
call ebx
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
xor ecx, ecx
cmp dword [ebp - 0x658], 8
sete cl
mov esi, ecx
jmp 0x46d6d4
xor eax, eax
cmp dword [ebp - 0x63e], 0x78
jne 0x46d702
jmp 0x46d707
mov eax, dword [0x8f0770]
call fcn.0045b110
jmp 0x46da56
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x3c7
mov dword [esp], str.CopyFile2_is_not_available_n
call fcn.0045bec0
call fcn.0057d110
shr dword [eax + 0x10], 1
call fcn.0057d110
mov edx, dword [eax + 0x14]
mov dword [eax + 0x14], 0
test edx, edx
jne 0x46da30
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret