If it’s work fine with safe mode then I would suggest you to perform clean boot form the safe mode to find out which program is causing the issue.
Perform clean boot and check if it helps.
How to configure Windows XP to start in a "clean boot" state :
Note: Once you are done with the troubleshooting, perform the steps in “Steps to configure Windows to use a Normal startup state “ to reset computer as usual.
a. Go to the "Start" menu.
b. Click "My Computer".
c. Double-click on the "C:" drive.
d. Double-click on the "Windows" folder.
e. Double-click the "System 32" folder.
f. Double-click on the "Dllcache" folder.
g. Locate the Rundll32.exe file, right-click on it and then select "Copy."
h. Click on the "Back" button in the Windows Explorer to get back to the "System 32" folder
i. Right-click any open space and then click "Paste” and check if it helps.