I'm not sure where you got any of those numbers from.
A 32 windows executable is limited to 2GB of memory unless it has the LARGEADDRESSAWARE flag on, in which case it can access up to 3GB of memory. By default, 32 bit applications have the flag off.
https://msdn.microsoft.com/en-us/library/wz223b1z.aspx
Since a 32 bit application (without the LARGEADDRESSAWARE flag on) would need to reserve room for itself, it wouldn't be able to handle a 2GB blob.