Unable to install DirectX 9.0c/DecodePointer missing in KERNEL32.dll

Hello, for some reason I cannot seem to update the DirectX version on my PC. It is currently 9.0b, and whenever I try running the DXSETUP in the DirectX Redist (June 2010), I get the message 'The procedure entry point DecodePointer could not be located in the dynamic link library KERNEL32.dll.' This also appears when I attempt to run dxwebsetup.

DirectX 9.0b was installed from a Leadtek graphics driver card, I don't know why DirectX 9.0c doesn't work.

Can anyone please help me out? I currently have installed Windows XP Professional SP2.

EDIT: Tried installing SP2 and Windows wouldn't boot, a BSOD would appear for a millisecond before booting up again, have formatted computer and put fresh installation - still trying to run DXSETUP, although the same 'The procedure entry point DecodePointer could not be located in the dynamic link library KERNEL32.dll.' message pops up. Back to DirectX 8.1 now.
 
I thought XP SP2 had DX 9.0c already too, I don't have any idea why it's 8.1 lol. I found out that you had to download DX 9.0b redist and 9.0c redist, roll back to 8.1 and then swap the cab files from 9.0c into 9.0b then install using the 9.0b DXSETUP. However, the problem is, I can't find the right redists - Microsoft doesn't seem to have specific months on their site which I need. (I'm not sure if you need matching DXs... but... idk lol)