Function at 0x468910
Capabilities:
Copy file
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x624]
push ebx
sub esp, 0x638
mov dword [esp + 4], edi
mov dword [esp], 0x104
call dword [sym.imp.kernel32.dll_GetTempPathW]
sub esp, 8
mov ebx, eax
test eax, eax
jne 0x46894c
mov eax, dword fs:[0x18]
cmp dword [eax + 0x34], 0x78
je 0x468cf0
call fcn.0057d110
lea esi, [ebp - 0x41c]
mov edx, dword fs:[0x18]
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x39a
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x628], edx
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
setne al
mov dword [esp + 4], str.GetTempPathW_error__ld_n
mov dword [esp], eax
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x39b
xor eax, eax
cmp ebx, 0x103
setbe al
mov dword [esp + 4], 0x59813c
mov dword [esp], eax
call fcn.0045bef0
mov ecx, dword [sym.imp.kernel32.dll_GetTempFileNameW]
mov dword [esp], edi
mov dword [esp + 0xc], esi
mov dword [esp + 8], 0
mov dword [esp + 4], 0x59ee34
mov dword [ebp - 0x62c], ecx
call ecx
sub esp, 0x10
mov ebx, eax
call fcn.0057d110
mov edx, dword [ebp - 0x628]
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x39e
mov eax, dword [edx + 0x34]
mov dword [esp + 4], str.GetTempFileNameW_error__ld_n
mov dword [esp + 8], eax
xor eax, eax
test ebx, ebx
lea ebx, [ebp - 0x214]
setne al
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], 0x59ee34
mov ecx, dword [ebp - 0x62c]
call ecx
sub esp, 0x10
mov edi, eax
call fcn.0057d110
mov edx, dword [ebp - 0x628]
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x3a1
mov eax, dword [edx + 0x34]
mov dword [ebp - 0x62c], edx
mov dword [esp + 8], eax
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], str.GetTempFileNameW_error__ld_n
mov dword [esp], eax
call fcn.0045bef0
mov dword [esp + 4], ebx
mov edi, dword [sym.imp.kernel32.dll_CopyFileW]
mov dword [esp + 8], 1
mov dword [esp], esi
call edi
sub esp, 0xc
mov dword [ebp - 0x628], eax
call fcn.0057d110
mov edx, dword [ebp - 0x62c]
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x3a4
mov ecx, dword [edx + 0x34]
xor eax, eax
mov edx, dword [ebp - 0x628]
test edx, edx
jne 0x468ad1
xor eax, eax
cmp ecx, 0x50
sete al
mov dword [esp + 8], ecx
mov dword [esp + 4], str.CopyFileW:_unexpected_error__ld_n
mov dword [esp], eax
call fcn.0045bef0
mov edx, dword fs:[0x18]
mov dword [edx + 0x34], 0xdeadbeef
mov dword [ebp - 0x628], edx
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], esi
call edi
sub esp, 0xc
mov edi, eax
call fcn.0057d110
mov edx, dword [ebp - 0x628]
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x3a9
mov eax, dword [edx + 0x34]
mov dword [esp + 4], str.CopyFileW:_error__ld_n
mov dword [esp + 8], eax
mov dword [esp], edi
call fcn.0045bef0
call fcn.0057d110
mov edx, dword [ebp - 0x628]
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x3aa
mov ecx, dword [edx + 0x34]
mov eax, 1
test ecx, ecx
jne 0x468cd0
mov dword [esp + 8], ecx
mov dword [esp + 4], str.Unexpected_error__lu._n
mov dword [esp], eax
mov edi, dword fs:[0x18]
call fcn.0045bef0
mov dword [edi + 0x34], 0xdeadbeef
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_CopyFileExW]
sub esp, 0x18
mov dword [ebp - 0x628], eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x3af
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.CopyFileExW:_error__ld_n
mov dword [esp + 8], eax
mov edx, dword [ebp - 0x628]
mov dword [esp], edx
call fcn.0045bef0
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x3b0
mov edx, dword [edi + 0x34]
mov eax, 1
test edx, edx
jne 0x468cb0
mov dword [esp + 8], edx
mov dword [esp + 4], str.Unexpected_error__lu._n
mov dword [esp], eax
mov edi, dword fs:[0x18]
call fcn.0045bef0
mov edx, dword [sym.imp.kernel32.dll_DeleteFileW]
mov dword [esp], esi
mov dword [ebp - 0x628], edx
call edx
sub esp, 4
mov esi, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x3b4
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.DeleteFileW:_error__ld_n
mov dword [esp + 8], eax
mov dword [esp], esi
call fcn.0045bef0
mov dword [esp], ebx
mov edx, dword [ebp - 0x628]
call edx
sub esp, 4
mov ebx, eax
call fcn.0057d110
mov dword [eax], 0x597dfd
mov dword [eax + 4], 0x3b6
mov eax, dword [edi + 0x34]
mov dword [esp + 4], str.DeleteFileW:_error__ld_n
mov dword [esp + 8], eax
mov dword [esp], ebx
call fcn.0045bef0
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edi, dword [0x8f0770]
cmp edx, 0x57
sete cl
xor eax, eax
test edi, edi
sete al
and eax, ecx
jmp 0x468c0f
mov edi, dword [0x8f0770]
cmp ecx, 0x57
sete dl
xor eax, eax
test edi, edi
sete al
and eax, edx
jmp 0x468b66
mov eax, 0x397
call fcn.0045b740
mov dword [esp], str.GetTempPathW_is_not_available_n
call fcn.0045bec0
jmp 0x468ca2