Function at 0x4ae340
Capabilities:
Check if file exists
Delete file
Get file attributes
Get file size
Read file on windows
Timestomp file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
mov eax, 0x8674
call fcn.006ab750
push ebx
mov ebx, dword [ebp + 0x10]
mov edx, dword [ebx + 4]
push esi
push edi
lea esi, [esp + 0x68]
call fcn.004ad160
push 0
push 0x32
mov eax, esi
push eax
lea ecx, [esp + 0x484]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathCompactPathExW]
mov esi, dword [ebp + 0xc]
mov edx, dword [esi]
mov eax, dword [edx + 0x20]
push 0
push 0x6f0fdc
mov ecx, esi
call eax
mov edx, dword [esi]
mov edx, dword [edx + 0x20]
push 1
lea eax, [esp + 0x47c]
push eax
mov ecx, esi
call edx
fldz
mov eax, dword [esi]
mov edx, dword [eax + 0x24]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call edx
mov eax, dword [ebx + 4]
lea edi, [esp + 0x270]
call fcn.004ad090
mov eax, edi
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4ae3dd
mov eax, dword [ebp + 8]
mov dword [eax], 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [ebx]
push 3
push 1
push SysReAllocStringLen
push eax
mov eax, 0x3e8
call fcn.004abf70
mov edi, eax
cmp edi, 0xffffffff
mov dword [esp + 0x24], edi
je 0x4ae3cb
mov ebx, dword [ebx + 4]
push 2
push 0
push 0xc0000000
push ebx
mov eax, 0x3e8
call fcn.004abf70
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
jne 0x4ae439
mov esi, dword [ebp + 8]
push edi
mov dword [esi], 2
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
lea ecx, [esp + 0x44]
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x4ae457
xor edi, edi
xor ebx, ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], ebx
jmp 0x4ae46b
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], eax
mov ebx, eax
mov edi, edx
test ebx, ebx
fldz
fstp qword [esp + 0x30]
mov dword [esp + 0x20], 0
ja 0x4ae4e3
test edi, edi
ja 0x4ae4e3
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0x30]
push ecx
push 0
push 0
push edx
call dword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x4ae4bd
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x38]
push edx
push 0
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x24]
push 0
push eax
mov dword [esp + 0x4c], ecx
call dword [sym.imp.KERNEL32.dll_SetFileTime]
mov edx, dword [esi]
fld1
mov eax, dword [edx + 0x24]
sub esp, 8
mov ecx, esi
fstp qword [esp]
call eax
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x4ae630
mov esi, dword [ebp + 0xc]
mov edx, dword [esi]
mov eax, dword [edx]
mov ecx, esi
call eax
test al, al
jne 0x4ae606
test ebx, ebx
mov esi, 0x8000
ja 0x4ae504
jb 0x4ae502
cmp edi, esi
jae 0x4ae504
mov esi, edi
mov eax, dword [esp + 0x24]
push 0
lea ecx, [esp + 0x50]
push ecx
push esi
lea edx, [esp + 0x68c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
cmp dword [esp + 0x4c], esi
jne 0x4ae657
mov eax, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0x48]
push ecx
push esi
lea edx, [esp + 0x68c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [esp + 0x44], esi
jne 0x4ae657
mov edx, dword [esp + 0x28]
sub edi, esi
mov esi, dword [esp + 0x2c]
sbb ebx, 0
mov ecx, edx
sub ecx, edi
mov dword [esp + 0x58], ecx
mov eax, esi
sbb eax, ebx
mov ecx, eax
and eax, 0x7fffffff
and ecx, 0x80000000
mov dword [esp + 0x5c], eax
fild qword [esp + 0x58]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], 0
fild qword [esp + 0x50]
mov eax, esi
mov ecx, esi
and eax, 0x7fffffff
fchs
mov dword [esp + 0x64], eax
faddp st(1)
and ecx, 0x80000000
mov dword [esp + 0x60], edx
fild qword [esp + 0x60]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x38], 0
fild qword [esp + 0x38]
fchs
faddp st(1)
fdivp st(1)
fld qword [esp + 0x30]
fsubr st(1)
fcomp qword [0x723630]
fnstsw ax
test ah, 1
jne 0x4ae5ea
mov ecx, dword [ebp + 0xc]
fst qword [esp + 0x30]
mov edx, dword [ecx]
mov eax, dword [edx + 0x24]
sub esp, 8
fstp qword [esp]
call eax
jmp 0x4ae5ec
fstp st(0)
test ebx, ebx
ja 0x4ae4e0
jb 0x4ae5fe
test edi, edi
ja 0x4ae4e0
mov esi, dword [ebp + 0xc]
jmp 0x4ae481
mov dword [esp + 0x20], 1
mov ecx, dword [esp + 0x1c]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push ecx
call esi
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 4]
push eax
mov dword [esp + 0x20], 0xffffffff
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [esp + 0x1c]
cmp eax, 0xffffffff
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x20]
mov dword [edi], ecx
je 0x4ae645
push eax
call esi
mov edx, dword [esp + 0x24]
push edx
call esi
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov dword [esp + 0x20], 2
jmp 0x4ae60e