So,
Try the chkdsk command in command line. Type "cmd" in the searchbar in start, then open it as administrator. In that windows, type, without quotation marks: "chkdsk X:" Where "X" is letter of your drive, C, D etc. Test all your drives. Also you can download HDtune, and perform full scan, not fast one. It will test whole drive for possible errors.
I have seen it freeze on the battery.
Only on battery? No freezes on power supply? If only on battery, maybe try to change power settings, for exaple set it to high performance. I know it will drain battery faster, but just for the test.
I would like to suggest to update BIOS, but we did not know it laptop won't freeze during that process. It wolud brick it. So maybe leave it for now.
I can see that latest BIOS is from last year,
here. Can you check what version do you have? It should be in HWinfo somewhere under the motherboard line.