Function at 0x13a68766
Capabilities:
Copy file
Delete file
Get common file path
Get file size

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x894
mov eax, dword [0x13a6e0f4]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x860], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
mov dword [ebp - 0x854], eax
mov eax, dword [ebp + 0x10]
push edi
mov dword [ebp - 0x858], eax
xor eax, eax
mov esi, 0x206
xor edi, edi
push esi
mov word [ebp - 0x20c], ax
lea eax, [ebp - 0x20a]
push edi
push eax
mov dword [ebp - 0x85c], edi
call sub.msvcrt.dll_memset
xor eax, eax
push esi
mov word [ebp - 0x61c], ax
lea eax, [ebp - 0x61a]
push edi
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push esi
mov word [ebp - 0x824], ax
lea eax, [ebp - 0x822]
push edi
push eax
call sub.msvcrt.dll_memset
xor eax, eax
push esi
mov word [ebp - 0x414], ax
lea eax, [ebp - 0x412]
push edi
push eax
call sub.msvcrt.dll_memset
add esp, 0x30
mov dword [ebp - 0x850], edi
mov eax, dword [0x13a6e004]
mov ebx, 0x13a6e004
cmp eax, ebx
je 0x13a6883a
test byte [eax + 0x1c], 2
je 0x13a6883a
cmp byte [eax + 0x19], 5
jb 0x13a6883a
mov edi, 0x13a03e70
push edi
push 0x4e
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.13a58cc1
jmp 0x13a6883f
mov edi, 0x13a03e70
lea eax, [ebp - 0x61c]
push eax
mov esi, 0x104
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
jne 0x13a68867
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x850], eax
jmp 0x13a68bec
lea eax, [ebp - 0x824]
push eax
push 0
push 0x13a016f4
lea eax, [ebp - 0x61c]
push eax
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
je 0x13a68856
lea eax, [ebp - 0x868]
push eax
lea eax, [ebp - 0x20c]
push eax
push esi
lea eax, [ebp - 0x824]
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x13a688f3
cmp eax, esi
ja 0x13a68bd5
lea eax, [ebp - 0x85c]
push eax
lea eax, [ebp - 0x20c]
push eax
push dword [ebp - 0x854]
call fcn.13a66d8c
test eax, eax
jne 0x13a688db
test byte [ebp - 0x85c], 4
jne 0x13a688db
or dword [ebp - 0x85c], 4
mov al, byte [ebp - 0x85c]
test al, 4
je 0x13a68a0e
xor esi, esi
cmp dword [ebp - 0x860], esi
jne 0x13a68904
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x850], eax
jmp 0x13a68bdf
push dword [ebp - 0x858]
push dword [ebp - 0x854]
push dword [ebp - 0x860]
call fcn.13a6793f
test eax, eax
je 0x13a688f3
push esi
push 0x80
push 3
push esi
push 1
push 0x80000000
push dword [ebp - 0x858]
call fcn.13a6518c
mov esi, eax
cmp esi, 0xffffffff
jne 0x13a6898d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x850], eax
mov eax, dword [0x13a6e004]
cmp eax, ebx
je 0x13a68bdf
test byte [eax + 0x1c], 2
je 0x13a68bdf
cmp byte [eax + 0x19], 2
jb 0x13a68bdf
push dword [ebp - 0x850]
push dword [ebp - 0x858]
push edi
push 0x4f
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.13a58ce7
jmp 0x13a68bdf
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push esi
mov dword [ebp - 0x854], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x854], 0xffffffff
jne 0x13a689f2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x850], eax
mov eax, dword [0x13a6e004]
cmp eax, ebx
je 0x13a68bdf
test byte [eax + 0x1c], 2
je 0x13a68bdf
cmp byte [eax + 0x19], 2
jb 0x13a68bdf
push dword [ebp - 0x850]
push edi
push 0x50
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.13a5a529
jmp 0x13a68bdf
cmp dword [ebp - 0x854], 0
jne 0x13a68bdf
mov dword [ebp - 0x850], 0xd
jmp 0x13a68bdf
test al, 2
je 0x13a68b72
cmp dword [ebp - 0x860], 0
jne 0x13a68a2e
mov dword [ebp - 0x850], 0x57
jmp 0x13a68bdf
test al, 1
je 0x13a68a3a
push dword [ebp - 0x854]
jmp 0x13a68a41
lea eax, [ebp - 0x20c]
push eax
push esi
lea eax, [ebp - 0x414]
push eax
call fcn.13a66477
mov esi, eax
test esi, esi
jge 0x13a68a99
mov eax, dword [0x13a6e004]
cmp eax, ebx
je 0x13a68a78
test byte [eax + 0x1c], 2
je 0x13a68a78
cmp byte [eax + 0x19], 2
jb 0x13a68a78
push esi
push edi
push 0x51
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.13a5a529
mov eax, esi
and eax, 0x1fff0000
cmp eax, 0x70000
jne 0x13a68a8e
movzx eax, si
jmp 0x13a688f9
mov dword [ebp - 0x850], esi
jmp 0x13a68bdf
push 0x2c
pop esi
push esi
lea eax, [ebp - 0x894]
push 0
push eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x858]
add esp, 0xc
push 0xa
pop ecx
mov dword [ebp - 0x86c], eax
xor eax, eax
lea edi, [ebp - 0x84c]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x84c]
push eax
lea eax, [ebp - 0x864]
push eax
push 0
lea eax, [ebp - 0x894]
push eax
push 0
mov dword [ebp - 0x894], esi
mov dword [ebp - 0x84c], 0x28
call fcn.13a69e73
test eax, eax
je 0x13a688f3
lea eax, [ebp - 0x414]
push eax
push dword [ebp - 0x848]
push dword [ebp - 0x860]
call fcn.13a66a65
test eax, eax
jne 0x13a68b23
mov dword [ebp - 0x850], 0x65b
push dword [ebp - 0x848]
call dword [sym.imp.GDI32.dll_DeleteDC]
test eax, eax
jne 0x13a68bdf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x850], eax
mov eax, dword [0x13a6e004]
cmp eax, ebx
je 0x13a68bdf
test byte [eax + 0x1c], 2
je 0x13a68bdf
cmp byte [eax + 0x19], 2
jb 0x13a68bdf
push dword [ebp - 0x850]
push 0x13a03e70
push 0x52
jmp 0x13a689e2
test al, 1
je 0x13a68bbd
push 0
push dword [ebp - 0x858]
push dword [ebp - 0x854]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x13a68bdf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x850], eax
mov eax, dword [0x13a6e004]
cmp eax, ebx
je 0x13a68bdf
test byte [eax + 0x1c], 2
je 0x13a68bdf
cmp byte [eax + 0x19], 2
jb 0x13a68bdf
push dword [ebp - 0x850]
push edi
push 0x53
jmp 0x13a689e2
push dword [ebp - 0x858]
mov dword [ebp - 0x850], 0xd
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
jmp 0x13a68bdf
mov dword [ebp - 0x850], 0x6f
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp dword [ebp - 0x850], 0
pop edi
pop esi
pop ebx
je 0x13a68c08
push dword [ebp - 0x850]
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
jmp 0x13a68c0b
xor eax, eax
inc eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.13a619a5
leave
ret 0xc