Function at 0x4148d0
Capabilities:
Check if file exists
Get disk size
Get file attributes
Get file size
Set file attributes
Timestomp file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov ecx, dword [0x260de70]
sub esp, 0x3c
push ebx
push esi
mov esi, eax
movzx eax, word [0x260dd88]
push edi
push 0
lea eax, [eax + ecx + 0x4b9000]
push esi
push eax
call fcn.00405f50
add esp, 0xc
mov edx, 0x2616118
mov cl, byte [eax]
mov byte [edx], cl
inc eax
inc edx
test cl, cl
jne 0x414903
test esi, esi
jne 0x414934
mov al, byte [0x260dd80]
cmp al, 2
jbe 0x414939
mov edx, 1
or word [0x260ddac], dx
mov word [0x260dd80], dx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov al, byte [0x260dd8c]
movzx eax, al
cmp eax, 0xff
jg case.default.0x414956
je 0x414bfc
cmp eax, 8
ja case.default.0x414956
jmp dword [eax*4 + 0x414c5c]
push 0x2616118
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x414999
and eax, 0x37
mov word [0x260dd84], ax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x260dd84]
and eax, 0x37
push eax
push 0x2616118
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x414c55
call dword [sym.imp.KERNEL32.dll_GetLastError]
call fcn.00407670
or word [0x260ddac], 1
mov word [0x260dd80], ax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0x2616118
call dword [sym.imp.KERNEL32.dll_GetCompressedFileSizeA]
mov esi, eax
xor ebx, ebx
cmp esi, 0xffffffff
je 0x414999
test esi, esi
je 0x414a3d
push ebx
push 0x80
push 3
push ebx
push 1
push 0x80000000
push 0x2616118
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x414a06
push ebx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push edi
mov ebx, eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp esi, ebx
jne 0x414a3d
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x18]
push eax
push 0x2616118
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceA]
test eax, eax
je 0x414a3d
mov ecx, dword [esp + 0xc]
imul ecx, dword [esp + 0x10]
dec esi
dec ecx
or ecx, esi
inc ecx
mov esi, ecx
mov word [0x260dd80], si
shr esi, 0x10
mov word [0x260dd88], si
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x414b37
push 0
push 0x80
push 3
push 0
push 3
push 0x100
push 0x2616118
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x414999
movzx eax, word [0x260dd84]
movzx ecx, word [0x260dd9c]
lea edx, [esp + 0x1c]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_DosDateTimeToFileTime]
cmp byte [0x260dd8c], 7
jne 0x414acb
movzx eax, word [0x260dd98]
mov ecx, dword [esp + 0x1c]
imul eax, eax, 0x186a0
mov edi, dword [esp + 0x20]
cdq
add ecx, eax
adc edi, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_LocalFileTimeToFileTime]
mov al, byte [0x260dd8c]
xor ecx, ecx
cmp al, 3
setne cl
lea edx, [esp + 0x14]
dec ecx
and ecx, edx
push ecx
xor ecx, ecx
cmp al, 5
setne cl
dec ecx
and ecx, edx
push ecx
xor ecx, ecx
cmp al, 7
setne cl
dec ecx
and ecx, edx
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
jne 0x414b29
call dword [sym.imp.KERNEL32.dll_GetLastError]
call fcn.00407670
or word [0x260ddac], 1
mov word [0x260dd80], ax
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 1
or word [0x260ddac], ax
mov word [0x260dd80], ax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x414be2
lea ecx, [esp + 0x24]
push ecx
push 0
push 0x2616118
call dword [sym.imp.KERNEL32.dll_GetFileAttributesExA]
test eax, eax
je 0x414999
cmp byte [0x260dd8c], 4
lea eax, [esp + 0x38]
je 0x414b83
lea eax, [esp + 0x30]
lea edx, [esp + 0x1c]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
push 0x260dd84
push 0x260dd9c
lea eax, [esp + 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_FileTimeToDosDateTime]
cmp byte [0x260dd8c], 8
jne 0x414c55
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
push 0
push 0x186a0
push ecx
push eax
call fcn.0049ccc0
push 0
push 0xc8
push edx
push eax
call fcn.0049d090
mov word [0x260dd98], ax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 1
or word [0x260ddac], cx
mov word [0x260dd80], cx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
jne case.default.0x414956
mov edx, 0x5053
cmp word [0x260dd94], dx
jne case.default.0x414956
mov al, byte [0x260dd84]
cmp al, 0x39
jne 0x414c26
lea eax, [esi + 1]
call fcn.00413ca0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp al, 0x56
jne case.default.0x414956
mov esi, 1
call fcn.00416cd0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
neg esi
sbb esi, esi
and esi, 0x70ff
inc esi
or word [0x260ddac], 1
mov word [0x260dd80], si
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret