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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0xa48
mov eax, dword [0x102a0ec]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
mov esi, dword [ebp + 8]
test esi, esi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0xa38], esi
mov dword [ebp - 0xa3c], ebx
mov dword [ebp - 0xa40], eax
jne 0x1019fe0
mov eax, 0x80004003
jmp 0x101a660
test ebx, ebx
jne 0x1019fef
test eax, eax
jne 0x1019fef
push esi
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push esi
call fcn.01016f8a
test eax, eax
jne 0x101a009
mov eax, ebx
neg eax
sbb eax, eax
and eax, 0x80070002
jmp 0x101a660
test ebx, ebx
push edi
mov edi, 0x208
je 0x101a139
cmp dword [ebp + 0x14], 0
je 0x101a02f
lea eax, [ebp - 0xa48]
push eax
push ebx
call fcn.01016fb7
call fcn.010196ef
cmp dword [ebp + 0x10], 0
je 0x101a139
push edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
mov esi, eax
test esi, esi
pop ecx
jne 0x101a050
mov eax, 0x8007000e
jmp 0x101a65f
mov ebx, 0x104
push ebx
push esi
push dword [ebp - 0xa3c]
call fcn.010181dc
push esi
call fcn.01016cfc
cmp dword [ebp - 0xa40], 0
je 0x101a08f
push dword [ebp - 0xa40]
lea eax, [ebp - 0x224]
push esi
push 0x10027b8
push ebx
push eax
call fcn.0100d4d1
add esp, 0x14
jmp 0x101a0c1
push dword [0x102be50]
lea eax, [ebp - 0x224]
push esi
push 0x100636c
push ebx
push eax
call fcn.0100d4d1
add esp, 0x14
inc dword [0x102be50]
lea eax, [ebp - 0x224]
push eax
call fcn.01016f8a
test eax, eax
jne 0x101a08f
push esi
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
pop ecx
push 1
lea eax, [ebp - 0x224]
push eax
push dword [ebp - 0xa38]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x101a151
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jne 0x101a0f2
push 0x57
pop eax
test eax, eax
jg 0x101a0ff
call esi
test eax, eax
jne 0x101a112
push 0x57
pop eax
jmp 0x101a112
call esi
test eax, eax
jne 0x101a108
push 0x57
pop eax
and eax, 0xffff
or eax, 0x80070000
push eax
lea eax, [ebp - 0x224]
push eax
push dword [ebp - 0xa38]
push 0x1006e18
push 0
call fcn.01028201
add esp, 0x14
mov eax, 0x80004005
jmp 0x101a65f
push dword [ebp - 0xa38]
mov ebx, 0x104
push ebx
lea eax, [ebp - 0x224]
push eax
call fcn.0100c535
xor esi, esi
push esi
push esi
push esi
push 4
call fcn.01018dae
test eax, eax
je 0x101a3da
push edi
call sub.msvcrt.dll_void____cdecl_operator_new_unsigned_int_
cmp eax, esi
pop ecx
mov dword [ebp - 0xa38], eax
je 0x101a2f0
and dword [ebp - 0xa44], esi
push eax
push ebx
mov edi, 0x80004005
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x101a2d4
push dword [ebp - 0xa38]
call fcn.01018499
push dword [ebp - 0xa38]
call fcn.01016cfc
and dword [0x102be50], esi
cmp dword [ebp - 0xa40], esi
je 0x101a1dc
push dword [ebp - 0xa40]
lea eax, [ebp - 0x42c]
push dword [ebp - 0xa38]
push 0x10027b8
push ebx
push eax
call fcn.0100d4d1
add esp, 0x14
jmp 0x101a213
push dword [0x102be50]
lea eax, [ebp - 0x42c]
push dword [ebp - 0xa38]
push 0x100636c
push ebx
push eax
call fcn.0100d4d1
add esp, 0x14
inc dword [0x102be50]
lea eax, [ebp - 0x42c]
push eax
call fcn.01016f8a
test eax, eax
jne 0x101a1dc
xor esi, esi
cmp dword [ebp - 0xa3c], esi
lea eax, [ebp - 0x42c]
push eax
je 0x101a275
push dword [ebp - 0xa3c]
mov ebx, dword [sym.imp.KERNEL32.dll_MoveFileW]
call ebx
test eax, eax
je 0x101a2d4
push dword [ebp - 0xa3c]
call fcn.01016f8a
test eax, eax
je 0x101a25e
push dword [ebp - 0xa3c]
push 0x1006dd0
push 1
call fcn.01028201
add esp, 0xc
push dword [ebp - 0xa3c]
lea eax, [ebp - 0x224]
push eax
call ebx
mov dword [ebp - 0xa44], eax
jmp 0x101a2a6
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x101a2d4
lea eax, [ebp - 0x224]
push eax
push 0x1006d90
push 5
call fcn.01028201
add esp, 0xc
mov dword [ebp - 0xa44], 1
push esi
push esi
lea eax, [ebp - 0x42c]
push esi
push eax
call fcn.0101976e
mov edi, eax
cmp edi, 0xd2af9
jne 0x101a2d4
push esi
lea eax, [ebp - 0x42c]
push eax
mov ecx, 0x102bd30
push 2
dec edi
call fcn.010185c0
push dword [ebp - 0xa38]
call sub.msvcrt.dll_void___cdecl_operator_delete_void__
cmp dword [ebp - 0xa44], 0
pop ecx
je 0x101a2f0
mov eax, edi
jmp 0x101a65f
mov edi, dword [ebp - 0xa3c]
push 5
push edi
lea eax, [ebp - 0x224]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x101a37c
test edi, edi
je 0x101a33b
push edi
call dword [sym.imp.msvcrt.dll_wcslen]
test eax, eax
pop ecx
je 0x101a33b
xor ecx, ecx
cmp word [edi + eax*2 - 2], 0x5c
sete cl
mov eax, ecx
test eax, eax
je 0x101a33b
push edi
push 0x1006d6c
push 2
call fcn.01028201
add esp, 0xc
lea eax, [ebp - 0x224]
push eax
push 0x1006d3c
push 2
call fcn.01028201
add esp, 0xc
cmp dword [ebp + 0x1c], 0
mov ecx, 0x102bd30
lea eax, [ebp - 0x224]
je 0x101a368
push edi
jmp 0x101a652
push 0
push eax
push 2
call fcn.010185c0
mov eax, 0xd2af8
jmp 0x101a65f
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jne 0x101a38d
push 0x57
pop eax
test eax, eax
jg 0x101a39a
call esi
test eax, eax
jne 0x101a3ad
push 0x57
pop eax
jmp 0x101a3ad
call esi
test eax, eax
jne 0x101a3a3
push 0x57
pop eax
and eax, 0xffff
or eax, 0x80070000
push eax
lea eax, [ebp - 0x224]
push eax
push 0x1006d00
push 2
call fcn.01028201
add esp, 0x10
push 1
push 1
push edi
lea eax, [ebp - 0x224]
push eax
call fcn.0101976e
jmp 0x101a65f
mov esi, dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
push ebx
lea eax, [ebp - 0x224]
push eax
push eax
call esi
test eax, eax
je 0x101a12f
cmp dword [ebp - 0xa3c], 0
lea eax, [ebp - 0x42c]
je 0x101a423
push dword [ebp - 0xa3c]
push ebx
push eax
call fcn.0100c535
push ebx
lea eax, [ebp - 0x42c]
push eax
push eax
call esi
test eax, eax
jne 0x101a433
jmp 0x101a12f
push 0x1006cf8
push 0x103
push eax
call fcn.0100c535
lea eax, [ebp - 0x224]
push eax
lea eax, [ebp - 0x42c]
push eax
push 0x1006cf0
lea eax, [ebp - 0xa34]
push 0x400
push eax
call fcn.01018137
add esp, 0x14
test eax, eax
jl 0x101a62f
lea eax, [ebp - 0xa34]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x101a46b
and dword [ebp - 0xa44], 0
mov esi, 0x1006ce4
lea edi, [ebp - 0x10]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov esi, 0x1006cd8
lea edi, [ebp - 0x1c]
movsd dword es:[edi], dword [esi]
sub eax, edx
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xa40], eax
push ebx
lea eax, [ebp - 0x634]
push eax
movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
test eax, eax
je 0x101a12f
push 0x1006cbc
push ebx
lea eax, [ebp - 0x634]
push eax
call fcn.0100d4ff
xor edi, edi
push edi
push 0x8000080
push 4
push edi
push edi
push 0xc0000000
lea eax, [ebp - 0x634]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov esi, eax
cmp esi, 0xffffffff
mov dword [ebp - 0xa48], esi
je 0x101a12f
push edi
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
cmp ebx, 0xffffffff
jne 0x101a50b
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x101a12f
mov eax, dword [ebp - 0xa40]
push edi
lea eax, [ebx + eax + 0xa]
push eax
push edi
push 4
push edi
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileMappingW]
cmp eax, edi
mov dword [ebp - 0xa3c], eax
je 0x101a617
push edi
push edi
push edi
push 2
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
cmp eax, edi
mov dword [ebp - 0xa38], eax
je 0x101a60b
cmp ebx, edi
jbe 0x101a564
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0xa38]
call dword [sym.imp.msvcrt.dll_strstr]
cmp eax, edi
pop ecx
pop ecx
jne 0x101a591
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0xa38]
push 0xb
add eax, ebx
push eax
call fcn.01018115
lea eax, [ebp - 0x10]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x101a57e
sub eax, esi
add ebx, eax
mov dword [ebp - 0xa44], ebx
jmp 0x101a5cd
push 0xa
push eax
call dword [sym.imp.msvcrt.dll_strchr]
mov esi, eax
cmp esi, edi
pop ecx
pop ecx
je 0x101a5cd
mov eax, dword [ebp - 0xa38]
inc esi
sub eax, esi
add eax, ebx
push eax
mov eax, dword [ebp - 0xa40]
add eax, esi
push esi
push eax
call dword [sym.imp.msvcrt.dll_memmove]
add esp, 0xc
sub esi, dword [ebp - 0xa38]
mov dword [ebp - 0xa44], esi
mov eax, dword [ebp - 0xa38]
mov edx, dword [ebp - 0xa44]
mov ecx, dword [ebp - 0xa40]
lea edi, [eax + edx]
mov edx, ecx
shr ecx, 2
lea esi, [ebp - 0xa34]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
add ebx, dword [ebp - 0xa40]
mov esi, dword [ebp - 0xa48]
xor edi, edi
push dword [ebp - 0xa3c]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push edi
push edi
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push esi
call dword [sym.imp.KERNEL32.dll_SetEndOfFile]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x224]
push eax
push 0x1006d3c
push 2
call fcn.01028201
add esp, 0xc
push 0
lea eax, [ebp - 0x224]
mov ecx, 0x102bd30
push eax
push 8
call fcn.010185c0
mov eax, 0xd2af9
pop edi
mov ecx, dword [ebp - 4]
pop esi
pop ebx
call fcn.0101672d
leave
ret 0x18