Function at 0x406da2
Capabilities:
Delete file
Get file attributes
Move file
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x28d0
call fcn.0041e970
push edi
mov byte [ebp - 0x28a0], 0
mov ecx, 0xa27
xor eax, eax
lea edi, [ebp - 0x289f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and eax, 1
test eax, eax
je 0x406de6
push 0
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 0
push 0x80000000
push 3
push 0
push 3
push 0x40000000
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebp - 0x28b4], eax
cmp dword [ebp - 0x28b4], 0xffffffff
jne 0x406e25
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00406bb9
add esp, 4
jmp 0x407068
cmp dword [ebp + 0x10], 0
jne 0x406e35
cmp dword [ebp + 0xc], 0
je 0x407017
mov eax, dword [ebp + 0x10]
sub eax, 1
mov dword [ebp + 0x10], eax
cmp dword [ebp + 0x10], 0xffffffff
jne 0x406e53
cmp dword [ebp + 0xc], 0
je 0x406e53
mov ecx, dword [ebp + 0xc]
sub ecx, 1
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x28c0], edx
push 0
lea eax, [ebp - 0x28c0]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp - 0x28b4]
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
push 1
mov eax, dword [ebp - 0x28b4]
push eax
call fcn.004065e7
add esp, 0xc
and eax, 0xff
test eax, eax
jne 0x406eb3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00406bb9
add esp, 4
mov ecx, dword [ebp - 0x28b4]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x407068
push 0
push 0
push 0
mov edx, dword [ebp - 0x28b4]
push edx
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x28b0], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x28ac], ecx
mov dword [ebp - 0x28bc], 0
mov dword [ebp - 0x28b8], 0
mov edx, dword [ebp - 0x28b8]
cmp edx, dword [ebp - 0x28ac]
ja 0x407017
jb 0x406f12
mov eax, dword [ebp - 0x28bc]
cmp eax, dword [ebp - 0x28b0]
jae 0x407017
xor ecx, ecx
mov cl, byte [0x42cd2c]
test ecx, ecx
je 0x406f30
mov edx, dword [ebp - 0x28b4]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x407068
mov eax, dword [ebp - 0x28b0]
sub eax, dword [ebp - 0x28bc]
mov ecx, dword [ebp - 0x28ac]
sbb ecx, dword [ebp - 0x28b8]
mov dword [ebp - 0x28c8], eax
mov dword [ebp - 0x28c4], ecx
cmp dword [ebp - 0x28c4], 0
ja 0x406f91
jb 0x406f6b
cmp dword [ebp - 0x28c8], 0x10000
jae 0x406f91
mov edx, dword [ebp - 0x28b0]
sub edx, dword [ebp - 0x28bc]
mov eax, dword [ebp - 0x28ac]
sbb eax, dword [ebp - 0x28b8]
mov dword [ebp - 0x28d0], edx
mov dword [ebp - 0x28cc], eax
jmp 0x406fa5
mov dword [ebp - 0x28d0], 0x10000
mov dword [ebp - 0x28cc], 0
mov ecx, dword [ebp - 0x28d0]
mov dword [ebp - 0x28a8], ecx
mov edx, dword [ebp - 0x28cc]
mov dword [ebp - 0x28a4], edx
mov eax, dword [ebp - 0x28a8]
xor ecx, ecx
push ecx
push eax
mov edx, dword [ebp - 0x28b4]
push edx
call fcn.004065e7
add esp, 0xc
and eax, 0xff
test eax, eax
jne 0x406fee
mov eax, dword [ebp - 0x28b4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x407068
mov ecx, dword [ebp - 0x28bc]
add ecx, dword [ebp - 0x28a8]
mov edx, dword [ebp - 0x28b8]
adc edx, dword [ebp - 0x28a4]
mov dword [ebp - 0x28bc], ecx
mov dword [ebp - 0x28b8], edx
jmp 0x406eec
mov eax, dword [ebp - 0x28b4]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [ebp - 0x28a0]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.00406a96
add esp, 8
lea eax, [ebp - 0x28a0]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x407068
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00406bb9
add esp, 4
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x28a0]
push edx
call dword [sym.imp.KERNEL32.dll_MoveFileA]
pop edi
mov esp, ebp
pop ebp
ret