Doesn't appear we handle bignums > 32bits correctly, and the code itself is uncommented, undocumented, and doesn't handle errors in any sane way.