Function at 0x401a5b
Capabilities:
Get file size
Read file on windows
Timestomp file
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x110
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
push ebx
xor ebx, ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov dword [ebp - 0xc8], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0xb4], eax
xor eax, eax
mov dword [ebp - 0xf8], ebx
lea edi, [ebp - 0xf4]
stosd dword es:[edi], eax
mov dword [ebp - 0x108], ebx
lea edi, [ebp - 0x104]
stosd dword es:[edi], eax
lea edi, [ebp - 0xfc]
mov dword [ebp - 0x100], ebx
stosd dword es:[edi], eax
lea eax, [ebp - 0xf8]
push eax
push ecx
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xcc], ecx
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xe4], ebx
mov dword [ebp - 0xdc], ebx
mov dword [ebp - 0xbc], ebx
mov dword [ebp - 0xb8], ebx
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xd0], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSizeEx]
push 0x40a1a8
push 0x3eb
push dword [ebp - 0xb4]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
push ebx
push ebx
push 0x402
push 0x3e9
push dword [ebp - 0xb4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov edi, dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
push ebx
push ebx
push esi
call edi
push ebx
lea eax, [ebp - 0xa0]
push eax
push 4
lea eax, [ebp - 0xa8]
push eax
push esi
mov esi, dword [sym.imp.KERNEL32.dll_ReadFile]
call esi
cmp dword [ebp - 0xa8], 0x54415056
je 0x401bc1
push 2
push ebx
push 0xfffffffffffffffc
push dword [ebp - 0xa4]
call edi
push ebx
lea eax, [ebp - 0xa0]
push eax
push 4
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0xa4]
call esi
push ebx
push ebx
push dword [ebp - 0xa8]
push dword [ebp - 0xa4]
call edi
push ebx
lea eax, [ebp - 0xa0]
push eax
push 4
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0xa4]
call esi
cmp dword [ebp - 0xa8], 0x54415056
je 0x401bc1
push 2
jmp 0x402230
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push ebx
lea eax, [ebp - 0xa0]
push eax
push 4
lea eax, [ebp - 0xb8]
push eax
push dword [ebp - 0xa4]
call esi
xor edi, edi
inc edi
test dword [ebp - 0xb8], 0x80000000
je 0x401bfc
mov dword [ebp - 0xbc], edi
and dword [ebp - 0xb8], 0xffffff
cmp dword [ebp - 0xbc], ebx
jne 0x401c2d
lea eax, [ebp - 0xe4]
push eax
push dword [ebp - 0xcc]
call section..text
pop ecx
pop ecx
test eax, eax
jne 0x401c3e
mov eax, edi
jmp 0x402231
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0xcc]
call fcn.004010c0
jmp 0x401c20
cmp dword [ebp - 0xb8], ebx
je 0x40222e
dec dword [ebp - 0xb8]
push ebx
lea eax, [ebp - 0xa0]
push eax
push 4
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 0xa4]
mov dword [ebp - 0xc4], ebx
mov dword [ebp - 0xe0], ebx
xor edi, edi
call esi
test eax, eax
je 0x401bba
push ebx
lea eax, [ebp - 0xa0]
push eax
cmp dword [ebp - 0xbc], ebx
jne 0x401cf4
push 4
lea eax, [ebp - 0xd4]
push eax
push dword [ebp - 0xa4]
mov dword [ebp - 0xd4], ebx
call esi
test eax, eax
je 0x401bba
push ebx
lea eax, [ebp - 0xa0]
push eax
push 4
lea eax, [ebp - 0xdc]
push eax
push dword [ebp - 0xa4]
call esi
test eax, eax
je 0x401bba
mov eax, dword [ebp - 0xe4]
cmp eax, dword [ebp - 0xdc]
jne 0x401ce7
mov dword [ebp - 0xac], 1
cmp eax, dword [ebp - 0xd4]
jne 0x401d61
xor edi, edi
inc edi
jmp 0x401d61
push 0x10
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0xa4]
call esi
test eax, eax
je 0x401bba
push ebx
lea eax, [ebp - 0xa0]
push eax
push 0x10
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0xa4]
call esi
test eax, eax
je 0x401bba
xor ecx, ecx
xor eax, eax
inc ecx
mov dl, byte [ebp + eax - 0x34]
cmp dl, byte [ebp + eax - 0x24]
jne 0x401d48
cmp eax, 0xf
jne 0x401d42
mov dword [ebp - 0xac], ecx
inc eax
cmp eax, 0x10
jl 0x401d2d
xor eax, eax
mov dl, byte [ebp + eax - 0x34]
cmp dl, byte [ebp + eax - 0x14]
jne 0x401d61
cmp eax, 0xf
jne 0x401d5b
mov edi, ecx
inc eax
cmp eax, 0x10
jl 0x401d4a
push ebx
lea eax, [ebp - 0xa0]
push eax
push 4
lea eax, [ebp - 0xe0]
push eax
push dword [ebp - 0xa4]
call esi
test eax, eax
je 0x401bba
push 0x40a190
push 0x3eb
push dword [ebp - 0xb4]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
cmp edi, ebx
jne 0x402159
xor eax, eax
mov dword [ebp - 0xec], ebx
lea edi, [ebp - 0xe8]
stosd dword es:[edi], eax
mov eax, dword [ebp - 0xe0]
push 1
cdq
lea ecx, [ebp - 0xec]
push ecx
push edx
push eax
push dword [ebp - 0xa4]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
cmp dword [ebp - 0xb8], ebx
jne 0x401c4a
cmp dword [ebp - 0xac], ebx
je 0x40222e
push 4
jmp 0x402230
mov edi, dword [ebp - 0xa4]
dec dword [ebp - 0xc4]
push ebx
lea eax, [ebp - 0xa0]
push eax
push 1
lea eax, [ebp - 0xad]
push eax
push edi
mov byte [ebp - 0xad], bl
call esi
test eax, eax
je 0x401bba
mov al, byte [ebp - 0xad]
cmp al, bl
jbe 0x401bba
cmp al, 3
jbe 0x401f46
cmp al, 4
jbe 0x401bba
cmp al, 7
jbe 0x401e65
cmp al, 0xff
jne 0x401bba
push ebx
lea eax, [ebp - 0xa0]
push eax
push 8
lea eax, [ebp - 0x110]
push eax
push edi
call esi
test eax, eax
je 0x401bba
jmp 0x402159
push ebx
cmp al, 5
jne 0x401e88
lea eax, [ebp - 0xa0]
push eax
push 1
lea eax, [ebp - 0xbd]
push eax
push edi
call esi
mov edi, eax
movzx eax, byte [ebp - 0xbd]
jmp 0x401ea8
cmp al, 6
lea eax, [ebp - 0xa0]
push eax
jne 0x401eb0
push 2
lea eax, [ebp - 0xd8]
push eax
push edi
call esi
mov edi, eax
movzx eax, word [ebp - 0xd8]
neg edi
sbb edi, edi
and edi, eax
jmp 0x401ec8
push 4
lea eax, [ebp - 0xf0]
push eax
push edi
call esi
mov edi, eax
neg edi
sbb edi, edi
and edi, dword [ebp - 0xf0]
cmp edi, ebx
je 0x401bba
mov eax, 0x4000
cmp edi, eax
ja 0x401edb
mov eax, edi
push ebx
lea ecx, [ebp - 0xa0]
push ecx
push eax
push 0x412e68
push dword [ebp - 0xa4]
call esi
test eax, eax
je 0x401bba
push ebx
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0xa0]
push 0x412e68
push dword [ebp - 0xc8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, 0x4000
cmp edi, 0x4000
ja 0x401f27
mov eax, edi
cmp dword [ebp - 0xa8], eax
jne 0x4021e9
sub edi, dword [ebp - 0xa8]
cmp dword [ebp - 0xa8], ebx
jne 0x401ed0
jmp 0x402159
push ebx
cmp al, 1
jne 0x401f6d
lea eax, [ebp - 0xa0]
push eax
push 1
lea eax, [ebp - 0xbe]
push eax
push edi
call esi
movzx ecx, byte [ebp - 0xbe]
neg eax
sbb eax, eax
and eax, ecx
jmp 0x401fa3
cmp al, 2
lea eax, [ebp - 0xa0]
push eax
jne 0x401f8d
push 2
lea eax, [ebp - 0xd4]
push eax
push edi
call esi
movzx ecx, word [ebp - 0xd4]
jmp 0x401f65
push 4
lea eax, [ebp - 0xe8]
push eax
push edi
call esi
neg eax
sbb eax, eax
and eax, dword [ebp - 0xe8]
mov dword [ebp - 0xac], eax
cmp eax, ebx
je 0x401bba
push ebx
lea eax, [ebp - 0xa0]
push eax
push 4
lea eax, [ebp - 0xa8]
push eax
push edi
call esi
test eax, eax
je 0x401bba
cmp dword [ebp - 0xa0], 4
jne 0x401bba
push ebx
xor eax, eax
lea ecx, [ebp - 0xc]
push ecx
mov dword [ebp - 0xc], ebx
lea edi, [ebp - 8]
stosd dword es:[edi], eax
mov eax, dword [ebp - 0xa8]
push ebx
push eax
push dword [ebp - 0xcc]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
mov eax, dword [ebp - 0xac]
mov edi, 0x4000
cmp eax, edi
jbe 0x40200d
mov eax, edi
push ebx
lea ecx, [ebp - 0xa0]
push ecx
push eax
push 0x412e68
push dword [ebp - 0xcc]
call esi
test eax, eax
je 0x4021e9
cmp dword [ebp - 0xd0], 0x32
jbe 0x40210a
push 0x31
lea eax, [ebp - 0x67]
push ebx
push eax
mov byte [ebp - 0x68], bl
call fcn.004027e0
push 0x31
lea eax, [ebp - 0x9b]
push ebx
push eax
mov byte [ebp - 0x9c], bl
call fcn.004027e0
add esp, 0x18
push 1
lea eax, [ebp - 0x108]
push eax
push dword [ebp - 0xfc]
push dword [ebp - 0x100]
push dword [ebp - 0xcc]
call dword [sym.imp.KERNEL32.dll_SetFilePointerEx]
fild qword [ebp - 0x108]
fild qword [ebp - 0xf8]
fdivp st(1)
fmul qword [0x40a188]
call fcn.00402766
mov edi, eax
push 0xa
lea eax, [ebp - 0x9c]
push eax
push edi
call fcn.0040931d
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x68]
push eax
call fcn.004025c0
lea eax, [ebp - 0x68]
push 0x40a180
push eax
call fcn.004025c0
add esp, 0x1c
push ebx
push edi
push 0x402
push 0x3e9
push dword [ebp - 0xb4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp - 0x68]
push eax
push 0x3ea
push dword [ebp - 0xb4]
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov dword [ebp - 0xd0], ebx
mov edi, 0x4000
inc dword [ebp - 0xd0]
push ebx
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 0xa0]
push 0x412e68
push dword [ebp - 0xc8]
call dword [sym.imp.KERNEL32.dll_WriteFile]
cmp dword [ebp - 0xac], edi
ja 0x40213d
mov edi, dword [ebp - 0xac]
mov eax, dword [ebp - 0xa8]
cmp eax, edi
jne 0x4021e9
sub dword [ebp - 0xac], eax
cmp eax, ebx
jne 0x401ffc
cmp dword [ebp - 0xc4], ebx
jne 0x401dec
dec dword [ebp - 0xc4]
push ebx
push 0x64
push 0x402
push 0x3e9
push dword [ebp - 0xb4]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov esi, dword [sym.imp.USER32.dll_SetDlgItemTextA]
push 0x40a17c
push 0x3ea
push dword [ebp - 0xb4]
call esi
push 0x40a168
push 0x3eb
push dword [ebp - 0xb4]
call esi
cmp dword [ebp - 0xbc], ebx
jne 0x4021ee
lea eax, [ebp - 0xbc]
push eax
push dword [ebp - 0xc8]
mov dword [ebp - 0xbc], ebx
call section..text
pop ecx
pop ecx
test eax, eax
je 0x4021e9
mov eax, dword [ebp - 0xbc]
cmp eax, dword [ebp - 0xdc]
je 0x402215
xor eax, eax
inc eax
jmp 0x402231
lea eax, [ebp - 0x14]
push eax
push dword [ebp - 0xc8]
call fcn.004010c0
pop ecx
pop ecx
test eax, eax
je 0x4021e9
xor eax, eax
mov cl, byte [ebp + eax - 0x14]
cmp cl, byte [ebp + eax - 0x24]
jne 0x4021e9
inc eax
cmp eax, 0x10
jl 0x402205
lea eax, [ebp - 0x110]
push eax
push ebx
push ebx
push dword [ebp - 0xc8]
call dword [sym.imp.KERNEL32.dll_SetFileTime]
xor eax, eax
jmp 0x402231
push 3
pop eax
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00402599
leave
ret