Function at 0x402ada
Capabilities:
Delete file
Get common file path
Move file
Set file attributes

Disassembly:
push 0x5c
mov eax, 0x4384be
call fcn.0041ea7e
cmp byte [0x451804], 0
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], edi
jne 0x402b00
call fcn.004029a2
mov eax, dword [ebp + 8]
cmp eax, dword [0x451800]
jle 0x402b13
xor eax, eax
inc eax
jmp 0x403019
mov eax, dword [0x45180c]
cmp eax, dword [0x442c14]
jne 0x402d62
call fcn.0040fd19
push eax
lea ecx, [ebp - 0x40]
call fcn.00401330
and dword [ebp - 4], 0
lea ecx, [ebp - 0x40]
mov esi, 0x104
push esi
call fcn.00403109
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x402c41
push 0xffffffffffffffff
lea ecx, [ebp - 0x40]
call fcn.0040318b
call fcn.0040fd19
push eax
lea ecx, [ebp - 0x48]
call fcn.00401330
push 0x4518a4
lea eax, [ebp - 0x40]
xor ebx, ebx
push eax
lea eax, [ebp - 0x44]
inc ebx
push eax
mov byte [ebp - 4], bl
call fcn.00402259
add esp, 0xc
push eax
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 2
call fcn.00402209
mov ecx, dword [ebp - 0x44]
mov byte [ebp - 4], bl
lea ecx, [ecx - 0x10]
call fcn.00401a64
push 0
push 0xffffffffffffffff
push 0
lea ecx, [ebp - 0x68]
call fcn.0040216b
mov esi, dword [ebp - 0x48]
lea eax, [ebp - 0x68]
push eax
push 0x3021
mov ebx, 0x451808
mov byte [ebp - 4], 3
push esi
mov ecx, ebx
call fcn.00410710
test eax, eax
jne 0x402c5c
push 0x43c10c
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.004022ae
add esp, 0xc
push 0x80
push dword [ebp - 0x44]
mov byte [ebp - 4], 4
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [ebp - 0x68]
mov ecx, ebx
push eax
push 0x3021
push dword [ebp - 0x44]
call fcn.00410710
mov ecx, dword [ebp - 0x44]
lea ecx, [ecx - 0x10]
test eax, eax
jne 0x402c53
call fcn.00401a64
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x68], vtable.CFileException.0
lea ecx, [ecx - 0x10]
call fcn.00401a64
lea ecx, [esi - 0x10]
call fcn.00401a64
mov ecx, dword [ebp - 0x40]
lea ecx, [ecx - 0x10]
call fcn.00401a64
xor eax, eax
jmp 0x403019
mov byte [ebp - 4], 3
call fcn.00401a64
mov ecx, ebx
call fcn.00410600
test edx, edx
jne 0x402c7a
test eax, eax
je 0x402d34
test edx, edx
jne 0x402c7a
cmp eax, 0x100000
jb 0x402cf2
mov ecx, ebx
call fcn.004104a0
push 0x4518a8
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00402259
add esp, 0xc
push 0x80
push dword [ebp - 0x44]
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
push dword [ebp - 0x44]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push dword [ebp - 0x44]
push esi
call dword [sym.imp.KERNEL32.dll_MoveFileW]
push 1
xor ecx, ecx
test eax, eax
pop eax
cmovne eax, ecx
mov ecx, ebx
mov dword [ebp - 0x4c], eax
lea eax, [ebp - 0x68]
push eax
push 0x3021
push esi
call fcn.00410710
mov ecx, dword [ebp - 0x44]
lea ecx, [ecx - 0x10]
test eax, eax
je 0x402c22
call fcn.00401a64
cmp dword [ebp - 0x4c], 0
je 0x402d34
mov ecx, ebx
mov byte [ebp - 4], 6
call fcn.0040338d
push 0x43c13c
mov ecx, ebx
call fcn.00410b30
push 0x43c13c
mov ecx, ebx
call fcn.00410b30
push 0x43c13c
mov ecx, ebx
call fcn.00410b30
jmp 0x402d34
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x68], vtable.CFileException.0
lea ecx, [ecx - 0x10]
call fcn.00401a64
lea ecx, [esi - 0x10]
call fcn.00401a64
mov ecx, dword [ebp - 0x40]
or dword [ebp - 4], 0xffffffff
lea ecx, [ecx - 0x10]
call fcn.00401a64
mov esi, dword [ebp - 0x54]
jmp 0x402d67
mov ebx, 0x451808
call fcn.0040fd19
push eax
lea ecx, [ebp - 0x48]
call fcn.00401330
lea eax, [ebp - 0x48]
mov dword [ebp - 4], 8
push eax
call fcn.004027cf
pop ecx
call fcn.0040fd19
push eax
lea ecx, [ebp - 0x40]
call fcn.00401330
mov eax, dword [esi]
mov byte [ebp - 4], 9
cmp dword [eax - 0xc], 0
jne 0x402dac
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
je 0x402eb7
push esi
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp - 0x44]
push eax
call fcn.00402259
push edi
push eax
lea eax, [ebp - 0x4c]
mov byte [ebp - 4], 0xa
push eax
call fcn.00402259
add esp, 0x18
push eax
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xb
call fcn.00402209
mov ecx, dword [ebp - 0x4c]
lea ecx, [ecx - 0x10]
call fcn.00401a64
mov ecx, dword [ebp - 0x44]
mov byte [ebp - 4], 9
lea ecx, [ecx - 0x10]
call fcn.00401a64
push 0
push 0x43c140
lea ecx, [ebp - 0x40]
call fcn.004025f8
mov esi, eax
cmp esi, 0xffffffff
je 0x402e86
lea ecx, [esi + 0x10]
push ecx
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x40]
call fcn.00402a29
push str.hidden
mov byte [ebp - 4], 0xc
call fcn.00423bce
pop ecx
push eax
push str.hidden
lea ecx, [ebp - 0x44]
call fcn.00402376
mov eax, dword [ebp - 0x40]
lea ecx, [ebp - 0x40]
mov eax, dword [eax - 0xc]
sub eax, esi
sub eax, 0x2e
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.0040333e
mov eax, dword [eax]
lea ecx, [ebp - 0x44]
mov byte [ebp - 4], 0xd
push dword [eax - 0xc]
push eax
call fcn.00402376
mov ecx, dword [ebp - 0x4c]
mov byte [ebp - 4], 0xc
lea ecx, [ecx - 0x10]
call fcn.00401a64
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x40]
call fcn.00402209
mov ecx, dword [ebp - 0x44]
lea ecx, [ecx - 0x10]
call fcn.00401a64
push dword [ebp - 0x40]
mov ecx, ebx
mov byte [ebp - 4], 0xe
call fcn.00410b30
push 0x43c13c
mov ecx, ebx
call fcn.00410b30
jmp 0x402eb0
mov dword [ebp - 4], 9
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x402fee
lea eax, [ebp - 0x48]
push eax
lea ecx, [ebp - 0x40]
call fcn.00402209
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx]
cmp dword [eax - 0xc], 0
jne 0x402ee1
mov eax, dword [edi]
cmp dword [eax - 0xc], 0
je 0x402ef7
mov edi, 0x43c17c
push edi
call fcn.00423bce
pop ecx
push eax
push edi
lea ecx, [ebp - 0x40]
call fcn.00402376
cmp esi, 0x186a0
jne 0x402f71
call dword [sym.imp.KERNEL32.dll_GetLastError]
and dword [ebp - 0x50], 0
mov esi, eax
push 0
push 0
lea eax, [ebp - 0x50]
push eax
push 0x400
push esi
push 0
push 0x1100
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push 0x43c180
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.004022ae
push dword [ebp - 0x50]
mov byte [ebp - 4], 0x10
push esi
push dword [eax]
lea eax, [ebp - 0x40]
push eax
call fcn.004027a3
mov ecx, dword [ebp - 0x4c]
add esp, 0x1c
mov byte [ebp - 4], 9
lea ecx, [ecx - 0x10]
call fcn.00401a64
push 0x43bfd8
push 0x43c13c
lea ecx, [ebp - 0x40]
call fcn.004031b7
jmp 0x402fcc
push 0xa
pop ecx
xor eax, eax
lea edi, [ebp - 0x3c]
rep stosd dword es:[edi], eax
push 0xa
lea eax, [ebp - 0x3c]
push eax
push esi
call fcn.00423fcb
mov esi, str.Error_Code:
push esi
call fcn.00423bce
add esp, 0x10
lea ecx, [ebp - 0x40]
push eax
push esi
call fcn.00402376
lea eax, [ebp - 0x3c]
push eax
call fcn.00423bce
pop ecx
push eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x40]
call fcn.00402376
mov esi, 0x43c13c
push esi
call fcn.00423bce
pop ecx
push eax
push esi
lea ecx, [ebp - 0x40]
call fcn.00402376
push dword [ebp - 0x40]
mov ecx, ebx
mov byte [ebp - 4], 0x11
call fcn.00410b30
jmp 0x402fe7
mov dword [ebp - 4], 9
mov ecx, ebx
mov byte [ebp - 4], 0x13
call fcn.00410500
mov ecx, dword [ebp - 0x40]
xor ebx, ebx
cmp dword [ebp + 0x14], ebx
sete bl
add ecx, 0xfffffff0
call fcn.00401a64
mov ecx, dword [ebp - 0x48]
add ecx, 0xfffffff0
call fcn.00401a64
mov eax, ebx
call fcn.0041e9cb
ret