645beb:	89 44 24 48          	mov    %eax,0x48(%esp)
645bef:	89 54 24 4c          	mov    %edx,0x4c(%esp)
645bf3:	8b 44 24 10          	mov    0x10(%esp),%eax
645bf7:	8b 54 24 14          	mov    0x14(%esp),%edx
645bfb:	03 44 24 40          	add    0x40(%esp),%eax
645bff:	13 54 24 44          	adc    0x44(%esp),%edx
645c03:	89 44 24 10          	mov    %eax,0x10(%esp)
645c07:	89 54 24 14          	mov    %edx,0x14(%esp)
645c0b:	8b 44 24 40          	mov    0x40(%esp),%eax
645c0f:	8b 54 24 44          	mov    0x44(%esp),%edx
645c13:	03 44 24 48          	add    0x48(%esp),%eax
645c17:	13 54 24 4c          	adc    0x4c(%esp),%edx
645c1b:	89 44 24 30          	mov    %eax,0x30(%esp)
645c1f:	89 54 24 34          	mov    %edx,0x34(%esp)
645c23:	8b 44 24 10          	mov    0x10(%esp),%eax
645c27:	8b 54 24 14          	mov    0x14(%esp),%edx
645c2b:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
645c2f:	c1 ea 0e             	shr    $0xe,%edx
645c32:	52                   	push   %edx
645c33:	50                   	push   %eax
645c34:	8b 54 24 18          	mov    0x18(%esp),%edx
645c38:	c1 e2 12             	shl    $0x12,%edx
645c3b:	33 c0                	xor    %eax,%eax
645c3d:	0b 04 24             	or     (%esp),%eax
645c40:	0b 54 24 04          	or     0x4(%esp),%edx
645c44:	83 c4 08             	add    $0x8,%esp
645c47:	52                   	push   %edx
645c48:	50                   	push   %eax
645c49:	8b 44 24 18          	mov    0x18(%esp),%eax
645c4d:	8b 54 24 1c          	mov    0x1c(%esp),%edx
645c51:	0f ac d0 12          	shrd   $0x12,%edx,%eax
645c55:	c1 ea 12             	shr    $0x12,%edx
645c58:	52                   	push   %edx
645c59:	50                   	push   %eax
645c5a:	8b 54 24 20          	mov    0x20(%esp),%edx
645c5e:	c1 e2 0e             	shl    $0xe,%edx
645c61:	33 c0                	xor    %eax,%eax
645c63:	0b 04 24             	or     (%esp),%eax
645c66:	0b 54 24 04          	or     0x4(%esp),%edx
645c6a:	83 c4 08             	add    $0x8,%esp
645c6d:	33 04 24             	xor    (%esp),%eax
645c70:	33 54 24 04          	xor    0x4(%esp),%edx
645c74:	83 c4 08             	add    $0x8,%esp
645c77:	52                   	push   %edx
645c78:	50                   	push   %eax
645c79:	8b 44 24 1c          	mov    0x1c(%esp),%eax
645c7d:	c1 e8 09             	shr    $0x9,%eax
645c80:	33 d2                	xor    %edx,%edx
645c82:	52                   	push   %edx
645c83:	50                   	push   %eax
645c84:	8b 44 24 20          	mov    0x20(%esp),%eax
645c88:	8b 54 24 24          	mov    0x24(%esp),%edx
645c8c:	0f a4 c2 17          	shld   $0x17,%eax,%edx
645c90:	c1 e0 17             	shl    $0x17,%eax
645c93:	0b 04 24             	or     (%esp),%eax
645c96:	0b 54 24 04          	or     0x4(%esp),%edx
645c9a:	83 c4 08             	add    $0x8,%esp
645c9d:	33 04 24             	xor    (%esp),%eax
645ca0:	33 54 24 04          	xor    0x4(%esp),%edx
645ca4:	83 c4 08             	add    $0x8,%esp
645ca7:	03 44 24 28          	add    0x28(%esp),%eax
645cab:	13 54 24 2c          	adc    0x2c(%esp),%edx
645caf:	52                   	push   %edx
645cb0:	50                   	push   %eax
645cb1:	8b 44 24 18          	mov    0x18(%esp),%eax
645cb5:	8b 54 24 1c          	mov    0x1c(%esp),%edx
645cb9:	23 44 24 20          	and    0x20(%esp),%eax
645cbd:	23 54 24 24          	and    0x24(%esp),%edx
645cc1:	52                   	push   %edx
645cc2:	50                   	push   %eax
645cc3:	8b 44 24 20          	mov    0x20(%esp),%eax
645cc7:	8b 54 24 24          	mov    0x24(%esp),%edx
645ccb:	f7 d0                	not    %eax
645ccd:	f7 d2                	not    %edx
645ccf:	23 44 24 30          	and    0x30(%esp),%eax
645cd3:	23 54 24 34          	and    0x34(%esp),%edx
645cd7:	33 04 24             	xor    (%esp),%eax
645cda:	33 54 24 04          	xor    0x4(%esp),%edx
645cde:	83 c4 08             	add    $0x8,%esp
645ce1:	03 04 24             	add    (%esp),%eax
645ce4:	13 54 24 04          	adc    0x4(%esp),%edx
645ce8:	83 c4 08             	add    $0x8,%esp
645ceb:	05 99 eb 8e df       	add    $0xdf8eeb99,%eax
645cf0:	81 d2 4c 77 48 27    	adc    $0x2748774c,%edx
645cf6:	03 84 24 e0 01 00 00 	add    0x1e0(%esp),%eax
645cfd:	13 94 24 e4 01 00 00 	adc    0x1e4(%esp),%edx
645d04:	89 44 24 40          	mov    %eax,0x40(%esp)
645d08:	89 54 24 44          	mov    %edx,0x44(%esp)
645d0c:	8b 44 24 30          	mov    0x30(%esp),%eax
645d10:	8b 54 24 34          	mov    0x34(%esp),%edx
645d14:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
645d18:	c1 ea 1c             	shr    $0x1c,%edx
645d1b:	52                   	push   %edx
645d1c:	50                   	push   %eax
645d1d:	8b 54 24 38          	mov    0x38(%esp),%edx
645d21:	c1 e2 04             	shl    $0x4,%edx
645d24:	33 c0                	xor    %eax,%eax
645d26:	0b 04 24             	or     (%esp),%eax
645d29:	0b 54 24 04          	or     0x4(%esp),%edx
645d2d:	83 c4 08             	add    $0x8,%esp
645d30:	52                   	push   %edx
645d31:	50                   	push   %eax
645d32:	8b 44 24 3c          	mov    0x3c(%esp),%eax
645d36:	c1 e8 02             	shr    $0x2,%eax
645d39:	33 d2                	xor    %edx,%edx
645d3b:	52                   	push   %edx
645d3c:	50                   	push   %eax
645d3d:	8b 44 24 40          	mov    0x40(%esp),%eax
645d41:	8b 54 24 44          	mov    0x44(%esp),%edx
645d45:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
645d49:	c1 e0 1e             	shl    $0x1e,%eax
645d4c:	0b 04 24             	or     (%esp),%eax
645d4f:	0b 54 24 04          	or     0x4(%esp),%edx
645d53:	83 c4 08             	add    $0x8,%esp
645d56:	33 04 24             	xor    (%esp),%eax
645d59:	33 54 24 04          	xor    0x4(%esp),%edx
645d5d:	83 c4 08             	add    $0x8,%esp
645d60:	52                   	push   %edx
645d61:	50                   	push   %eax
645d62:	8b 44 24 3c          	mov    0x3c(%esp),%eax
645d66:	c1 e8 07             	shr    $0x7,%eax
645d69:	33 d2                	xor    %edx,%edx
645d6b:	52                   	push   %edx
645d6c:	50                   	push   %eax
645d6d:	8b 44 24 40          	mov    0x40(%esp),%eax
645d71:	8b 54 24 44          	mov    0x44(%esp),%edx
645d75:	0f a4 c2 19          	shld   $0x19,%eax,%edx
645d79:	c1 e0 19             	shl    $0x19,%eax
645d7c:	0b 04 24             	or     (%esp),%eax
645d7f:	0b 54 24 04          	or     0x4(%esp),%edx
645d83:	83 c4 08             	add    $0x8,%esp
645d86:	33 04 24             	xor    (%esp),%eax
645d89:	33 54 24 04          	xor    0x4(%esp),%edx
645d8d:	83 c4 08             	add    $0x8,%esp
645d90:	52                   	push   %edx
645d91:	50                   	push   %eax
645d92:	8b 44 24 38          	mov    0x38(%esp),%eax
645d96:	8b 54 24 3c          	mov    0x3c(%esp),%edx
645d9a:	23 44 24 40          	and    0x40(%esp),%eax
645d9e:	23 54 24 44          	and    0x44(%esp),%edx
645da2:	52                   	push   %edx
645da3:	50                   	push   %eax
645da4:	8b 44 24 40          	mov    0x40(%esp),%eax
645da8:	8b 54 24 44          	mov    0x44(%esp),%edx
645dac:	23 44 24 10          	and    0x10(%esp),%eax
645db0:	23 54 24 14          	and    0x14(%esp),%edx
645db4:	33 04 24             	xor    (%esp),%eax
645db7:	33 54 24 04          	xor    0x4(%esp),%edx
645dbb:	83 c4 08             	add    $0x8,%esp
645dbe:	52                   	push   %edx
645dbf:	50                   	push   %eax
645dc0:	8b 44 24 48          	mov    0x48(%esp),%eax
645dc4:	8b 54 24 4c          	mov    0x4c(%esp),%edx
645dc8:	23 44 24 10          	and    0x10(%esp),%eax
645dcc:	23 54 24 14          	and    0x14(%esp),%edx
645dd0:	33 04 24             	xor    (%esp),%eax
645dd3:	33 54 24 04          	xor    0x4(%esp),%edx
645dd7:	83 c4 08             	add    $0x8,%esp
645dda:	03 04 24             	add    (%esp),%eax
645ddd:	13 54 24 04          	adc    0x4(%esp),%edx
645de1:	83 c4 08             	add    $0x8,%esp
645de4:	89 44 24 48          	mov    %eax,0x48(%esp)
645de8:	89 54 24 4c          	mov    %edx,0x4c(%esp)
645dec:	8b 44 24 08          	mov    0x8(%esp),%eax
645df0:	8b 54 24 0c          	mov    0xc(%esp),%edx
645df4:	03 44 24 40          	add    0x40(%esp),%eax
645df8:	13 54 24 44          	adc    0x44(%esp),%edx
645dfc:	89 44 24 08          	mov    %eax,0x8(%esp)
645e00:	89 54 24 0c          	mov    %edx,0xc(%esp)
645e04:	8b 44 24 40          	mov    0x40(%esp),%eax
645e08:	8b 54 24 44          	mov    0x44(%esp),%edx
645e0c:	03 44 24 48          	add    0x48(%esp),%eax
645e10:	13 54 24 4c          	adc    0x4c(%esp),%edx
645e14:	89 44 24 28          	mov    %eax,0x28(%esp)
645e18:	89 54 24 2c          	mov    %edx,0x2c(%esp)
645e1c:	8b 44 24 08          	mov    0x8(%esp),%eax
645e20:	8b 54 24 0c          	mov    0xc(%esp),%edx
645e24:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
645e28:	c1 ea 0e             	shr    $0xe,%edx
645e2b:	52                   	push   %edx
645e2c:	50                   	push   %eax
645e2d:	8b 54 24 10          	mov    0x10(%esp),%edx
645e31:	c1 e2 12             	shl    $0x12,%edx
645e34:	33 c0                	xor    %eax,%eax
645e36:	0b 04 24             	or     (%esp),%eax
645e39:	0b 54 24 04          	or     0x4(%esp),%edx
645e3d:	83 c4 08             	add    $0x8,%esp
645e40:	52                   	push   %edx
645e41:	50                   	push   %eax
645e42:	8b 44 24 10          	mov    0x10(%esp),%eax
645e46:	8b 54 24 14          	mov    0x14(%esp),%edx
645e4a:	0f ac d0 12          	shrd   $0x12,%edx,%eax
645e4e:	c1 ea 12             	shr    $0x12,%edx
645e51:	52                   	push   %edx
645e52:	50                   	push   %eax
645e53:	8b 54 24 18          	mov    0x18(%esp),%edx
645e57:	c1 e2 0e             	shl    $0xe,%edx
645e5a:	33 c0                	xor    %eax,%eax
645e5c:	0b 04 24             	or     (%esp),%eax
645e5f:	0b 54 24 04          	or     0x4(%esp),%edx
645e63:	83 c4 08             	add    $0x8,%esp
645e66:	33 04 24             	xor    (%esp),%eax
645e69:	33 54 24 04          	xor    0x4(%esp),%edx
645e6d:	83 c4 08             	add    $0x8,%esp
645e70:	52                   	push   %edx
645e71:	50                   	push   %eax
645e72:	8b 44 24 14          	mov    0x14(%esp),%eax
645e76:	c1 e8 09             	shr    $0x9,%eax
645e79:	33 d2                	xor    %edx,%edx
645e7b:	52                   	push   %edx
645e7c:	50                   	push   %eax
645e7d:	8b 44 24 18          	mov    0x18(%esp),%eax
645e81:	8b 54 24 1c          	mov    0x1c(%esp),%edx
645e85:	0f a4 c2 17          	shld   $0x17,%eax,%edx
645e89:	c1 e0 17             	shl    $0x17,%eax
645e8c:	0b 04 24             	or     (%esp),%eax
645e8f:	0b 54 24 04          	or     0x4(%esp),%edx
645e93:	83 c4 08             	add    $0x8,%esp
645e96:	33 04 24             	xor    (%esp),%eax
645e99:	33 54 24 04          	xor    0x4(%esp),%edx
645e9d:	83 c4 08             	add    $0x8,%esp
645ea0:	03 44 24 20          	add    0x20(%esp),%eax
645ea4:	13 54 24 24          	adc    0x24(%esp),%edx
645ea8:	52                   	push   %edx
645ea9:	50                   	push   %eax
645eaa:	8b 44 24 10          	mov    0x10(%esp),%eax
645eae:	8b 54 24 14          	mov    0x14(%esp),%edx
645eb2:	23 44 24 18          	and    0x18(%esp),%eax
645eb6:	23 54 24 1c          	and    0x1c(%esp),%edx
645eba:	52                   	push   %edx
645ebb:	50                   	push   %eax
645ebc:	8b 44 24 18          	mov    0x18(%esp),%eax
645ec0:	8b 54 24 1c          	mov    0x1c(%esp),%edx
645ec4:	f7 d0                	not    %eax
645ec6:	f7 d2                	not    %edx
645ec8:	23 44 24 28          	and    0x28(%esp),%eax
645ecc:	23 54 24 2c          	and    0x2c(%esp),%edx
645ed0:	33 04 24             	xor    (%esp),%eax
645ed3:	33 54 24 04          	xor    0x4(%esp),%edx
645ed7:	83 c4 08             	add    $0x8,%esp
645eda:	03 04 24             	add    (%esp),%eax
645edd:	13 54 24 04          	adc    0x4(%esp),%edx
645ee1:	83 c4 08             	add    $0x8,%esp
645ee4:	05 a8 48 9b e1       	add    $0xe19b48a8,%eax
645ee9:	81 d2 b5 bc b0 34    	adc    $0x34b0bcb5,%edx
645eef:	03 84 24 e8 01 00 00 	add    0x1e8(%esp),%eax
645ef6:	13 94 24 ec 01 00 00 	adc    0x1ec(%esp),%edx
645efd:	89 44 24 40          	mov    %eax,0x40(%esp)
645f01:	89 54 24 44          	mov    %edx,0x44(%esp)
645f05:	8b 44 24 28          	mov    0x28(%esp),%eax
645f09:	8b 54 24 2c          	mov    0x2c(%esp),%edx
645f0d:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
645f11:	c1 ea 1c             	shr    $0x1c,%edx
645f14:	52                   	push   %edx
645f15:	50                   	push   %eax
645f16:	8b 54 24 30          	mov    0x30(%esp),%edx
645f1a:	c1 e2 04             	shl    $0x4,%edx
645f1d:	33 c0                	xor    %eax,%eax
645f1f:	0b 04 24             	or     (%esp),%eax
645f22:	0b 54 24 04          	or     0x4(%esp),%edx
645f26:	83 c4 08             	add    $0x8,%esp
645f29:	52                   	push   %edx
645f2a:	50                   	push   %eax
645f2b:	8b 44 24 34          	mov    0x34(%esp),%eax
645f2f:	c1 e8 02             	shr    $0x2,%eax
645f32:	33 d2                	xor    %edx,%edx
645f34:	52                   	push   %edx
645f35:	50                   	push   %eax
645f36:	8b 44 24 38          	mov    0x38(%esp),%eax
645f3a:	8b 54 24 3c          	mov    0x3c(%esp),%edx
645f3e:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
645f42:	c1 e0 1e             	shl    $0x1e,%eax
645f45:	0b 04 24             	or     (%esp),%eax
645f48:	0b 54 24 04          	or     0x4(%esp),%edx
645f4c:	83 c4 08             	add    $0x8,%esp
645f4f:	33 04 24             	xor    (%esp),%eax
645f52:	33 54 24 04          	xor    0x4(%esp),%edx
645f56:	83 c4 08             	add    $0x8,%esp
645f59:	52                   	push   %edx
645f5a:	50                   	push   %eax
645f5b:	8b 44 24 34          	mov    0x34(%esp),%eax
645f5f:	c1 e8 07             	shr    $0x7,%eax
645f62:	33 d2                	xor    %edx,%edx
645f64:	52                   	push   %edx
645f65:	50                   	push   %eax
645f66:	8b 44 24 38          	mov    0x38(%esp),%eax
645f6a:	8b 54 24 3c          	mov    0x3c(%esp),%edx
645f6e:	0f a4 c2 19          	shld   $0x19,%eax,%edx
645f72:	c1 e0 19             	shl    $0x19,%eax
645f75:	0b 04 24             	or     (%esp),%eax
645f78:	0b 54 24 04          	or     0x4(%esp),%edx
645f7c:	83 c4 08             	add    $0x8,%esp
645f7f:	33 04 24             	xor    (%esp),%eax
645f82:	33 54 24 04          	xor    0x4(%esp),%edx
645f86:	83 c4 08             	add    $0x8,%esp
645f89:	52                   	push   %edx
645f8a:	50                   	push   %eax
645f8b:	8b 44 24 30          	mov    0x30(%esp),%eax
645f8f:	8b 54 24 34          	mov    0x34(%esp),%edx
645f93:	23 44 24 38          	and    0x38(%esp),%eax
645f97:	23 54 24 3c          	and    0x3c(%esp),%edx
645f9b:	52                   	push   %edx
645f9c:	50                   	push   %eax
645f9d:	8b 44 24 38          	mov    0x38(%esp),%eax
645fa1:	8b 54 24 3c          	mov    0x3c(%esp),%edx
645fa5:	23 44 24 48          	and    0x48(%esp),%eax
645fa9:	23 54 24 4c          	and    0x4c(%esp),%edx
645fad:	33 04 24             	xor    (%esp),%eax
645fb0:	33 54 24 04          	xor    0x4(%esp),%edx
645fb4:	83 c4 08             	add    $0x8,%esp
645fb7:	52                   	push   %edx
645fb8:	50                   	push   %eax
645fb9:	8b 44 24 40          	mov    0x40(%esp),%eax
645fbd:	8b 54 24 44          	mov    0x44(%esp),%edx
645fc1:	23 44 24 48          	and    0x48(%esp),%eax
645fc5:	23 54 24 4c          	and    0x4c(%esp),%edx
645fc9:	33 04 24             	xor    (%esp),%eax
645fcc:	33 54 24 04          	xor    0x4(%esp),%edx
645fd0:	83 c4 08             	add    $0x8,%esp
645fd3:	03 04 24             	add    (%esp),%eax
645fd6:	13 54 24 04          	adc    0x4(%esp),%edx
645fda:	83 c4 08             	add    $0x8,%esp
645fdd:	89 44 24 48          	mov    %eax,0x48(%esp)
645fe1:	89 54 24 4c          	mov    %edx,0x4c(%esp)
645fe5:	8b 04 24             	mov    (%esp),%eax
645fe8:	8b 54 24 04          	mov    0x4(%esp),%edx
645fec:	03 44 24 40          	add    0x40(%esp),%eax
645ff0:	13 54 24 44          	adc    0x44(%esp),%edx
645ff4:	89 04 24             	mov    %eax,(%esp)
645ff7:	89 54 24 04          	mov    %edx,0x4(%esp)
645ffb:	8b 44 24 40          	mov    0x40(%esp),%eax
645fff:	8b 54 24 44          	mov    0x44(%esp),%edx
646003:	03 44 24 48          	add    0x48(%esp),%eax
646007:	13 54 24 4c          	adc    0x4c(%esp),%edx
64600b:	89 44 24 20          	mov    %eax,0x20(%esp)
64600f:	89 54 24 24          	mov    %edx,0x24(%esp)
646013:	8b 04 24             	mov    (%esp),%eax
646016:	8b 54 24 04          	mov    0x4(%esp),%edx
64601a:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
64601e:	c1 ea 0e             	shr    $0xe,%edx
646021:	52                   	push   %edx
646022:	50                   	push   %eax
646023:	8b 54 24 08          	mov    0x8(%esp),%edx
646027:	c1 e2 12             	shl    $0x12,%edx
64602a:	33 c0                	xor    %eax,%eax
64602c:	0b 04 24             	or     (%esp),%eax
64602f:	0b 54 24 04          	or     0x4(%esp),%edx
646033:	83 c4 08             	add    $0x8,%esp
646036:	52                   	push   %edx
646037:	50                   	push   %eax