6457a4:	83 c4 08             	add    $0x8,%esp
6457a7:	52                   	push   %edx
6457a8:	50                   	push   %eax
6457a9:	8b 44 24 10          	mov    0x10(%esp),%eax
6457ad:	8b 54 24 14          	mov    0x14(%esp),%edx
6457b1:	23 44 24 18          	and    0x18(%esp),%eax
6457b5:	23 54 24 1c          	and    0x1c(%esp),%edx
6457b9:	52                   	push   %edx
6457ba:	50                   	push   %eax
6457bb:	8b 44 24 18          	mov    0x18(%esp),%eax
6457bf:	8b 54 24 1c          	mov    0x1c(%esp),%edx
6457c3:	23 44 24 28          	and    0x28(%esp),%eax
6457c7:	23 54 24 2c          	and    0x2c(%esp),%edx
6457cb:	33 04 24             	xor    (%esp),%eax
6457ce:	33 54 24 04          	xor    0x4(%esp),%edx
6457d2:	83 c4 08             	add    $0x8,%esp
6457d5:	52                   	push   %edx
6457d6:	50                   	push   %eax
6457d7:	8b 44 24 20          	mov    0x20(%esp),%eax
6457db:	8b 54 24 24          	mov    0x24(%esp),%edx
6457df:	23 44 24 28          	and    0x28(%esp),%eax
6457e3:	23 54 24 2c          	and    0x2c(%esp),%edx
6457e7:	33 04 24             	xor    (%esp),%eax
6457ea:	33 54 24 04          	xor    0x4(%esp),%edx
6457ee:	83 c4 08             	add    $0x8,%esp
6457f1:	03 04 24             	add    (%esp),%eax
6457f4:	13 54 24 04          	adc    0x4(%esp),%edx
6457f8:	83 c4 08             	add    $0x8,%esp
6457fb:	89 44 24 48          	mov    %eax,0x48(%esp)
6457ff:	89 54 24 4c          	mov    %edx,0x4c(%esp)
645803:	8b 44 24 20          	mov    0x20(%esp),%eax
645807:	8b 54 24 24          	mov    0x24(%esp),%edx
64580b:	03 44 24 40          	add    0x40(%esp),%eax
64580f:	13 54 24 44          	adc    0x44(%esp),%edx
645813:	89 44 24 20          	mov    %eax,0x20(%esp)
645817:	89 54 24 24          	mov    %edx,0x24(%esp)
64581b:	8b 44 24 40          	mov    0x40(%esp),%eax
64581f:	8b 54 24 44          	mov    0x44(%esp),%edx
645823:	03 44 24 48          	add    0x48(%esp),%eax
645827:	13 54 24 4c          	adc    0x4c(%esp),%edx
64582b:	89 04 24             	mov    %eax,(%esp)
64582e:	89 54 24 04          	mov    %edx,0x4(%esp)
645832:	8b 44 24 20          	mov    0x20(%esp),%eax
645836:	8b 54 24 24          	mov    0x24(%esp),%edx
64583a:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
64583e:	c1 ea 0e             	shr    $0xe,%edx
645841:	52                   	push   %edx
645842:	50                   	push   %eax
645843:	8b 54 24 28          	mov    0x28(%esp),%edx
645847:	c1 e2 12             	shl    $0x12,%edx
64584a:	33 c0                	xor    %eax,%eax
64584c:	0b 04 24             	or     (%esp),%eax
64584f:	0b 54 24 04          	or     0x4(%esp),%edx
645853:	83 c4 08             	add    $0x8,%esp
645856:	52                   	push   %edx
645857:	50                   	push   %eax
645858:	8b 44 24 28          	mov    0x28(%esp),%eax
64585c:	8b 54 24 2c          	mov    0x2c(%esp),%edx
645860:	0f ac d0 12          	shrd   $0x12,%edx,%eax
645864:	c1 ea 12             	shr    $0x12,%edx
645867:	52                   	push   %edx
645868:	50                   	push   %eax
645869:	8b 54 24 30          	mov    0x30(%esp),%edx
64586d:	c1 e2 0e             	shl    $0xe,%edx
645870:	33 c0                	xor    %eax,%eax
645872:	0b 04 24             	or     (%esp),%eax
645875:	0b 54 24 04          	or     0x4(%esp),%edx
645879:	83 c4 08             	add    $0x8,%esp
64587c:	33 04 24             	xor    (%esp),%eax
64587f:	33 54 24 04          	xor    0x4(%esp),%edx
645883:	83 c4 08             	add    $0x8,%esp
645886:	52                   	push   %edx
645887:	50                   	push   %eax
645888:	8b 44 24 2c          	mov    0x2c(%esp),%eax
64588c:	c1 e8 09             	shr    $0x9,%eax
64588f:	33 d2                	xor    %edx,%edx
645891:	52                   	push   %edx
645892:	50                   	push   %eax
645893:	8b 44 24 30          	mov    0x30(%esp),%eax
645897:	8b 54 24 34          	mov    0x34(%esp),%edx
64589b:	0f a4 c2 17          	shld   $0x17,%eax,%edx
64589f:	c1 e0 17             	shl    $0x17,%eax
6458a2:	0b 04 24             	or     (%esp),%eax
6458a5:	0b 54 24 04          	or     0x4(%esp),%edx
6458a9:	83 c4 08             	add    $0x8,%esp
6458ac:	33 04 24             	xor    (%esp),%eax
6458af:	33 54 24 04          	xor    0x4(%esp),%edx
6458b3:	83 c4 08             	add    $0x8,%esp
6458b6:	03 44 24 38          	add    0x38(%esp),%eax
6458ba:	13 54 24 3c          	adc    0x3c(%esp),%edx
6458be:	52                   	push   %edx
6458bf:	50                   	push   %eax
6458c0:	8b 44 24 28          	mov    0x28(%esp),%eax
6458c4:	8b 54 24 2c          	mov    0x2c(%esp),%edx
6458c8:	23 44 24 30          	and    0x30(%esp),%eax
6458cc:	23 54 24 34          	and    0x34(%esp),%edx
6458d0:	52                   	push   %edx
6458d1:	50                   	push   %eax
6458d2:	8b 44 24 30          	mov    0x30(%esp),%eax
6458d6:	8b 54 24 34          	mov    0x34(%esp),%edx
6458da:	f7 d0                	not    %eax
6458dc:	f7 d2                	not    %edx
6458de:	23 44 24 40          	and    0x40(%esp),%eax
6458e2:	23 54 24 44          	and    0x44(%esp),%edx
6458e6:	33 04 24             	xor    (%esp),%eax
6458e9:	33 54 24 04          	xor    0x4(%esp),%edx
6458ed:	83 c4 08             	add    $0x8,%esp
6458f0:	03 04 24             	add    (%esp),%eax
6458f3:	13 54 24 04          	adc    0x4(%esp),%edx
6458f7:	83 c4 08             	add    $0x8,%esp
6458fa:	05 c8 d0 d2 b8       	add    $0xb8d2d0c8,%eax
6458ff:	81 d2 16 c1 a4 19    	adc    $0x19a4c116,%edx
645905:	03 84 24 d0 01 00 00 	add    0x1d0(%esp),%eax
64590c:	13 94 24 d4 01 00 00 	adc    0x1d4(%esp),%edx
645913:	89 44 24 40          	mov    %eax,0x40(%esp)
645917:	89 54 24 44          	mov    %edx,0x44(%esp)
64591b:	8b 04 24             	mov    (%esp),%eax
64591e:	8b 54 24 04          	mov    0x4(%esp),%edx
645922:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
645926:	c1 ea 1c             	shr    $0x1c,%edx
645929:	52                   	push   %edx
64592a:	50                   	push   %eax
64592b:	8b 54 24 08          	mov    0x8(%esp),%edx
64592f:	c1 e2 04             	shl    $0x4,%edx
645932:	33 c0                	xor    %eax,%eax
645934:	0b 04 24             	or     (%esp),%eax
645937:	0b 54 24 04          	or     0x4(%esp),%edx
64593b:	83 c4 08             	add    $0x8,%esp
64593e:	52                   	push   %edx
64593f:	50                   	push   %eax
645940:	8b 44 24 0c          	mov    0xc(%esp),%eax
645944:	c1 e8 02             	shr    $0x2,%eax
645947:	33 d2                	xor    %edx,%edx
645949:	52                   	push   %edx
64594a:	50                   	push   %eax
64594b:	8b 44 24 10          	mov    0x10(%esp),%eax
64594f:	8b 54 24 14          	mov    0x14(%esp),%edx
645953:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
645957:	c1 e0 1e             	shl    $0x1e,%eax
64595a:	0b 04 24             	or     (%esp),%eax
64595d:	0b 54 24 04          	or     0x4(%esp),%edx
645961:	83 c4 08             	add    $0x8,%esp
645964:	33 04 24             	xor    (%esp),%eax
645967:	33 54 24 04          	xor    0x4(%esp),%edx
64596b:	83 c4 08             	add    $0x8,%esp
64596e:	52                   	push   %edx
64596f:	50                   	push   %eax
645970:	8b 44 24 0c          	mov    0xc(%esp),%eax
645974:	c1 e8 07             	shr    $0x7,%eax
645977:	33 d2                	xor    %edx,%edx
645979:	52                   	push   %edx
64597a:	50                   	push   %eax
64597b:	8b 44 24 10          	mov    0x10(%esp),%eax
64597f:	8b 54 24 14          	mov    0x14(%esp),%edx
645983:	0f a4 c2 19          	shld   $0x19,%eax,%edx
645987:	c1 e0 19             	shl    $0x19,%eax
64598a:	0b 04 24             	or     (%esp),%eax
64598d:	0b 54 24 04          	or     0x4(%esp),%edx
645991:	83 c4 08             	add    $0x8,%esp
645994:	33 04 24             	xor    (%esp),%eax
645997:	33 54 24 04          	xor    0x4(%esp),%edx
64599b:	83 c4 08             	add    $0x8,%esp
64599e:	52                   	push   %edx
64599f:	50                   	push   %eax
6459a0:	8b 44 24 08          	mov    0x8(%esp),%eax
6459a4:	8b 54 24 0c          	mov    0xc(%esp),%edx
6459a8:	23 44 24 10          	and    0x10(%esp),%eax
6459ac:	23 54 24 14          	and    0x14(%esp),%edx
6459b0:	52                   	push   %edx
6459b1:	50                   	push   %eax
6459b2:	8b 44 24 10          	mov    0x10(%esp),%eax
6459b6:	8b 54 24 14          	mov    0x14(%esp),%edx
6459ba:	23 44 24 20          	and    0x20(%esp),%eax
6459be:	23 54 24 24          	and    0x24(%esp),%edx
6459c2:	33 04 24             	xor    (%esp),%eax
6459c5:	33 54 24 04          	xor    0x4(%esp),%edx
6459c9:	83 c4 08             	add    $0x8,%esp
6459cc:	52                   	push   %edx
6459cd:	50                   	push   %eax
6459ce:	8b 44 24 18          	mov    0x18(%esp),%eax
6459d2:	8b 54 24 1c          	mov    0x1c(%esp),%edx
6459d6:	23 44 24 20          	and    0x20(%esp),%eax
6459da:	23 54 24 24          	and    0x24(%esp),%edx
6459de:	33 04 24             	xor    (%esp),%eax
6459e1:	33 54 24 04          	xor    0x4(%esp),%edx
6459e5:	83 c4 08             	add    $0x8,%esp
6459e8:	03 04 24             	add    (%esp),%eax
6459eb:	13 54 24 04          	adc    0x4(%esp),%edx
6459ef:	83 c4 08             	add    $0x8,%esp
6459f2:	89 44 24 48          	mov    %eax,0x48(%esp)
6459f6:	89 54 24 4c          	mov    %edx,0x4c(%esp)
6459fa:	8b 44 24 18          	mov    0x18(%esp),%eax
6459fe:	8b 54 24 1c          	mov    0x1c(%esp),%edx
645a02:	03 44 24 40          	add    0x40(%esp),%eax
645a06:	13 54 24 44          	adc    0x44(%esp),%edx
645a0a:	89 44 24 18          	mov    %eax,0x18(%esp)
645a0e:	89 54 24 1c          	mov    %edx,0x1c(%esp)
645a12:	8b 44 24 40          	mov    0x40(%esp),%eax
645a16:	8b 54 24 44          	mov    0x44(%esp),%edx
645a1a:	03 44 24 48          	add    0x48(%esp),%eax
645a1e:	13 54 24 4c          	adc    0x4c(%esp),%edx
645a22:	89 44 24 38          	mov    %eax,0x38(%esp)
645a26:	89 54 24 3c          	mov    %edx,0x3c(%esp)
645a2a:	8b 44 24 18          	mov    0x18(%esp),%eax
645a2e:	8b 54 24 1c          	mov    0x1c(%esp),%edx
645a32:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
645a36:	c1 ea 0e             	shr    $0xe,%edx
645a39:	52                   	push   %edx
645a3a:	50                   	push   %eax
645a3b:	8b 54 24 20          	mov    0x20(%esp),%edx
645a3f:	c1 e2 12             	shl    $0x12,%edx
645a42:	33 c0                	xor    %eax,%eax
645a44:	0b 04 24             	or     (%esp),%eax
645a47:	0b 54 24 04          	or     0x4(%esp),%edx
645a4b:	83 c4 08             	add    $0x8,%esp
645a4e:	52                   	push   %edx
645a4f:	50                   	push   %eax
645a50:	8b 44 24 20          	mov    0x20(%esp),%eax
645a54:	8b 54 24 24          	mov    0x24(%esp),%edx
645a58:	0f ac d0 12          	shrd   $0x12,%edx,%eax
645a5c:	c1 ea 12             	shr    $0x12,%edx
645a5f:	52                   	push   %edx
645a60:	50                   	push   %eax
645a61:	8b 54 24 28          	mov    0x28(%esp),%edx
645a65:	c1 e2 0e             	shl    $0xe,%edx
645a68:	33 c0                	xor    %eax,%eax
645a6a:	0b 04 24             	or     (%esp),%eax
645a6d:	0b 54 24 04          	or     0x4(%esp),%edx
645a71:	83 c4 08             	add    $0x8,%esp
645a74:	33 04 24             	xor    (%esp),%eax
645a77:	33 54 24 04          	xor    0x4(%esp),%edx
645a7b:	83 c4 08             	add    $0x8,%esp
645a7e:	52                   	push   %edx
645a7f:	50                   	push   %eax
645a80:	8b 44 24 24          	mov    0x24(%esp),%eax
645a84:	c1 e8 09             	shr    $0x9,%eax
645a87:	33 d2                	xor    %edx,%edx
645a89:	52                   	push   %edx
645a8a:	50                   	push   %eax
645a8b:	8b 44 24 28          	mov    0x28(%esp),%eax
645a8f:	8b 54 24 2c          	mov    0x2c(%esp),%edx
645a93:	0f a4 c2 17          	shld   $0x17,%eax,%edx
645a97:	c1 e0 17             	shl    $0x17,%eax
645a9a:	0b 04 24             	or     (%esp),%eax
645a9d:	0b 54 24 04          	or     0x4(%esp),%edx
645aa1:	83 c4 08             	add    $0x8,%esp
645aa4:	33 04 24             	xor    (%esp),%eax
645aa7:	33 54 24 04          	xor    0x4(%esp),%edx
645aab:	83 c4 08             	add    $0x8,%esp
645aae:	03 44 24 30          	add    0x30(%esp),%eax
645ab2:	13 54 24 34          	adc    0x34(%esp),%edx
645ab6:	52                   	push   %edx
645ab7:	50                   	push   %eax
645ab8:	8b 44 24 20          	mov    0x20(%esp),%eax
645abc:	8b 54 24 24          	mov    0x24(%esp),%edx
645ac0:	23 44 24 28          	and    0x28(%esp),%eax
645ac4:	23 54 24 2c          	and    0x2c(%esp),%edx
645ac8:	52                   	push   %edx
645ac9:	50                   	push   %eax
645aca:	8b 44 24 28          	mov    0x28(%esp),%eax
645ace:	8b 54 24 2c          	mov    0x2c(%esp),%edx
645ad2:	f7 d0                	not    %eax
645ad4:	f7 d2                	not    %edx
645ad6:	23 44 24 38          	and    0x38(%esp),%eax
645ada:	23 54 24 3c          	and    0x3c(%esp),%edx
645ade:	33 04 24             	xor    (%esp),%eax
645ae1:	33 54 24 04          	xor    0x4(%esp),%edx
645ae5:	83 c4 08             	add    $0x8,%esp
645ae8:	03 04 24             	add    (%esp),%eax
645aeb:	13 54 24 04          	adc    0x4(%esp),%edx
645aef:	83 c4 08             	add    $0x8,%esp
645af2:	05 53 ab 41 51       	add    $0x5141ab53,%eax
645af7:	81 d2 08 6c 37 1e    	adc    $0x1e376c08,%edx
645afd:	03 84 24 d8 01 00 00 	add    0x1d8(%esp),%eax
645b04:	13 94 24 dc 01 00 00 	adc    0x1dc(%esp),%edx
645b0b:	89 44 24 40          	mov    %eax,0x40(%esp)
645b0f:	89 54 24 44          	mov    %edx,0x44(%esp)
645b13:	8b 44 24 38          	mov    0x38(%esp),%eax
645b17:	8b 54 24 3c          	mov    0x3c(%esp),%edx
645b1b:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
645b1f:	c1 ea 1c             	shr    $0x1c,%edx
645b22:	52                   	push   %edx
645b23:	50                   	push   %eax
645b24:	8b 54 24 40          	mov    0x40(%esp),%edx
645b28:	c1 e2 04             	shl    $0x4,%edx
645b2b:	33 c0                	xor    %eax,%eax
645b2d:	0b 04 24             	or     (%esp),%eax
645b30:	0b 54 24 04          	or     0x4(%esp),%edx
645b34:	83 c4 08             	add    $0x8,%esp
645b37:	52                   	push   %edx
645b38:	50                   	push   %eax
645b39:	8b 44 24 44          	mov    0x44(%esp),%eax
645b3d:	c1 e8 02             	shr    $0x2,%eax
645b40:	33 d2                	xor    %edx,%edx
645b42:	52                   	push   %edx
645b43:	50                   	push   %eax
645b44:	8b 44 24 48          	mov    0x48(%esp),%eax
645b48:	8b 54 24 4c          	mov    0x4c(%esp),%edx
645b4c:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
645b50:	c1 e0 1e             	shl    $0x1e,%eax
645b53:	0b 04 24             	or     (%esp),%eax
645b56:	0b 54 24 04          	or     0x4(%esp),%edx
645b5a:	83 c4 08             	add    $0x8,%esp
645b5d:	33 04 24             	xor    (%esp),%eax
645b60:	33 54 24 04          	xor    0x4(%esp),%edx
645b64:	83 c4 08             	add    $0x8,%esp
645b67:	52                   	push   %edx
645b68:	50                   	push   %eax
645b69:	8b 44 24 44          	mov    0x44(%esp),%eax
645b6d:	c1 e8 07             	shr    $0x7,%eax
645b70:	33 d2                	xor    %edx,%edx
645b72:	52                   	push   %edx
645b73:	50                   	push   %eax
645b74:	8b 44 24 48          	mov    0x48(%esp),%eax
645b78:	8b 54 24 4c          	mov    0x4c(%esp),%edx
645b7c:	0f a4 c2 19          	shld   $0x19,%eax,%edx
645b80:	c1 e0 19             	shl    $0x19,%eax
645b83:	0b 04 24             	or     (%esp),%eax
645b86:	0b 54 24 04          	or     0x4(%esp),%edx
645b8a:	83 c4 08             	add    $0x8,%esp
645b8d:	33 04 24             	xor    (%esp),%eax
645b90:	33 54 24 04          	xor    0x4(%esp),%edx
645b94:	83 c4 08             	add    $0x8,%esp
645b97:	52                   	push   %edx
645b98:	50                   	push   %eax
645b99:	8b 44 24 40          	mov    0x40(%esp),%eax
645b9d:	8b 54 24 44          	mov    0x44(%esp),%edx
645ba1:	23 44 24 08          	and    0x8(%esp),%eax
645ba5:	23 54 24 0c          	and    0xc(%esp),%edx
645ba9:	52                   	push   %edx
645baa:	50                   	push   %eax
645bab:	8b 44 24 48          	mov    0x48(%esp),%eax
645baf:	8b 54 24 4c          	mov    0x4c(%esp),%edx
645bb3:	23 44 24 18          	and    0x18(%esp),%eax
645bb7:	23 54 24 1c          	and    0x1c(%esp),%edx
645bbb:	33 04 24             	xor    (%esp),%eax
645bbe:	33 54 24 04          	xor    0x4(%esp),%edx
645bc2:	83 c4 08             	add    $0x8,%esp
645bc5:	52                   	push   %edx
645bc6:	50                   	push   %eax
645bc7:	8b 44 24 10          	mov    0x10(%esp),%eax
645bcb:	8b 54 24 14          	mov    0x14(%esp),%edx
645bcf:	23 44 24 18          	and    0x18(%esp),%eax
645bd3:	23 54 24 1c          	and    0x1c(%esp),%edx
645bd7:	33 04 24             	xor    (%esp),%eax
645bda:	33 54 24 04          	xor    0x4(%esp),%edx
645bde:	83 c4 08             	add    $0x8,%esp
645be1:	03 04 24             	add    (%esp),%eax
645be4:	13 54 24 04          	adc    0x4(%esp),%edx
645be8:	83 c4 08             	add    $0x8,%esp