644cee:	50                   	push   %eax
644cef:	8b 44 24 18          	mov    0x18(%esp),%eax
644cf3:	8b 54 24 1c          	mov    0x1c(%esp),%edx
644cf7:	23 44 24 20          	and    0x20(%esp),%eax
644cfb:	23 54 24 24          	and    0x24(%esp),%edx
644cff:	52                   	push   %edx
644d00:	50                   	push   %eax
644d01:	8b 44 24 20          	mov    0x20(%esp),%eax
644d05:	8b 54 24 24          	mov    0x24(%esp),%edx
644d09:	f7 d0                	not    %eax
644d0b:	f7 d2                	not    %edx
644d0d:	23 44 24 30          	and    0x30(%esp),%eax
644d11:	23 54 24 34          	and    0x34(%esp),%edx
644d15:	33 04 24             	xor    (%esp),%eax
644d18:	33 54 24 04          	xor    0x4(%esp),%edx
644d1c:	83 c4 08             	add    $0x8,%esp
644d1f:	03 04 24             	add    (%esp),%eax
644d22:	13 54 24 04          	adc    0x4(%esp),%edx
644d26:	83 c4 08             	add    $0x8,%esp
644d29:	05 91 97 f8 d0       	add    $0xd0f89791,%eax
644d2e:	81 d2 70 8b 4b c2    	adc    $0xc24b8b70,%edx
644d34:	03 84 24 a0 01 00 00 	add    0x1a0(%esp),%eax
644d3b:	13 94 24 a4 01 00 00 	adc    0x1a4(%esp),%edx
644d42:	89 44 24 40          	mov    %eax,0x40(%esp)
644d46:	89 54 24 44          	mov    %edx,0x44(%esp)
644d4a:	8b 44 24 30          	mov    0x30(%esp),%eax
644d4e:	8b 54 24 34          	mov    0x34(%esp),%edx
644d52:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
644d56:	c1 ea 1c             	shr    $0x1c,%edx
644d59:	52                   	push   %edx
644d5a:	50                   	push   %eax
644d5b:	8b 54 24 38          	mov    0x38(%esp),%edx
644d5f:	c1 e2 04             	shl    $0x4,%edx
644d62:	33 c0                	xor    %eax,%eax
644d64:	0b 04 24             	or     (%esp),%eax
644d67:	0b 54 24 04          	or     0x4(%esp),%edx
644d6b:	83 c4 08             	add    $0x8,%esp
644d6e:	52                   	push   %edx
644d6f:	50                   	push   %eax
644d70:	8b 44 24 3c          	mov    0x3c(%esp),%eax
644d74:	c1 e8 02             	shr    $0x2,%eax
644d77:	33 d2                	xor    %edx,%edx
644d79:	52                   	push   %edx
644d7a:	50                   	push   %eax
644d7b:	8b 44 24 40          	mov    0x40(%esp),%eax
644d7f:	8b 54 24 44          	mov    0x44(%esp),%edx
644d83:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
644d87:	c1 e0 1e             	shl    $0x1e,%eax
644d8a:	0b 04 24             	or     (%esp),%eax
644d8d:	0b 54 24 04          	or     0x4(%esp),%edx
644d91:	83 c4 08             	add    $0x8,%esp
644d94:	33 04 24             	xor    (%esp),%eax
644d97:	33 54 24 04          	xor    0x4(%esp),%edx
644d9b:	83 c4 08             	add    $0x8,%esp
644d9e:	52                   	push   %edx
644d9f:	50                   	push   %eax
644da0:	8b 44 24 3c          	mov    0x3c(%esp),%eax
644da4:	c1 e8 07             	shr    $0x7,%eax
644da7:	33 d2                	xor    %edx,%edx
644da9:	52                   	push   %edx
644daa:	50                   	push   %eax
644dab:	8b 44 24 40          	mov    0x40(%esp),%eax
644daf:	8b 54 24 44          	mov    0x44(%esp),%edx
644db3:	0f a4 c2 19          	shld   $0x19,%eax,%edx
644db7:	c1 e0 19             	shl    $0x19,%eax
644dba:	0b 04 24             	or     (%esp),%eax
644dbd:	0b 54 24 04          	or     0x4(%esp),%edx
644dc1:	83 c4 08             	add    $0x8,%esp
644dc4:	33 04 24             	xor    (%esp),%eax
644dc7:	33 54 24 04          	xor    0x4(%esp),%edx
644dcb:	83 c4 08             	add    $0x8,%esp
644dce:	52                   	push   %edx
644dcf:	50                   	push   %eax
644dd0:	8b 44 24 38          	mov    0x38(%esp),%eax
644dd4:	8b 54 24 3c          	mov    0x3c(%esp),%edx
644dd8:	23 44 24 40          	and    0x40(%esp),%eax
644ddc:	23 54 24 44          	and    0x44(%esp),%edx
644de0:	52                   	push   %edx
644de1:	50                   	push   %eax
644de2:	8b 44 24 40          	mov    0x40(%esp),%eax
644de6:	8b 54 24 44          	mov    0x44(%esp),%edx
644dea:	23 44 24 10          	and    0x10(%esp),%eax
644dee:	23 54 24 14          	and    0x14(%esp),%edx
644df2:	33 04 24             	xor    (%esp),%eax
644df5:	33 54 24 04          	xor    0x4(%esp),%edx
644df9:	83 c4 08             	add    $0x8,%esp
644dfc:	52                   	push   %edx
644dfd:	50                   	push   %eax
644dfe:	8b 44 24 48          	mov    0x48(%esp),%eax
644e02:	8b 54 24 4c          	mov    0x4c(%esp),%edx
644e06:	23 44 24 10          	and    0x10(%esp),%eax
644e0a:	23 54 24 14          	and    0x14(%esp),%edx
644e0e:	33 04 24             	xor    (%esp),%eax
644e11:	33 54 24 04          	xor    0x4(%esp),%edx
644e15:	83 c4 08             	add    $0x8,%esp
644e18:	03 04 24             	add    (%esp),%eax
644e1b:	13 54 24 04          	adc    0x4(%esp),%edx
644e1f:	83 c4 08             	add    $0x8,%esp
644e22:	89 44 24 48          	mov    %eax,0x48(%esp)
644e26:	89 54 24 4c          	mov    %edx,0x4c(%esp)
644e2a:	8b 44 24 08          	mov    0x8(%esp),%eax
644e2e:	8b 54 24 0c          	mov    0xc(%esp),%edx
644e32:	03 44 24 40          	add    0x40(%esp),%eax
644e36:	13 54 24 44          	adc    0x44(%esp),%edx
644e3a:	89 44 24 08          	mov    %eax,0x8(%esp)
644e3e:	89 54 24 0c          	mov    %edx,0xc(%esp)
644e42:	8b 44 24 40          	mov    0x40(%esp),%eax
644e46:	8b 54 24 44          	mov    0x44(%esp),%edx
644e4a:	03 44 24 48          	add    0x48(%esp),%eax
644e4e:	13 54 24 4c          	adc    0x4c(%esp),%edx
644e52:	89 44 24 28          	mov    %eax,0x28(%esp)
644e56:	89 54 24 2c          	mov    %edx,0x2c(%esp)
644e5a:	8b 44 24 08          	mov    0x8(%esp),%eax
644e5e:	8b 54 24 0c          	mov    0xc(%esp),%edx
644e62:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
644e66:	c1 ea 0e             	shr    $0xe,%edx
644e69:	52                   	push   %edx
644e6a:	50                   	push   %eax
644e6b:	8b 54 24 10          	mov    0x10(%esp),%edx
644e6f:	c1 e2 12             	shl    $0x12,%edx
644e72:	33 c0                	xor    %eax,%eax
644e74:	0b 04 24             	or     (%esp),%eax
644e77:	0b 54 24 04          	or     0x4(%esp),%edx
644e7b:	83 c4 08             	add    $0x8,%esp
644e7e:	52                   	push   %edx
644e7f:	50                   	push   %eax
644e80:	8b 44 24 10          	mov    0x10(%esp),%eax
644e84:	8b 54 24 14          	mov    0x14(%esp),%edx
644e88:	0f ac d0 12          	shrd   $0x12,%edx,%eax
644e8c:	c1 ea 12             	shr    $0x12,%edx
644e8f:	52                   	push   %edx
644e90:	50                   	push   %eax
644e91:	8b 54 24 18          	mov    0x18(%esp),%edx
644e95:	c1 e2 0e             	shl    $0xe,%edx
644e98:	33 c0                	xor    %eax,%eax
644e9a:	0b 04 24             	or     (%esp),%eax
644e9d:	0b 54 24 04          	or     0x4(%esp),%edx
644ea1:	83 c4 08             	add    $0x8,%esp
644ea4:	33 04 24             	xor    (%esp),%eax
644ea7:	33 54 24 04          	xor    0x4(%esp),%edx
644eab:	83 c4 08             	add    $0x8,%esp
644eae:	52                   	push   %edx
644eaf:	50                   	push   %eax
644eb0:	8b 44 24 14          	mov    0x14(%esp),%eax
644eb4:	c1 e8 09             	shr    $0x9,%eax
644eb7:	33 d2                	xor    %edx,%edx
644eb9:	52                   	push   %edx
644eba:	50                   	push   %eax
644ebb:	8b 44 24 18          	mov    0x18(%esp),%eax
644ebf:	8b 54 24 1c          	mov    0x1c(%esp),%edx
644ec3:	0f a4 c2 17          	shld   $0x17,%eax,%edx
644ec7:	c1 e0 17             	shl    $0x17,%eax
644eca:	0b 04 24             	or     (%esp),%eax
644ecd:	0b 54 24 04          	or     0x4(%esp),%edx
644ed1:	83 c4 08             	add    $0x8,%esp
644ed4:	33 04 24             	xor    (%esp),%eax
644ed7:	33 54 24 04          	xor    0x4(%esp),%edx
644edb:	83 c4 08             	add    $0x8,%esp
644ede:	03 44 24 20          	add    0x20(%esp),%eax
644ee2:	13 54 24 24          	adc    0x24(%esp),%edx
644ee6:	52                   	push   %edx
644ee7:	50                   	push   %eax
644ee8:	8b 44 24 10          	mov    0x10(%esp),%eax
644eec:	8b 54 24 14          	mov    0x14(%esp),%edx
644ef0:	23 44 24 18          	and    0x18(%esp),%eax
644ef4:	23 54 24 1c          	and    0x1c(%esp),%edx
644ef8:	52                   	push   %edx
644ef9:	50                   	push   %eax
644efa:	8b 44 24 18          	mov    0x18(%esp),%eax
644efe:	8b 54 24 1c          	mov    0x1c(%esp),%edx
644f02:	f7 d0                	not    %eax
644f04:	f7 d2                	not    %edx
644f06:	23 44 24 28          	and    0x28(%esp),%eax
644f0a:	23 54 24 2c          	and    0x2c(%esp),%edx
644f0e:	33 04 24             	xor    (%esp),%eax
644f11:	33 54 24 04          	xor    0x4(%esp),%edx
644f15:	83 c4 08             	add    $0x8,%esp
644f18:	03 04 24             	add    (%esp),%eax
644f1b:	13 54 24 04          	adc    0x4(%esp),%edx
644f1f:	83 c4 08             	add    $0x8,%esp
644f22:	05 30 be 54 06       	add    $0x654be30,%eax
644f27:	81 d2 a3 51 6c c7    	adc    $0xc76c51a3,%edx
644f2d:	03 84 24 a8 01 00 00 	add    0x1a8(%esp),%eax
644f34:	13 94 24 ac 01 00 00 	adc    0x1ac(%esp),%edx
644f3b:	89 44 24 40          	mov    %eax,0x40(%esp)
644f3f:	89 54 24 44          	mov    %edx,0x44(%esp)
644f43:	8b 44 24 28          	mov    0x28(%esp),%eax
644f47:	8b 54 24 2c          	mov    0x2c(%esp),%edx
644f4b:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
644f4f:	c1 ea 1c             	shr    $0x1c,%edx
644f52:	52                   	push   %edx
644f53:	50                   	push   %eax
644f54:	8b 54 24 30          	mov    0x30(%esp),%edx
644f58:	c1 e2 04             	shl    $0x4,%edx
644f5b:	33 c0                	xor    %eax,%eax
644f5d:	0b 04 24             	or     (%esp),%eax
644f60:	0b 54 24 04          	or     0x4(%esp),%edx
644f64:	83 c4 08             	add    $0x8,%esp
644f67:	52                   	push   %edx
644f68:	50                   	push   %eax
644f69:	8b 44 24 34          	mov    0x34(%esp),%eax
644f6d:	c1 e8 02             	shr    $0x2,%eax
644f70:	33 d2                	xor    %edx,%edx
644f72:	52                   	push   %edx
644f73:	50                   	push   %eax
644f74:	8b 44 24 38          	mov    0x38(%esp),%eax
644f78:	8b 54 24 3c          	mov    0x3c(%esp),%edx
644f7c:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
644f80:	c1 e0 1e             	shl    $0x1e,%eax
644f83:	0b 04 24             	or     (%esp),%eax
644f86:	0b 54 24 04          	or     0x4(%esp),%edx
644f8a:	83 c4 08             	add    $0x8,%esp
644f8d:	33 04 24             	xor    (%esp),%eax
644f90:	33 54 24 04          	xor    0x4(%esp),%edx
644f94:	83 c4 08             	add    $0x8,%esp
644f97:	52                   	push   %edx
644f98:	50                   	push   %eax
644f99:	8b 44 24 34          	mov    0x34(%esp),%eax
644f9d:	c1 e8 07             	shr    $0x7,%eax
644fa0:	33 d2                	xor    %edx,%edx
644fa2:	52                   	push   %edx
644fa3:	50                   	push   %eax
644fa4:	8b 44 24 38          	mov    0x38(%esp),%eax
644fa8:	8b 54 24 3c          	mov    0x3c(%esp),%edx
644fac:	0f a4 c2 19          	shld   $0x19,%eax,%edx
644fb0:	c1 e0 19             	shl    $0x19,%eax
644fb3:	0b 04 24             	or     (%esp),%eax
644fb6:	0b 54 24 04          	or     0x4(%esp),%edx
644fba:	83 c4 08             	add    $0x8,%esp
644fbd:	33 04 24             	xor    (%esp),%eax
644fc0:	33 54 24 04          	xor    0x4(%esp),%edx
644fc4:	83 c4 08             	add    $0x8,%esp
644fc7:	52                   	push   %edx
644fc8:	50                   	push   %eax
644fc9:	8b 44 24 30          	mov    0x30(%esp),%eax
644fcd:	8b 54 24 34          	mov    0x34(%esp),%edx
644fd1:	23 44 24 38          	and    0x38(%esp),%eax
644fd5:	23 54 24 3c          	and    0x3c(%esp),%edx
644fd9:	52                   	push   %edx
644fda:	50                   	push   %eax
644fdb:	8b 44 24 38          	mov    0x38(%esp),%eax
644fdf:	8b 54 24 3c          	mov    0x3c(%esp),%edx
644fe3:	23 44 24 48          	and    0x48(%esp),%eax
644fe7:	23 54 24 4c          	and    0x4c(%esp),%edx
644feb:	33 04 24             	xor    (%esp),%eax
644fee:	33 54 24 04          	xor    0x4(%esp),%edx
644ff2:	83 c4 08             	add    $0x8,%esp
644ff5:	52                   	push   %edx
644ff6:	50                   	push   %eax
644ff7:	8b 44 24 40          	mov    0x40(%esp),%eax
644ffb:	8b 54 24 44          	mov    0x44(%esp),%edx
644fff:	23 44 24 48          	and    0x48(%esp),%eax
645003:	23 54 24 4c          	and    0x4c(%esp),%edx
645007:	33 04 24             	xor    (%esp),%eax
64500a:	33 54 24 04          	xor    0x4(%esp),%edx
64500e:	83 c4 08             	add    $0x8,%esp
645011:	03 04 24             	add    (%esp),%eax
645014:	13 54 24 04          	adc    0x4(%esp),%edx
645018:	83 c4 08             	add    $0x8,%esp
64501b:	89 44 24 48          	mov    %eax,0x48(%esp)
64501f:	89 54 24 4c          	mov    %edx,0x4c(%esp)
645023:	8b 04 24             	mov    (%esp),%eax
645026:	8b 54 24 04          	mov    0x4(%esp),%edx
64502a:	03 44 24 40          	add    0x40(%esp),%eax
64502e:	13 54 24 44          	adc    0x44(%esp),%edx
645032:	89 04 24             	mov    %eax,(%esp)
645035:	89 54 24 04          	mov    %edx,0x4(%esp)
645039:	8b 44 24 40          	mov    0x40(%esp),%eax
64503d:	8b 54 24 44          	mov    0x44(%esp),%edx
645041:	03 44 24 48          	add    0x48(%esp),%eax
645045:	13 54 24 4c          	adc    0x4c(%esp),%edx
645049:	89 44 24 20          	mov    %eax,0x20(%esp)
64504d:	89 54 24 24          	mov    %edx,0x24(%esp)
645051:	8b 04 24             	mov    (%esp),%eax
645054:	8b 54 24 04          	mov    0x4(%esp),%edx
645058:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
64505c:	c1 ea 0e             	shr    $0xe,%edx
64505f:	52                   	push   %edx
645060:	50                   	push   %eax
645061:	8b 54 24 08          	mov    0x8(%esp),%edx
645065:	c1 e2 12             	shl    $0x12,%edx
645068:	33 c0                	xor    %eax,%eax
64506a:	0b 04 24             	or     (%esp),%eax
64506d:	0b 54 24 04          	or     0x4(%esp),%edx
645071:	83 c4 08             	add    $0x8,%esp
645074:	52                   	push   %edx
645075:	50                   	push   %eax
645076:	8b 44 24 08          	mov    0x8(%esp),%eax
64507a:	8b 54 24 0c          	mov    0xc(%esp),%edx
64507e:	0f ac d0 12          	shrd   $0x12,%edx,%eax
645082:	c1 ea 12             	shr    $0x12,%edx
645085:	52                   	push   %edx
645086:	50                   	push   %eax
645087:	8b 54 24 10          	mov    0x10(%esp),%edx
64508b:	c1 e2 0e             	shl    $0xe,%edx
64508e:	33 c0                	xor    %eax,%eax
645090:	0b 04 24             	or     (%esp),%eax
645093:	0b 54 24 04          	or     0x4(%esp),%edx
645097:	83 c4 08             	add    $0x8,%esp
64509a:	33 04 24             	xor    (%esp),%eax
64509d:	33 54 24 04          	xor    0x4(%esp),%edx
6450a1:	83 c4 08             	add    $0x8,%esp
6450a4:	52                   	push   %edx
6450a5:	50                   	push   %eax
6450a6:	8b 44 24 0c          	mov    0xc(%esp),%eax
6450aa:	c1 e8 09             	shr    $0x9,%eax
6450ad:	33 d2                	xor    %edx,%edx
6450af:	52                   	push   %edx
6450b0:	50                   	push   %eax
6450b1:	8b 44 24 10          	mov    0x10(%esp),%eax
6450b5:	8b 54 24 14          	mov    0x14(%esp),%edx
6450b9:	0f a4 c2 17          	shld   $0x17,%eax,%edx
6450bd:	c1 e0 17             	shl    $0x17,%eax
6450c0:	0b 04 24             	or     (%esp),%eax
6450c3:	0b 54 24 04          	or     0x4(%esp),%edx
6450c7:	83 c4 08             	add    $0x8,%esp
6450ca:	33 04 24             	xor    (%esp),%eax
6450cd:	33 54 24 04          	xor    0x4(%esp),%edx
6450d1:	83 c4 08             	add    $0x8,%esp
6450d4:	03 44 24 18          	add    0x18(%esp),%eax
6450d8:	13 54 24 1c          	adc    0x1c(%esp),%edx
6450dc:	52                   	push   %edx
6450dd:	50                   	push   %eax
6450de:	8b 44 24 08          	mov    0x8(%esp),%eax
6450e2:	8b 54 24 0c          	mov    0xc(%esp),%edx
6450e6:	23 44 24 10          	and    0x10(%esp),%eax
6450ea:	23 54 24 14          	and    0x14(%esp),%edx
6450ee:	52                   	push   %edx
6450ef:	50                   	push   %eax
6450f0:	8b 44 24 10          	mov    0x10(%esp),%eax
6450f4:	8b 54 24 14          	mov    0x14(%esp),%edx
6450f8:	f7 d0                	not    %eax
6450fa:	f7 d2                	not    %edx
6450fc:	23 44 24 20          	and    0x20(%esp),%eax
645100:	23 54 24 24          	and    0x24(%esp),%edx
645104:	33 04 24             	xor    (%esp),%eax
645107:	33 54 24 04          	xor    0x4(%esp),%edx
64510b:	83 c4 08             	add    $0x8,%esp
64510e:	03 04 24             	add    (%esp),%eax
645111:	13 54 24 04          	adc    0x4(%esp),%edx
645115:	83 c4 08             	add    $0x8,%esp
645118:	05 18 52 ef d6       	add    $0xd6ef5218,%eax
64511d:	81 d2 19 e8 92 d1    	adc    $0xd192e819,%edx
645123:	03 84 24 b0 01 00 00 	add    0x1b0(%esp),%eax
64512a:	13 94 24 b4 01 00 00 	adc    0x1b4(%esp),%edx
645131:	89 44 24 40          	mov    %eax,0x40(%esp)
645135:	89 54 24 44          	mov    %edx,0x44(%esp)
645139:	8b 44 24 20          	mov    0x20(%esp),%eax
64513d:	8b 54 24 24          	mov    0x24(%esp),%edx
645141:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax