Function at 0x8f7a4c6
Capabilities:
Copy file
Delete file
Get file size

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x88
push ebx
push esi
xor eax, eax
push edi
inc eax
xor esi, esi
push 0x74
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x84]
push esi
push eax
mov dword [ebp - 0x88], esi
call sub.msvcrt.dll_memset
add esp, 0xc
push esi
push 0x80
push 3
push esi
push esi
push 0x80000000
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
mov dword [ebp - 4], edi
cmp edi, 0xffffffff
jne 0x8f7a609
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
mov ecx, dword [0x8f8c004]
mov esi, 0x8f8c004
cmp ecx, esi
je 0x8f7a556
test byte [ecx + 0x1c], 8
je 0x8f7a556
cmp byte [ecx + 0x19], 2
jb 0x8f7a556
push eax
push 0x8f715cc
push 0xbd
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.08f72d3f
push 0x10
push 0x1819
push dword [ebp + 8]
call fcn.08f764ea
mov edi, dword [ebp + 0xc]
add edi, 0x280
cmp word [edi], 0
je 0x8f7a5b6
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x8f7a5b1
mov eax, dword [0x8f8c004]
cmp eax, esi
je 0x8f7a5b1
test byte [eax + 0x1c], 8
je 0x8f7a5b1
cmp byte [eax + 0x19], 2
jb 0x8f7a5b1
call ebx
push eax
mov eax, dword [0x8f8c004]
push 0x8f715cc
push 0xc6
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.08f72d3f
xor eax, eax
mov word [edi], ax
and dword [ebp - 0xc], 0
cmp dword [ebp - 4], 0xffffffff
je 0x8f7a5ff
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x8f7a5ff
mov eax, dword [0x8f8c004]
cmp eax, esi
je 0x8f7a5ff
test byte [eax + 0x1c], 8
je 0x8f7a5ff
cmp byte [eax + 0x19], 2
jb 0x8f7a5ff
call ebx
push eax
mov eax, dword [0x8f8c004]
push 0x8f715cc
push 0xc7
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.08f72d3f
mov eax, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
leave
ret 0xc
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [ebp - 8], eax
cmp eax, 0xffffffff
jne 0x8f7a663
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
call ebx
mov ecx, dword [0x8f8c004]
mov esi, 0x8f8c004
cmp ecx, esi
je 0x8f7a556
test byte [ecx + 0x1c], 8
je 0x8f7a556
cmp byte [ecx + 0x19], 2
jb 0x8f7a556
push eax
push 0x8f715cc
push 0xbe
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.08f72d3f
jmp 0x8f7a556
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, 0x8f8c004
test eax, eax
jne 0x8f7a6ab
mov eax, dword [0x8f8c004]
cmp eax, esi
je 0x8f7a6ab
test byte [eax + 0x1c], 8
je 0x8f7a6ab
cmp byte [eax + 0x19], 2
jb 0x8f7a6ab
call ebx
push eax
mov eax, dword [0x8f8c004]
push 0x8f715cc
push 0xbf
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.08f72d3f
mov edi, dword [ebp + 0xc]
or dword [ebp - 4], 0xffffffff
push 0x104
add edi, 0x280
push edi
push 0
push 0x8f717b4
push 0
push 1
call fcn.08f86e72
or eax, edx
jne 0x8f7a719
call ebx
mov ecx, dword [0x8f8c004]
cmp ecx, esi
je 0x8f7a700
test byte [ecx + 0x1c], 8
je 0x8f7a700
cmp byte [ecx + 0x19], 2
jb 0x8f7a700
push eax
push 0x8f715cc
push 0xc0
push dword [ecx + 0x14]
push dword [ecx + 0x10]
call fcn.08f72d3f
push 0x10
push 0x1819
push dword [ebp + 8]
call fcn.08f764ea
xor eax, eax
mov word [edi], ax
jmp 0x8f7a565
mov ecx, dword [ebp + 0xc]
push 2
pop eax
cmp word [ecx + 0x16], ax
jne 0x8f7a728
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x270]
mov eax, dword [eax + 4]
mov eax, dword [eax + 8]
xor edx, edx
cmp eax, edx
je 0x8f7a800
cmp word [eax], dx
je 0x8f7a800
lea eax, [ebp - 0x88]
push eax
push ecx
call fcn.08f79a39
lea eax, [ebp - 0x88]
push eax
mov eax, dword [ebp + 0xc]
push 0
push dword [ebp - 0x10]
push dword [eax + 0x268]
mov eax, dword [eax + 0x270]
mov eax, dword [eax + 4]
push edi
push dword [eax + 8]
call fcn.08f88f57
test eax, eax
je 0x8f7a7b1
mov ecx, dword [0x8f8c004]
cmp ecx, esi
je 0x8f7a556
test byte [ecx + 0x1c], 8
je 0x8f7a556
cmp byte [ecx + 0x19], 2
jb 0x8f7a556
push eax
push 0x8f715cc
push 0xc1
jmp 0x8f7a653
cmp dword [ebp - 8], 0
je 0x8f7a87e
push dword [ebp + 0x10]
push edi
call sub.FXSTIFF.dll_MergeTiffFiles
test eax, eax
jne 0x8f7a87e
call ebx
mov ecx, dword [0x8f8c004]
cmp ecx, esi
je 0x8f7a556
test byte [ecx + 0x1c], 8
je 0x8f7a556
cmp byte [ecx + 0x19], 2
jb 0x8f7a556
push eax
push 0x8f715cc
push 0xc2
jmp 0x8f7a653
cmp dword [ebp - 8], edx
jne 0x8f7a83b
mov eax, dword [0x8f8c004]
cmp eax, esi
je 0x8f7a82f
test byte [eax + 0x1c], 8
je 0x8f7a82f
cmp byte [eax + 0x19], 3
jb 0x8f7a82f
push 0x8f715cc
push 0xc3
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.08f72d19
push 0x10
push 0x181b
jmp 0x8f7a55d
push edx
push edi
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x8f7a87e
call ebx
mov ecx, dword [0x8f8c004]
cmp ecx, esi
je 0x8f7a556
test byte [ecx + 0x1c], 8
je 0x8f7a556
cmp byte [ecx + 0x19], 2
jb 0x8f7a556
push eax
push 0x8f715cc
push 0xc4
jmp 0x8f7a54b
push edi
call fcn.08f869cf
mov edi, eax
test edi, edi
je 0x8f7a5ff
mov eax, dword [0x8f8c004]
cmp eax, esi
je 0x8f7a8b8
test byte [eax + 0x1c], 8
je 0x8f7a8b8
cmp byte [eax + 0x19], 2
jb 0x8f7a8b8
push 0x8f715cc
push 0xc5
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.08f72d19
cmp edi, 0x483
jne 0x8f7a556
push 0x10
push 0x1858
jmp 0x8f7a55d