640cb2:	0f a4 c2 19          	shld   $0x19,%eax,%edx
640cb6:	c1 e0 19             	shl    $0x19,%eax
640cb9:	0b 04 24             	or     (%esp),%eax
640cbc:	0b 54 24 04          	or     0x4(%esp),%edx
640cc0:	83 c4 08             	add    $0x8,%esp
640cc3:	33 04 24             	xor    (%esp),%eax
640cc6:	33 54 24 04          	xor    0x4(%esp),%edx
640cca:	83 c4 08             	add    $0x8,%esp
640ccd:	52                   	push   %edx
640cce:	50                   	push   %eax
640ccf:	8b 44 24 40          	mov    0x40(%esp),%eax
640cd3:	8b 54 24 44          	mov    0x44(%esp),%edx
640cd7:	23 44 24 08          	and    0x8(%esp),%eax
640cdb:	23 54 24 0c          	and    0xc(%esp),%edx
640cdf:	52                   	push   %edx
640ce0:	50                   	push   %eax
640ce1:	8b 44 24 48          	mov    0x48(%esp),%eax
640ce5:	8b 54 24 4c          	mov    0x4c(%esp),%edx
640ce9:	23 44 24 18          	and    0x18(%esp),%eax
640ced:	23 54 24 1c          	and    0x1c(%esp),%edx
640cf1:	33 04 24             	xor    (%esp),%eax
640cf4:	33 54 24 04          	xor    0x4(%esp),%edx
640cf8:	83 c4 08             	add    $0x8,%esp
640cfb:	52                   	push   %edx
640cfc:	50                   	push   %eax
640cfd:	8b 44 24 10          	mov    0x10(%esp),%eax
640d01:	8b 54 24 14          	mov    0x14(%esp),%edx
640d05:	23 44 24 18          	and    0x18(%esp),%eax
640d09:	23 54 24 1c          	and    0x1c(%esp),%edx
640d0d:	33 04 24             	xor    (%esp),%eax
640d10:	33 54 24 04          	xor    0x4(%esp),%edx
640d14:	83 c4 08             	add    $0x8,%esp
640d17:	03 04 24             	add    (%esp),%eax
640d1a:	13 54 24 04          	adc    0x4(%esp),%edx
640d1e:	83 c4 08             	add    $0x8,%esp
640d21:	89 44 24 48          	mov    %eax,0x48(%esp)
640d25:	89 54 24 4c          	mov    %edx,0x4c(%esp)
640d29:	8b 44 24 10          	mov    0x10(%esp),%eax
640d2d:	8b 54 24 14          	mov    0x14(%esp),%edx
640d31:	03 44 24 40          	add    0x40(%esp),%eax
640d35:	13 54 24 44          	adc    0x44(%esp),%edx
640d39:	89 44 24 10          	mov    %eax,0x10(%esp)
640d3d:	89 54 24 14          	mov    %edx,0x14(%esp)
640d41:	8b 44 24 40          	mov    0x40(%esp),%eax
640d45:	8b 54 24 44          	mov    0x44(%esp),%edx
640d49:	03 44 24 48          	add    0x48(%esp),%eax
640d4d:	13 54 24 4c          	adc    0x4c(%esp),%edx
640d51:	89 44 24 30          	mov    %eax,0x30(%esp)
640d55:	89 54 24 34          	mov    %edx,0x34(%esp)
640d59:	8b 44 24 10          	mov    0x10(%esp),%eax
640d5d:	8b 54 24 14          	mov    0x14(%esp),%edx
640d61:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
640d65:	c1 ea 0e             	shr    $0xe,%edx
640d68:	52                   	push   %edx
640d69:	50                   	push   %eax
640d6a:	8b 54 24 18          	mov    0x18(%esp),%edx
640d6e:	c1 e2 12             	shl    $0x12,%edx
640d71:	33 c0                	xor    %eax,%eax
640d73:	0b 04 24             	or     (%esp),%eax
640d76:	0b 54 24 04          	or     0x4(%esp),%edx
640d7a:	83 c4 08             	add    $0x8,%esp
640d7d:	52                   	push   %edx
640d7e:	50                   	push   %eax
640d7f:	8b 44 24 18          	mov    0x18(%esp),%eax
640d83:	8b 54 24 1c          	mov    0x1c(%esp),%edx
640d87:	0f ac d0 12          	shrd   $0x12,%edx,%eax
640d8b:	c1 ea 12             	shr    $0x12,%edx
640d8e:	52                   	push   %edx
640d8f:	50                   	push   %eax
640d90:	8b 54 24 20          	mov    0x20(%esp),%edx
640d94:	c1 e2 0e             	shl    $0xe,%edx
640d97:	33 c0                	xor    %eax,%eax
640d99:	0b 04 24             	or     (%esp),%eax
640d9c:	0b 54 24 04          	or     0x4(%esp),%edx
640da0:	83 c4 08             	add    $0x8,%esp
640da3:	33 04 24             	xor    (%esp),%eax
640da6:	33 54 24 04          	xor    0x4(%esp),%edx
640daa:	83 c4 08             	add    $0x8,%esp
640dad:	52                   	push   %edx
640dae:	50                   	push   %eax
640daf:	8b 44 24 1c          	mov    0x1c(%esp),%eax
640db3:	c1 e8 09             	shr    $0x9,%eax
640db6:	33 d2                	xor    %edx,%edx
640db8:	52                   	push   %edx
640db9:	50                   	push   %eax
640dba:	8b 44 24 20          	mov    0x20(%esp),%eax
640dbe:	8b 54 24 24          	mov    0x24(%esp),%edx
640dc2:	0f a4 c2 17          	shld   $0x17,%eax,%edx
640dc6:	c1 e0 17             	shl    $0x17,%eax
640dc9:	0b 04 24             	or     (%esp),%eax
640dcc:	0b 54 24 04          	or     0x4(%esp),%edx
640dd0:	83 c4 08             	add    $0x8,%esp
640dd3:	33 04 24             	xor    (%esp),%eax
640dd6:	33 54 24 04          	xor    0x4(%esp),%edx
640dda:	83 c4 08             	add    $0x8,%esp
640ddd:	03 44 24 28          	add    0x28(%esp),%eax
640de1:	13 54 24 2c          	adc    0x2c(%esp),%edx
640de5:	52                   	push   %edx
640de6:	50                   	push   %eax
640de7:	8b 44 24 18          	mov    0x18(%esp),%eax
640deb:	8b 54 24 1c          	mov    0x1c(%esp),%edx
640def:	23 44 24 20          	and    0x20(%esp),%eax
640df3:	23 54 24 24          	and    0x24(%esp),%edx
640df7:	52                   	push   %edx
640df8:	50                   	push   %eax
640df9:	8b 44 24 20          	mov    0x20(%esp),%eax
640dfd:	8b 54 24 24          	mov    0x24(%esp),%edx
640e01:	f7 d0                	not    %eax
640e03:	f7 d2                	not    %edx
640e05:	23 44 24 30          	and    0x30(%esp),%eax
640e09:	23 54 24 34          	and    0x34(%esp),%edx
640e0d:	33 04 24             	xor    (%esp),%eax
640e10:	33 54 24 04          	xor    0x4(%esp),%edx
640e14:	83 c4 08             	add    $0x8,%esp
640e17:	03 04 24             	add    (%esp),%eax
640e1a:	13 54 24 04          	adc    0x4(%esp),%edx
640e1e:	83 c4 08             	add    $0x8,%esp
640e21:	05 8c b2 e4 4e       	add    $0x4ee4b28c,%eax
640e26:	81 d2 be 85 31 24    	adc    $0x243185be,%edx
640e2c:	03 84 24 a0 00 00 00 	add    0xa0(%esp),%eax
640e33:	13 94 24 a4 00 00 00 	adc    0xa4(%esp),%edx
640e3a:	89 44 24 40          	mov    %eax,0x40(%esp)
640e3e:	89 54 24 44          	mov    %edx,0x44(%esp)
640e42:	8b 44 24 30          	mov    0x30(%esp),%eax
640e46:	8b 54 24 34          	mov    0x34(%esp),%edx
640e4a:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
640e4e:	c1 ea 1c             	shr    $0x1c,%edx
640e51:	52                   	push   %edx
640e52:	50                   	push   %eax
640e53:	8b 54 24 38          	mov    0x38(%esp),%edx
640e57:	c1 e2 04             	shl    $0x4,%edx
640e5a:	33 c0                	xor    %eax,%eax
640e5c:	0b 04 24             	or     (%esp),%eax
640e5f:	0b 54 24 04          	or     0x4(%esp),%edx
640e63:	83 c4 08             	add    $0x8,%esp
640e66:	52                   	push   %edx
640e67:	50                   	push   %eax
640e68:	8b 44 24 3c          	mov    0x3c(%esp),%eax
640e6c:	c1 e8 02             	shr    $0x2,%eax
640e6f:	33 d2                	xor    %edx,%edx
640e71:	52                   	push   %edx
640e72:	50                   	push   %eax
640e73:	8b 44 24 40          	mov    0x40(%esp),%eax
640e77:	8b 54 24 44          	mov    0x44(%esp),%edx
640e7b:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
640e7f:	c1 e0 1e             	shl    $0x1e,%eax
640e82:	0b 04 24             	or     (%esp),%eax
640e85:	0b 54 24 04          	or     0x4(%esp),%edx
640e89:	83 c4 08             	add    $0x8,%esp
640e8c:	33 04 24             	xor    (%esp),%eax
640e8f:	33 54 24 04          	xor    0x4(%esp),%edx
640e93:	83 c4 08             	add    $0x8,%esp
640e96:	52                   	push   %edx
640e97:	50                   	push   %eax
640e98:	8b 44 24 3c          	mov    0x3c(%esp),%eax
640e9c:	c1 e8 07             	shr    $0x7,%eax
640e9f:	33 d2                	xor    %edx,%edx
640ea1:	52                   	push   %edx
640ea2:	50                   	push   %eax
640ea3:	8b 44 24 40          	mov    0x40(%esp),%eax
640ea7:	8b 54 24 44          	mov    0x44(%esp),%edx
640eab:	0f a4 c2 19          	shld   $0x19,%eax,%edx
640eaf:	c1 e0 19             	shl    $0x19,%eax
640eb2:	0b 04 24             	or     (%esp),%eax
640eb5:	0b 54 24 04          	or     0x4(%esp),%edx
640eb9:	83 c4 08             	add    $0x8,%esp
640ebc:	33 04 24             	xor    (%esp),%eax
640ebf:	33 54 24 04          	xor    0x4(%esp),%edx
640ec3:	83 c4 08             	add    $0x8,%esp
640ec6:	52                   	push   %edx
640ec7:	50                   	push   %eax
640ec8:	8b 44 24 38          	mov    0x38(%esp),%eax
640ecc:	8b 54 24 3c          	mov    0x3c(%esp),%edx
640ed0:	23 44 24 40          	and    0x40(%esp),%eax
640ed4:	23 54 24 44          	and    0x44(%esp),%edx
640ed8:	52                   	push   %edx
640ed9:	50                   	push   %eax
640eda:	8b 44 24 40          	mov    0x40(%esp),%eax
640ede:	8b 54 24 44          	mov    0x44(%esp),%edx
640ee2:	23 44 24 10          	and    0x10(%esp),%eax
640ee6:	23 54 24 14          	and    0x14(%esp),%edx
640eea:	33 04 24             	xor    (%esp),%eax
640eed:	33 54 24 04          	xor    0x4(%esp),%edx
640ef1:	83 c4 08             	add    $0x8,%esp
640ef4:	52                   	push   %edx
640ef5:	50                   	push   %eax
640ef6:	8b 44 24 48          	mov    0x48(%esp),%eax
640efa:	8b 54 24 4c          	mov    0x4c(%esp),%edx
640efe:	23 44 24 10          	and    0x10(%esp),%eax
640f02:	23 54 24 14          	and    0x14(%esp),%edx
640f06:	33 04 24             	xor    (%esp),%eax
640f09:	33 54 24 04          	xor    0x4(%esp),%edx
640f0d:	83 c4 08             	add    $0x8,%esp
640f10:	03 04 24             	add    (%esp),%eax
640f13:	13 54 24 04          	adc    0x4(%esp),%edx
640f17:	83 c4 08             	add    $0x8,%esp
640f1a:	89 44 24 48          	mov    %eax,0x48(%esp)
640f1e:	89 54 24 4c          	mov    %edx,0x4c(%esp)
640f22:	8b 44 24 08          	mov    0x8(%esp),%eax
640f26:	8b 54 24 0c          	mov    0xc(%esp),%edx
640f2a:	03 44 24 40          	add    0x40(%esp),%eax
640f2e:	13 54 24 44          	adc    0x44(%esp),%edx
640f32:	89 44 24 08          	mov    %eax,0x8(%esp)
640f36:	89 54 24 0c          	mov    %edx,0xc(%esp)
640f3a:	8b 44 24 40          	mov    0x40(%esp),%eax
640f3e:	8b 54 24 44          	mov    0x44(%esp),%edx
640f42:	03 44 24 48          	add    0x48(%esp),%eax
640f46:	13 54 24 4c          	adc    0x4c(%esp),%edx
640f4a:	89 44 24 28          	mov    %eax,0x28(%esp)
640f4e:	89 54 24 2c          	mov    %edx,0x2c(%esp)
640f52:	8b 44 24 08          	mov    0x8(%esp),%eax
640f56:	8b 54 24 0c          	mov    0xc(%esp),%edx
640f5a:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
640f5e:	c1 ea 0e             	shr    $0xe,%edx
640f61:	52                   	push   %edx
640f62:	50                   	push   %eax
640f63:	8b 54 24 10          	mov    0x10(%esp),%edx
640f67:	c1 e2 12             	shl    $0x12,%edx
640f6a:	33 c0                	xor    %eax,%eax
640f6c:	0b 04 24             	or     (%esp),%eax
640f6f:	0b 54 24 04          	or     0x4(%esp),%edx
640f73:	83 c4 08             	add    $0x8,%esp
640f76:	52                   	push   %edx
640f77:	50                   	push   %eax
640f78:	8b 44 24 10          	mov    0x10(%esp),%eax
640f7c:	8b 54 24 14          	mov    0x14(%esp),%edx
640f80:	0f ac d0 12          	shrd   $0x12,%edx,%eax
640f84:	c1 ea 12             	shr    $0x12,%edx
640f87:	52                   	push   %edx
640f88:	50                   	push   %eax
640f89:	8b 54 24 18          	mov    0x18(%esp),%edx
640f8d:	c1 e2 0e             	shl    $0xe,%edx
640f90:	33 c0                	xor    %eax,%eax
640f92:	0b 04 24             	or     (%esp),%eax
640f95:	0b 54 24 04          	or     0x4(%esp),%edx
640f99:	83 c4 08             	add    $0x8,%esp
640f9c:	33 04 24             	xor    (%esp),%eax
640f9f:	33 54 24 04          	xor    0x4(%esp),%edx
640fa3:	83 c4 08             	add    $0x8,%esp
640fa6:	52                   	push   %edx
640fa7:	50                   	push   %eax
640fa8:	8b 44 24 14          	mov    0x14(%esp),%eax
640fac:	c1 e8 09             	shr    $0x9,%eax
640faf:	33 d2                	xor    %edx,%edx
640fb1:	52                   	push   %edx
640fb2:	50                   	push   %eax
640fb3:	8b 44 24 18          	mov    0x18(%esp),%eax
640fb7:	8b 54 24 1c          	mov    0x1c(%esp),%edx
640fbb:	0f a4 c2 17          	shld   $0x17,%eax,%edx
640fbf:	c1 e0 17             	shl    $0x17,%eax
640fc2:	0b 04 24             	or     (%esp),%eax
640fc5:	0b 54 24 04          	or     0x4(%esp),%edx
640fc9:	83 c4 08             	add    $0x8,%esp
640fcc:	33 04 24             	xor    (%esp),%eax
640fcf:	33 54 24 04          	xor    0x4(%esp),%edx
640fd3:	83 c4 08             	add    $0x8,%esp
640fd6:	03 44 24 20          	add    0x20(%esp),%eax
640fda:	13 54 24 24          	adc    0x24(%esp),%edx
640fde:	52                   	push   %edx
640fdf:	50                   	push   %eax
640fe0:	8b 44 24 10          	mov    0x10(%esp),%eax
640fe4:	8b 54 24 14          	mov    0x14(%esp),%edx
640fe8:	23 44 24 18          	and    0x18(%esp),%eax
640fec:	23 54 24 1c          	and    0x1c(%esp),%edx
640ff0:	52                   	push   %edx
640ff1:	50                   	push   %eax
640ff2:	8b 44 24 18          	mov    0x18(%esp),%eax
640ff6:	8b 54 24 1c          	mov    0x1c(%esp),%edx
640ffa:	f7 d0                	not    %eax
640ffc:	f7 d2                	not    %edx
640ffe:	23 44 24 28          	and    0x28(%esp),%eax
641002:	23 54 24 2c          	and    0x2c(%esp),%edx
641006:	33 04 24             	xor    (%esp),%eax
641009:	33 54 24 04          	xor    0x4(%esp),%edx
64100d:	83 c4 08             	add    $0x8,%esp
641010:	03 04 24             	add    (%esp),%eax
641013:	13 54 24 04          	adc    0x4(%esp),%edx
641017:	83 c4 08             	add    $0x8,%esp
64101a:	05 e2 b4 ff d5       	add    $0xd5ffb4e2,%eax
64101f:	81 d2 c3 7d 0c 55    	adc    $0x550c7dc3,%edx
641025:	03 84 24 a8 00 00 00 	add    0xa8(%esp),%eax
64102c:	13 94 24 ac 00 00 00 	adc    0xac(%esp),%edx
641033:	89 44 24 40          	mov    %eax,0x40(%esp)
641037:	89 54 24 44          	mov    %edx,0x44(%esp)
64103b:	8b 44 24 28          	mov    0x28(%esp),%eax
64103f:	8b 54 24 2c          	mov    0x2c(%esp),%edx
641043:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
641047:	c1 ea 1c             	shr    $0x1c,%edx
64104a:	52                   	push   %edx
64104b:	50                   	push   %eax
64104c:	8b 54 24 30          	mov    0x30(%esp),%edx
641050:	c1 e2 04             	shl    $0x4,%edx
641053:	33 c0                	xor    %eax,%eax
641055:	0b 04 24             	or     (%esp),%eax
641058:	0b 54 24 04          	or     0x4(%esp),%edx
64105c:	83 c4 08             	add    $0x8,%esp
64105f:	52                   	push   %edx
641060:	50                   	push   %eax
641061:	8b 44 24 34          	mov    0x34(%esp),%eax
641065:	c1 e8 02             	shr    $0x2,%eax
641068:	33 d2                	xor    %edx,%edx
64106a:	52                   	push   %edx
64106b:	50                   	push   %eax
64106c:	8b 44 24 38          	mov    0x38(%esp),%eax
641070:	8b 54 24 3c          	mov    0x3c(%esp),%edx
641074:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
641078:	c1 e0 1e             	shl    $0x1e,%eax
64107b:	0b 04 24             	or     (%esp),%eax
64107e:	0b 54 24 04          	or     0x4(%esp),%edx
641082:	83 c4 08             	add    $0x8,%esp
641085:	33 04 24             	xor    (%esp),%eax
641088:	33 54 24 04          	xor    0x4(%esp),%edx
64108c:	83 c4 08             	add    $0x8,%esp
64108f:	52                   	push   %edx
641090:	50                   	push   %eax
641091:	8b 44 24 34          	mov    0x34(%esp),%eax
641095:	c1 e8 07             	shr    $0x7,%eax
641098:	33 d2                	xor    %edx,%edx
64109a:	52                   	push   %edx
64109b:	50                   	push   %eax
64109c:	8b 44 24 38          	mov    0x38(%esp),%eax
6410a0:	8b 54 24 3c          	mov    0x3c(%esp),%edx
6410a4:	0f a4 c2 19          	shld   $0x19,%eax,%edx
6410a8:	c1 e0 19             	shl    $0x19,%eax
6410ab:	0b 04 24             	or     (%esp),%eax
6410ae:	0b 54 24 04          	or     0x4(%esp),%edx
6410b2:	83 c4 08             	add    $0x8,%esp
6410b5:	33 04 24             	xor    (%esp),%eax
6410b8:	33 54 24 04          	xor    0x4(%esp),%edx
6410bc:	83 c4 08             	add    $0x8,%esp
6410bf:	52                   	push   %edx
6410c0:	50                   	push   %eax
6410c1:	8b 44 24 30          	mov    0x30(%esp),%eax
6410c5:	8b 54 24 34          	mov    0x34(%esp),%edx
6410c9:	23 44 24 38          	and    0x38(%esp),%eax
6410cd:	23 54 24 3c          	and    0x3c(%esp),%edx
6410d1:	52                   	push   %edx
6410d2:	50                   	push   %eax
6410d3:	8b 44 24 38          	mov    0x38(%esp),%eax
6410d7:	8b 54 24 3c          	mov    0x3c(%esp),%edx
6410db:	23 44 24 48          	and    0x48(%esp),%eax
6410df:	23 54 24 4c          	and    0x4c(%esp),%edx
6410e3:	33 04 24             	xor    (%esp),%eax
6410e6:	33 54 24 04          	xor    0x4(%esp),%edx
6410ea:	83 c4 08             	add    $0x8,%esp
6410ed:	52                   	push   %edx
6410ee:	50                   	push   %eax
6410ef:	8b 44 24 40          	mov    0x40(%esp),%eax
6410f3:	8b 54 24 44          	mov    0x44(%esp),%edx
6410f7:	23 44 24 48          	and    0x48(%esp),%eax