Function at 0x42dab4
Capabilities:
Check if file exists
Copy file
Get common file path
Get file attributes
Move file

Disassembly:
push 0x10
mov eax, 0x4334e3
call fcn.00430dc8
push 0x40e49c
push 0x14
call fcn.00430ff4
mov esi, eax
xor ebx, ebx
mov dword [ebp - 0x14], esi
pop ecx
pop ecx
test esi, esi
je 0x42daf4
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 0x44]
mov dword [esi], 0x40d11c
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
or dword [esi + 0x10], 0xffffffff
mov dword [esi + 4], ecx
jmp 0x42daf9
mov esi, ebx
mov dword [ebp - 0x14], ebx
push dword [ebp + 0x10]
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
mov dword [ebp - 0x1c], edi
push 0x5c
push edi
mov dword [ebp - 4], ebx
call dword [sym.imp.msvcrt.dll_wcsrchr]
pop ecx
pop ecx
xor ecx, ecx
mov dword [ebp - 0x18], eax
push edi
mov word [eax + 2], cx
call fcn.00428bf7
push edi
call fcn.00428ea9
cmp byte [0x43821a], 0
mov byte [ebp - 0xd], al
je 0x42db45
push dword [ebp + 0x10]
push 0x40d4dc
call sub.msvcrt.dll_wprintf
pop ecx
pop ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x3c]
cmp eax, 5
jne 0x42dc85
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov word [eax], cx
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x42db61
sub ecx, edx
sar ecx, 1
lea eax, [ecx + 0x104]
push eax
push ebx
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov esi, eax
mov dword [ebp - 0x18], esi
push esi
push ebx
push 0x40d514
push edi
mov byte [ebp - 4], 1
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
test eax, eax
jne 0x42dbd5
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [0x438217], 0
mov ecx, eax
jne 0x42dbb0
cmp byte [ebp - 0xd], 0
jne 0x42dbd5
test ecx, ecx
jg 0x42dbb8
mov eax, ecx
jmp 0x42dbc0
movzx eax, cx
or eax, 0x80070000
push ecx
push edi
push 0x40d520
push eax
call fcn.00424ce6
add esp, 0x10
jmp 0x42dc63
push ebx
push esi
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x42dc18
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [0x438217], 0
mov ecx, eax
jne 0x42dbfc
mov bl, byte [ebp - 0xd]
test bl, bl
jne 0x42dc1b
test ecx, ecx
jg 0x42dc04
mov eax, ecx
jmp 0x42dc0c
movzx eax, cx
or eax, 0x80070000
push ecx
push esi
push dword [ebp + 0xc]
push 0x40d598
jmp 0x42dc5a
mov bl, byte [ebp - 0xd]
push 5
push dword [ebp + 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x42dc72
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp byte [0x438217], 0
mov ecx, eax
jne 0x42dc40
test bl, bl
jne 0x42dc72
test ecx, ecx
jg 0x42dc48
mov eax, ecx
jmp 0x42dc50
movzx eax, cx
or eax, 0x80070000
push ecx
push dword [ebp + 0x10]
push esi
push 0x40d5f8
push eax
call fcn.00424ce6
add esp, 0x14
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov bl, byte [ebp - 0xd]
jmp 0x42dd7d
mov eax, dword [ebp + 8]
push esi
mov byte [eax + 0x40], 1
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
jmp 0x42dd72
cmp eax, 1
jne 0x42dcb4
push ebx
push ebx
push eax
push ebx
push ebx
push 0x40000000
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x18], eax
cmp eax, 0xffffffff
jne 0x42dd59
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x50
jmp 0x42dd22
cmp eax, 2
je 0x42dcdf
cmp eax, 4
je 0x42dcdf
cmp eax, 7
je 0x42dcdf
cmp eax, 3
je 0x42dcdf
cmp eax, 8
je 0x42dcdf
cmp eax, 6
je 0x42dcdf
mov eax, dword [ebp + 8]
cmp dword [eax + 0x60], 2
jne 0x42dd72
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
push ebx
lea ecx, [eax + 1]
neg ecx
sbb ecx, ecx
and ecx, eax
push ecx
push 2
push ebx
push ebx
push 0x40000000
push dword [ebp + 0x10]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x18], eax
cmp eax, 0xffffffff
jne 0x42dd59
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x20
je 0x42dd7d
cmp eax, 0x4c8
je 0x42dd7d
cmp eax, 0x21
je 0x42dd7d
cmp byte [0x438217], 0
mov bl, byte [ebp - 0xd]
jne 0x42dd34
test bl, bl
jne 0x42dd56
test eax, eax
jg 0x42dd3c
mov ecx, eax
jmp 0x42dd45
movzx ecx, ax
or ecx, 0x80070000
push eax
push 0x40a2f0
push ecx
call fcn.00424ce6
add esp, 0xc
jmp 0x42dd7d
mov eax, dword [ebp - 0x18]
push dword [ebp + 0x10]
lea ecx, [esi + 0xc]
mov dword [esi + 0x10], eax
call fcn.0041b366
push dword [ebp + 0xc]
lea ecx, [esi + 8]
call fcn.0041b366
mov ecx, dword [ebp + 8]
mov bl, 1
mov eax, dword [ebp - 0x14]
mov dword [ecx + 0x44], eax
push edi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov al, bl
call fcn.00430d96
ret 0xc