642666:	83 c4 08             	add    $0x8,%esp
642669:	52                   	push   %edx
64266a:	50                   	push   %eax
64266b:	8b 44 24 18          	mov    0x18(%esp),%eax
64266f:	8b 54 24 1c          	mov    0x1c(%esp),%edx
642673:	23 44 24 20          	and    0x20(%esp),%eax
642677:	23 54 24 24          	and    0x24(%esp),%edx
64267b:	52                   	push   %edx
64267c:	50                   	push   %eax
64267d:	8b 44 24 20          	mov    0x20(%esp),%eax
642681:	8b 54 24 24          	mov    0x24(%esp),%edx
642685:	23 44 24 30          	and    0x30(%esp),%eax
642689:	23 54 24 34          	and    0x34(%esp),%edx
64268d:	33 04 24             	xor    (%esp),%eax
642690:	33 54 24 04          	xor    0x4(%esp),%edx
642694:	83 c4 08             	add    $0x8,%esp
642697:	52                   	push   %edx
642698:	50                   	push   %eax
642699:	8b 44 24 28          	mov    0x28(%esp),%eax
64269d:	8b 54 24 2c          	mov    0x2c(%esp),%edx
6426a1:	23 44 24 30          	and    0x30(%esp),%eax
6426a5:	23 54 24 34          	and    0x34(%esp),%edx
6426a9:	33 04 24             	xor    (%esp),%eax
6426ac:	33 54 24 04          	xor    0x4(%esp),%edx
6426b0:	83 c4 08             	add    $0x8,%esp
6426b3:	03 04 24             	add    (%esp),%eax
6426b6:	13 54 24 04          	adc    0x4(%esp),%edx
6426ba:	83 c4 08             	add    $0x8,%esp
6426bd:	89 44 24 48          	mov    %eax,0x48(%esp)
6426c1:	89 54 24 4c          	mov    %edx,0x4c(%esp)
6426c5:	8b 44 24 28          	mov    0x28(%esp),%eax
6426c9:	8b 54 24 2c          	mov    0x2c(%esp),%edx
6426cd:	03 44 24 40          	add    0x40(%esp),%eax
6426d1:	13 54 24 44          	adc    0x44(%esp),%edx
6426d5:	89 44 24 28          	mov    %eax,0x28(%esp)
6426d9:	89 54 24 2c          	mov    %edx,0x2c(%esp)
6426dd:	8b 44 24 40          	mov    0x40(%esp),%eax
6426e1:	8b 54 24 44          	mov    0x44(%esp),%edx
6426e5:	03 44 24 48          	add    0x48(%esp),%eax
6426e9:	13 54 24 4c          	adc    0x4c(%esp),%edx
6426ed:	89 44 24 08          	mov    %eax,0x8(%esp)
6426f1:	89 54 24 0c          	mov    %edx,0xc(%esp)
6426f5:	8b 44 24 28          	mov    0x28(%esp),%eax
6426f9:	8b 54 24 2c          	mov    0x2c(%esp),%edx
6426fd:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
642701:	c1 ea 0e             	shr    $0xe,%edx
642704:	52                   	push   %edx
642705:	50                   	push   %eax
642706:	8b 54 24 30          	mov    0x30(%esp),%edx
64270a:	c1 e2 12             	shl    $0x12,%edx
64270d:	33 c0                	xor    %eax,%eax
64270f:	0b 04 24             	or     (%esp),%eax
642712:	0b 54 24 04          	or     0x4(%esp),%edx
642716:	83 c4 08             	add    $0x8,%esp
642719:	52                   	push   %edx
64271a:	50                   	push   %eax
64271b:	8b 44 24 30          	mov    0x30(%esp),%eax
64271f:	8b 54 24 34          	mov    0x34(%esp),%edx
642723:	0f ac d0 12          	shrd   $0x12,%edx,%eax
642727:	c1 ea 12             	shr    $0x12,%edx
64272a:	52                   	push   %edx
64272b:	50                   	push   %eax
64272c:	8b 54 24 38          	mov    0x38(%esp),%edx
642730:	c1 e2 0e             	shl    $0xe,%edx
642733:	33 c0                	xor    %eax,%eax
642735:	0b 04 24             	or     (%esp),%eax
642738:	0b 54 24 04          	or     0x4(%esp),%edx
64273c:	83 c4 08             	add    $0x8,%esp
64273f:	33 04 24             	xor    (%esp),%eax
642742:	33 54 24 04          	xor    0x4(%esp),%edx
642746:	83 c4 08             	add    $0x8,%esp
642749:	52                   	push   %edx
64274a:	50                   	push   %eax
64274b:	8b 44 24 34          	mov    0x34(%esp),%eax
64274f:	c1 e8 09             	shr    $0x9,%eax
642752:	33 d2                	xor    %edx,%edx
642754:	52                   	push   %edx
642755:	50                   	push   %eax
642756:	8b 44 24 38          	mov    0x38(%esp),%eax
64275a:	8b 54 24 3c          	mov    0x3c(%esp),%edx
64275e:	0f a4 c2 17          	shld   $0x17,%eax,%edx
642762:	c1 e0 17             	shl    $0x17,%eax
642765:	0b 04 24             	or     (%esp),%eax
642768:	0b 54 24 04          	or     0x4(%esp),%edx
64276c:	83 c4 08             	add    $0x8,%esp
64276f:	33 04 24             	xor    (%esp),%eax
642772:	33 54 24 04          	xor    0x4(%esp),%edx
642776:	83 c4 08             	add    $0x8,%esp
642779:	03 04 24             	add    (%esp),%eax
64277c:	13 54 24 04          	adc    0x4(%esp),%edx
642780:	52                   	push   %edx
642781:	50                   	push   %eax
642782:	8b 44 24 30          	mov    0x30(%esp),%eax
642786:	8b 54 24 34          	mov    0x34(%esp),%edx
64278a:	23 44 24 38          	and    0x38(%esp),%eax
64278e:	23 54 24 3c          	and    0x3c(%esp),%edx
642792:	52                   	push   %edx
642793:	50                   	push   %eax
642794:	8b 44 24 38          	mov    0x38(%esp),%eax
642798:	8b 54 24 3c          	mov    0x3c(%esp),%edx
64279c:	f7 d0                	not    %eax
64279e:	f7 d2                	not    %edx
6427a0:	23 44 24 48          	and    0x48(%esp),%eax
6427a4:	23 54 24 4c          	and    0x4c(%esp),%edx
6427a8:	33 04 24             	xor    (%esp),%eax
6427ab:	33 54 24 04          	xor    0x4(%esp),%edx
6427af:	83 c4 08             	add    $0x8,%esp
6427b2:	03 04 24             	add    (%esp),%eax
6427b5:	13 54 24 04          	adc    0x4(%esp),%edx
6427b9:	83 c4 08             	add    $0x8,%esp
6427bc:	05 b5 53 11 83       	add    $0x831153b5,%eax
6427c1:	81 d2 da 88 f9 76    	adc    $0x76f988da,%edx
6427c7:	03 84 24 08 01 00 00 	add    0x108(%esp),%eax
6427ce:	13 94 24 0c 01 00 00 	adc    0x10c(%esp),%edx
6427d5:	89 44 24 40          	mov    %eax,0x40(%esp)
6427d9:	89 54 24 44          	mov    %edx,0x44(%esp)
6427dd:	8b 44 24 08          	mov    0x8(%esp),%eax
6427e1:	8b 54 24 0c          	mov    0xc(%esp),%edx
6427e5:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
6427e9:	c1 ea 1c             	shr    $0x1c,%edx
6427ec:	52                   	push   %edx
6427ed:	50                   	push   %eax
6427ee:	8b 54 24 10          	mov    0x10(%esp),%edx
6427f2:	c1 e2 04             	shl    $0x4,%edx
6427f5:	33 c0                	xor    %eax,%eax
6427f7:	0b 04 24             	or     (%esp),%eax
6427fa:	0b 54 24 04          	or     0x4(%esp),%edx
6427fe:	83 c4 08             	add    $0x8,%esp
642801:	52                   	push   %edx
642802:	50                   	push   %eax
642803:	8b 44 24 14          	mov    0x14(%esp),%eax
642807:	c1 e8 02             	shr    $0x2,%eax
64280a:	33 d2                	xor    %edx,%edx
64280c:	52                   	push   %edx
64280d:	50                   	push   %eax
64280e:	8b 44 24 18          	mov    0x18(%esp),%eax
642812:	8b 54 24 1c          	mov    0x1c(%esp),%edx
642816:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
64281a:	c1 e0 1e             	shl    $0x1e,%eax
64281d:	0b 04 24             	or     (%esp),%eax
642820:	0b 54 24 04          	or     0x4(%esp),%edx
642824:	83 c4 08             	add    $0x8,%esp
642827:	33 04 24             	xor    (%esp),%eax
64282a:	33 54 24 04          	xor    0x4(%esp),%edx
64282e:	83 c4 08             	add    $0x8,%esp
642831:	52                   	push   %edx
642832:	50                   	push   %eax
642833:	8b 44 24 14          	mov    0x14(%esp),%eax
642837:	c1 e8 07             	shr    $0x7,%eax
64283a:	33 d2                	xor    %edx,%edx
64283c:	52                   	push   %edx
64283d:	50                   	push   %eax
64283e:	8b 44 24 18          	mov    0x18(%esp),%eax
642842:	8b 54 24 1c          	mov    0x1c(%esp),%edx
642846:	0f a4 c2 19          	shld   $0x19,%eax,%edx
64284a:	c1 e0 19             	shl    $0x19,%eax
64284d:	0b 04 24             	or     (%esp),%eax
642850:	0b 54 24 04          	or     0x4(%esp),%edx
642854:	83 c4 08             	add    $0x8,%esp
642857:	33 04 24             	xor    (%esp),%eax
64285a:	33 54 24 04          	xor    0x4(%esp),%edx
64285e:	83 c4 08             	add    $0x8,%esp
642861:	52                   	push   %edx
642862:	50                   	push   %eax
642863:	8b 44 24 10          	mov    0x10(%esp),%eax
642867:	8b 54 24 14          	mov    0x14(%esp),%edx
64286b:	23 44 24 18          	and    0x18(%esp),%eax
64286f:	23 54 24 1c          	and    0x1c(%esp),%edx
642873:	52                   	push   %edx
642874:	50                   	push   %eax
642875:	8b 44 24 18          	mov    0x18(%esp),%eax
642879:	8b 54 24 1c          	mov    0x1c(%esp),%edx
64287d:	23 44 24 28          	and    0x28(%esp),%eax
642881:	23 54 24 2c          	and    0x2c(%esp),%edx
642885:	33 04 24             	xor    (%esp),%eax
642888:	33 54 24 04          	xor    0x4(%esp),%edx
64288c:	83 c4 08             	add    $0x8,%esp
64288f:	52                   	push   %edx
642890:	50                   	push   %eax
642891:	8b 44 24 20          	mov    0x20(%esp),%eax
642895:	8b 54 24 24          	mov    0x24(%esp),%edx
642899:	23 44 24 28          	and    0x28(%esp),%eax
64289d:	23 54 24 2c          	and    0x2c(%esp),%edx
6428a1:	33 04 24             	xor    (%esp),%eax
6428a4:	33 54 24 04          	xor    0x4(%esp),%edx
6428a8:	83 c4 08             	add    $0x8,%esp
6428ab:	03 04 24             	add    (%esp),%eax
6428ae:	13 54 24 04          	adc    0x4(%esp),%edx
6428b2:	83 c4 08             	add    $0x8,%esp
6428b5:	89 44 24 48          	mov    %eax,0x48(%esp)
6428b9:	89 54 24 4c          	mov    %edx,0x4c(%esp)
6428bd:	8b 44 24 20          	mov    0x20(%esp),%eax
6428c1:	8b 54 24 24          	mov    0x24(%esp),%edx
6428c5:	03 44 24 40          	add    0x40(%esp),%eax
6428c9:	13 54 24 44          	adc    0x44(%esp),%edx
6428cd:	89 44 24 20          	mov    %eax,0x20(%esp)
6428d1:	89 54 24 24          	mov    %edx,0x24(%esp)
6428d5:	8b 44 24 40          	mov    0x40(%esp),%eax
6428d9:	8b 54 24 44          	mov    0x44(%esp),%edx
6428dd:	03 44 24 48          	add    0x48(%esp),%eax
6428e1:	13 54 24 4c          	adc    0x4c(%esp),%edx
6428e5:	89 04 24             	mov    %eax,(%esp)
6428e8:	89 54 24 04          	mov    %edx,0x4(%esp)
6428ec:	8b 44 24 20          	mov    0x20(%esp),%eax
6428f0:	8b 54 24 24          	mov    0x24(%esp),%edx
6428f4:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
6428f8:	c1 ea 0e             	shr    $0xe,%edx
6428fb:	52                   	push   %edx
6428fc:	50                   	push   %eax
6428fd:	8b 54 24 28          	mov    0x28(%esp),%edx
642901:	c1 e2 12             	shl    $0x12,%edx
642904:	33 c0                	xor    %eax,%eax
642906:	0b 04 24             	or     (%esp),%eax
642909:	0b 54 24 04          	or     0x4(%esp),%edx
64290d:	83 c4 08             	add    $0x8,%esp
642910:	52                   	push   %edx
642911:	50                   	push   %eax
642912:	8b 44 24 28          	mov    0x28(%esp),%eax
642916:	8b 54 24 2c          	mov    0x2c(%esp),%edx
64291a:	0f ac d0 12          	shrd   $0x12,%edx,%eax
64291e:	c1 ea 12             	shr    $0x12,%edx
642921:	52                   	push   %edx
642922:	50                   	push   %eax
642923:	8b 54 24 30          	mov    0x30(%esp),%edx
642927:	c1 e2 0e             	shl    $0xe,%edx
64292a:	33 c0                	xor    %eax,%eax
64292c:	0b 04 24             	or     (%esp),%eax
64292f:	0b 54 24 04          	or     0x4(%esp),%edx
642933:	83 c4 08             	add    $0x8,%esp
642936:	33 04 24             	xor    (%esp),%eax
642939:	33 54 24 04          	xor    0x4(%esp),%edx
64293d:	83 c4 08             	add    $0x8,%esp
642940:	52                   	push   %edx
642941:	50                   	push   %eax
642942:	8b 44 24 2c          	mov    0x2c(%esp),%eax
642946:	c1 e8 09             	shr    $0x9,%eax
642949:	33 d2                	xor    %edx,%edx
64294b:	52                   	push   %edx
64294c:	50                   	push   %eax
64294d:	8b 44 24 30          	mov    0x30(%esp),%eax
642951:	8b 54 24 34          	mov    0x34(%esp),%edx
642955:	0f a4 c2 17          	shld   $0x17,%eax,%edx
642959:	c1 e0 17             	shl    $0x17,%eax
64295c:	0b 04 24             	or     (%esp),%eax
64295f:	0b 54 24 04          	or     0x4(%esp),%edx
642963:	83 c4 08             	add    $0x8,%esp
642966:	33 04 24             	xor    (%esp),%eax
642969:	33 54 24 04          	xor    0x4(%esp),%edx
64296d:	83 c4 08             	add    $0x8,%esp
642970:	03 44 24 38          	add    0x38(%esp),%eax
642974:	13 54 24 3c          	adc    0x3c(%esp),%edx
642978:	52                   	push   %edx
642979:	50                   	push   %eax
64297a:	8b 44 24 28          	mov    0x28(%esp),%eax
64297e:	8b 54 24 2c          	mov    0x2c(%esp),%edx
642982:	23 44 24 30          	and    0x30(%esp),%eax
642986:	23 54 24 34          	and    0x34(%esp),%edx
64298a:	52                   	push   %edx
64298b:	50                   	push   %eax
64298c:	8b 44 24 30          	mov    0x30(%esp),%eax
642990:	8b 54 24 34          	mov    0x34(%esp),%edx
642994:	f7 d0                	not    %eax
642996:	f7 d2                	not    %edx
642998:	23 44 24 40          	and    0x40(%esp),%eax
64299c:	23 54 24 44          	and    0x44(%esp),%edx
6429a0:	33 04 24             	xor    (%esp),%eax
6429a3:	33 54 24 04          	xor    0x4(%esp),%edx
6429a7:	83 c4 08             	add    $0x8,%esp
6429aa:	03 04 24             	add    (%esp),%eax
6429ad:	13 54 24 04          	adc    0x4(%esp),%edx
6429b1:	83 c4 08             	add    $0x8,%esp
6429b4:	05 ab df 66 ee       	add    $0xee66dfab,%eax
6429b9:	81 d2 52 51 3e 98    	adc    $0x983e5152,%edx
6429bf:	03 84 24 10 01 00 00 	add    0x110(%esp),%eax
6429c6:	13 94 24 14 01 00 00 	adc    0x114(%esp),%edx
6429cd:	89 44 24 40          	mov    %eax,0x40(%esp)
6429d1:	89 54 24 44          	mov    %edx,0x44(%esp)
6429d5:	8b 04 24             	mov    (%esp),%eax
6429d8:	8b 54 24 04          	mov    0x4(%esp),%edx
6429dc:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
6429e0:	c1 ea 1c             	shr    $0x1c,%edx
6429e3:	52                   	push   %edx
6429e4:	50                   	push   %eax
6429e5:	8b 54 24 08          	mov    0x8(%esp),%edx
6429e9:	c1 e2 04             	shl    $0x4,%edx
6429ec:	33 c0                	xor    %eax,%eax
6429ee:	0b 04 24             	or     (%esp),%eax
6429f1:	0b 54 24 04          	or     0x4(%esp),%edx
6429f5:	83 c4 08             	add    $0x8,%esp
6429f8:	52                   	push   %edx
6429f9:	50                   	push   %eax
6429fa:	8b 44 24 0c          	mov    0xc(%esp),%eax
6429fe:	c1 e8 02             	shr    $0x2,%eax
642a01:	33 d2                	xor    %edx,%edx
642a03:	52                   	push   %edx
642a04:	50                   	push   %eax
642a05:	8b 44 24 10          	mov    0x10(%esp),%eax
642a09:	8b 54 24 14          	mov    0x14(%esp),%edx
642a0d:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
642a11:	c1 e0 1e             	shl    $0x1e,%eax
642a14:	0b 04 24             	or     (%esp),%eax
642a17:	0b 54 24 04          	or     0x4(%esp),%edx
642a1b:	83 c4 08             	add    $0x8,%esp
642a1e:	33 04 24             	xor    (%esp),%eax
642a21:	33 54 24 04          	xor    0x4(%esp),%edx
642a25:	83 c4 08             	add    $0x8,%esp
642a28:	52                   	push   %edx
642a29:	50                   	push   %eax
642a2a:	8b 44 24 0c          	mov    0xc(%esp),%eax
642a2e:	c1 e8 07             	shr    $0x7,%eax
642a31:	33 d2                	xor    %edx,%edx
642a33:	52                   	push   %edx
642a34:	50                   	push   %eax
642a35:	8b 44 24 10          	mov    0x10(%esp),%eax
642a39:	8b 54 24 14          	mov    0x14(%esp),%edx
642a3d:	0f a4 c2 19          	shld   $0x19,%eax,%edx
642a41:	c1 e0 19             	shl    $0x19,%eax
642a44:	0b 04 24             	or     (%esp),%eax
642a47:	0b 54 24 04          	or     0x4(%esp),%edx
642a4b:	83 c4 08             	add    $0x8,%esp
642a4e:	33 04 24             	xor    (%esp),%eax
642a51:	33 54 24 04          	xor    0x4(%esp),%edx
642a55:	83 c4 08             	add    $0x8,%esp
642a58:	52                   	push   %edx
642a59:	50                   	push   %eax
642a5a:	8b 44 24 08          	mov    0x8(%esp),%eax
642a5e:	8b 54 24 0c          	mov    0xc(%esp),%edx
642a62:	23 44 24 10          	and    0x10(%esp),%eax
642a66:	23 54 24 14          	and    0x14(%esp),%edx
642a6a:	52                   	push   %edx
642a6b:	50                   	push   %eax
642a6c:	8b 44 24 10          	mov    0x10(%esp),%eax
642a70:	8b 54 24 14          	mov    0x14(%esp),%edx
642a74:	23 44 24 20          	and    0x20(%esp),%eax
642a78:	23 54 24 24          	and    0x24(%esp),%edx
642a7c:	33 04 24             	xor    (%esp),%eax
642a7f:	33 54 24 04          	xor    0x4(%esp),%edx
642a83:	83 c4 08             	add    $0x8,%esp
642a86:	52                   	push   %edx
642a87:	50                   	push   %eax
642a88:	8b 44 24 18          	mov    0x18(%esp),%eax
642a8c:	8b 54 24 1c          	mov    0x1c(%esp),%edx
642a90:	23 44 24 20          	and    0x20(%esp),%eax
642a94:	23 54 24 24          	and    0x24(%esp),%edx
642a98:	33 04 24             	xor    (%esp),%eax
642a9b:	33 54 24 04          	xor    0x4(%esp),%edx
642a9f:	83 c4 08             	add    $0x8,%esp
642aa2:	03 04 24             	add    (%esp),%eax
642aa5:	13 54 24 04          	adc    0x4(%esp),%edx
642aa9:	83 c4 08             	add    $0x8,%esp