645361:	52                   	push   %edx
645362:	50                   	push   %eax
645363:	8b 44 24 28          	mov    0x28(%esp),%eax
645367:	8b 54 24 2c          	mov    0x2c(%esp),%edx
64536b:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
64536f:	c1 e0 1e             	shl    $0x1e,%eax
645372:	0b 04 24             	or     (%esp),%eax
645375:	0b 54 24 04          	or     0x4(%esp),%edx
645379:	83 c4 08             	add    $0x8,%esp
64537c:	33 04 24             	xor    (%esp),%eax
64537f:	33 54 24 04          	xor    0x4(%esp),%edx
645383:	83 c4 08             	add    $0x8,%esp
645386:	52                   	push   %edx
645387:	50                   	push   %eax
645388:	8b 44 24 24          	mov    0x24(%esp),%eax
64538c:	c1 e8 07             	shr    $0x7,%eax
64538f:	33 d2                	xor    %edx,%edx
645391:	52                   	push   %edx
645392:	50                   	push   %eax
645393:	8b 44 24 28          	mov    0x28(%esp),%eax
645397:	8b 54 24 2c          	mov    0x2c(%esp),%edx
64539b:	0f a4 c2 19          	shld   $0x19,%eax,%edx
64539f:	c1 e0 19             	shl    $0x19,%eax
6453a2:	0b 04 24             	or     (%esp),%eax
6453a5:	0b 54 24 04          	or     0x4(%esp),%edx
6453a9:	83 c4 08             	add    $0x8,%esp
6453ac:	33 04 24             	xor    (%esp),%eax
6453af:	33 54 24 04          	xor    0x4(%esp),%edx
6453b3:	83 c4 08             	add    $0x8,%esp
6453b6:	52                   	push   %edx
6453b7:	50                   	push   %eax
6453b8:	8b 44 24 20          	mov    0x20(%esp),%eax
6453bc:	8b 54 24 24          	mov    0x24(%esp),%edx
6453c0:	23 44 24 28          	and    0x28(%esp),%eax
6453c4:	23 54 24 2c          	and    0x2c(%esp),%edx
6453c8:	52                   	push   %edx
6453c9:	50                   	push   %eax
6453ca:	8b 44 24 28          	mov    0x28(%esp),%eax
6453ce:	8b 54 24 2c          	mov    0x2c(%esp),%edx
6453d2:	23 44 24 38          	and    0x38(%esp),%eax
6453d6:	23 54 24 3c          	and    0x3c(%esp),%edx
6453da:	33 04 24             	xor    (%esp),%eax
6453dd:	33 54 24 04          	xor    0x4(%esp),%edx
6453e1:	83 c4 08             	add    $0x8,%esp
6453e4:	52                   	push   %edx
6453e5:	50                   	push   %eax
6453e6:	8b 44 24 30          	mov    0x30(%esp),%eax
6453ea:	8b 54 24 34          	mov    0x34(%esp),%edx
6453ee:	23 44 24 38          	and    0x38(%esp),%eax
6453f2:	23 54 24 3c          	and    0x3c(%esp),%edx
6453f6:	33 04 24             	xor    (%esp),%eax
6453f9:	33 54 24 04          	xor    0x4(%esp),%edx
6453fd:	83 c4 08             	add    $0x8,%esp
645400:	03 04 24             	add    (%esp),%eax
645403:	13 54 24 04          	adc    0x4(%esp),%edx
645407:	83 c4 08             	add    $0x8,%esp
64540a:	89 44 24 48          	mov    %eax,0x48(%esp)
64540e:	89 54 24 4c          	mov    %edx,0x4c(%esp)
645412:	8b 44 24 30          	mov    0x30(%esp),%eax
645416:	8b 54 24 34          	mov    0x34(%esp),%edx
64541a:	03 44 24 40          	add    0x40(%esp),%eax
64541e:	13 54 24 44          	adc    0x44(%esp),%edx
645422:	89 44 24 30          	mov    %eax,0x30(%esp)
645426:	89 54 24 34          	mov    %edx,0x34(%esp)
64542a:	8b 44 24 40          	mov    0x40(%esp),%eax
64542e:	8b 54 24 44          	mov    0x44(%esp),%edx
645432:	03 44 24 48          	add    0x48(%esp),%eax
645436:	13 54 24 4c          	adc    0x4c(%esp),%edx
64543a:	89 44 24 10          	mov    %eax,0x10(%esp)
64543e:	89 54 24 14          	mov    %edx,0x14(%esp)
645442:	8b 44 24 30          	mov    0x30(%esp),%eax
645446:	8b 54 24 34          	mov    0x34(%esp),%edx
64544a:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
64544e:	c1 ea 0e             	shr    $0xe,%edx
645451:	52                   	push   %edx
645452:	50                   	push   %eax
645453:	8b 54 24 38          	mov    0x38(%esp),%edx
645457:	c1 e2 12             	shl    $0x12,%edx
64545a:	33 c0                	xor    %eax,%eax
64545c:	0b 04 24             	or     (%esp),%eax
64545f:	0b 54 24 04          	or     0x4(%esp),%edx
645463:	83 c4 08             	add    $0x8,%esp
645466:	52                   	push   %edx
645467:	50                   	push   %eax
645468:	8b 44 24 38          	mov    0x38(%esp),%eax
64546c:	8b 54 24 3c          	mov    0x3c(%esp),%edx
645470:	0f ac d0 12          	shrd   $0x12,%edx,%eax
645474:	c1 ea 12             	shr    $0x12,%edx
645477:	52                   	push   %edx
645478:	50                   	push   %eax
645479:	8b 54 24 40          	mov    0x40(%esp),%edx
64547d:	c1 e2 0e             	shl    $0xe,%edx
645480:	33 c0                	xor    %eax,%eax
645482:	0b 04 24             	or     (%esp),%eax
645485:	0b 54 24 04          	or     0x4(%esp),%edx
645489:	83 c4 08             	add    $0x8,%esp
64548c:	33 04 24             	xor    (%esp),%eax
64548f:	33 54 24 04          	xor    0x4(%esp),%edx
645493:	83 c4 08             	add    $0x8,%esp
645496:	52                   	push   %edx
645497:	50                   	push   %eax
645498:	8b 44 24 3c          	mov    0x3c(%esp),%eax
64549c:	c1 e8 09             	shr    $0x9,%eax
64549f:	33 d2                	xor    %edx,%edx
6454a1:	52                   	push   %edx
6454a2:	50                   	push   %eax
6454a3:	8b 44 24 40          	mov    0x40(%esp),%eax
6454a7:	8b 54 24 44          	mov    0x44(%esp),%edx
6454ab:	0f a4 c2 17          	shld   $0x17,%eax,%edx
6454af:	c1 e0 17             	shl    $0x17,%eax
6454b2:	0b 04 24             	or     (%esp),%eax
6454b5:	0b 54 24 04          	or     0x4(%esp),%edx
6454b9:	83 c4 08             	add    $0x8,%esp
6454bc:	33 04 24             	xor    (%esp),%eax
6454bf:	33 54 24 04          	xor    0x4(%esp),%edx
6454c3:	83 c4 08             	add    $0x8,%esp
6454c6:	03 44 24 08          	add    0x8(%esp),%eax
6454ca:	13 54 24 0c          	adc    0xc(%esp),%edx
6454ce:	52                   	push   %edx
6454cf:	50                   	push   %eax
6454d0:	8b 44 24 38          	mov    0x38(%esp),%eax
6454d4:	8b 54 24 3c          	mov    0x3c(%esp),%edx
6454d8:	23 44 24 40          	and    0x40(%esp),%eax
6454dc:	23 54 24 44          	and    0x44(%esp),%edx
6454e0:	52                   	push   %edx
6454e1:	50                   	push   %eax
6454e2:	8b 44 24 40          	mov    0x40(%esp),%eax
6454e6:	8b 54 24 44          	mov    0x44(%esp),%edx
6454ea:	f7 d0                	not    %eax
6454ec:	f7 d2                	not    %edx
6454ee:	23 44 24 10          	and    0x10(%esp),%eax
6454f2:	23 54 24 14          	and    0x14(%esp),%edx
6454f6:	33 04 24             	xor    (%esp),%eax
6454f9:	33 54 24 04          	xor    0x4(%esp),%edx
6454fd:	83 c4 08             	add    $0x8,%esp
645500:	03 04 24             	add    (%esp),%eax
645503:	13 54 24 04          	adc    0x4(%esp),%edx
645507:	83 c4 08             	add    $0x8,%esp
64550a:	05 2a 20 71 57       	add    $0x5771202a,%eax
64550f:	81 d2 85 35 0e f4    	adc    $0xf40e3585,%edx
645515:	03 84 24 c0 01 00 00 	add    0x1c0(%esp),%eax
64551c:	13 94 24 c4 01 00 00 	adc    0x1c4(%esp),%edx
645523:	89 44 24 40          	mov    %eax,0x40(%esp)
645527:	89 54 24 44          	mov    %edx,0x44(%esp)
64552b:	8b 44 24 10          	mov    0x10(%esp),%eax
64552f:	8b 54 24 14          	mov    0x14(%esp),%edx
645533:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
645537:	c1 ea 1c             	shr    $0x1c,%edx
64553a:	52                   	push   %edx
64553b:	50                   	push   %eax
64553c:	8b 54 24 18          	mov    0x18(%esp),%edx
645540:	c1 e2 04             	shl    $0x4,%edx
645543:	33 c0                	xor    %eax,%eax
645545:	0b 04 24             	or     (%esp),%eax
645548:	0b 54 24 04          	or     0x4(%esp),%edx
64554c:	83 c4 08             	add    $0x8,%esp
64554f:	52                   	push   %edx
645550:	50                   	push   %eax
645551:	8b 44 24 1c          	mov    0x1c(%esp),%eax
645555:	c1 e8 02             	shr    $0x2,%eax
645558:	33 d2                	xor    %edx,%edx
64555a:	52                   	push   %edx
64555b:	50                   	push   %eax
64555c:	8b 44 24 20          	mov    0x20(%esp),%eax
645560:	8b 54 24 24          	mov    0x24(%esp),%edx
645564:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
645568:	c1 e0 1e             	shl    $0x1e,%eax
64556b:	0b 04 24             	or     (%esp),%eax
64556e:	0b 54 24 04          	or     0x4(%esp),%edx
645572:	83 c4 08             	add    $0x8,%esp
645575:	33 04 24             	xor    (%esp),%eax
645578:	33 54 24 04          	xor    0x4(%esp),%edx
64557c:	83 c4 08             	add    $0x8,%esp
64557f:	52                   	push   %edx
645580:	50                   	push   %eax
645581:	8b 44 24 1c          	mov    0x1c(%esp),%eax
645585:	c1 e8 07             	shr    $0x7,%eax
645588:	33 d2                	xor    %edx,%edx
64558a:	52                   	push   %edx
64558b:	50                   	push   %eax
64558c:	8b 44 24 20          	mov    0x20(%esp),%eax
645590:	8b 54 24 24          	mov    0x24(%esp),%edx
645594:	0f a4 c2 19          	shld   $0x19,%eax,%edx
645598:	c1 e0 19             	shl    $0x19,%eax
64559b:	0b 04 24             	or     (%esp),%eax
64559e:	0b 54 24 04          	or     0x4(%esp),%edx
6455a2:	83 c4 08             	add    $0x8,%esp
6455a5:	33 04 24             	xor    (%esp),%eax
6455a8:	33 54 24 04          	xor    0x4(%esp),%edx
6455ac:	83 c4 08             	add    $0x8,%esp
6455af:	52                   	push   %edx
6455b0:	50                   	push   %eax
6455b1:	8b 44 24 18          	mov    0x18(%esp),%eax
6455b5:	8b 54 24 1c          	mov    0x1c(%esp),%edx
6455b9:	23 44 24 20          	and    0x20(%esp),%eax
6455bd:	23 54 24 24          	and    0x24(%esp),%edx
6455c1:	52                   	push   %edx
6455c2:	50                   	push   %eax
6455c3:	8b 44 24 20          	mov    0x20(%esp),%eax
6455c7:	8b 54 24 24          	mov    0x24(%esp),%edx
6455cb:	23 44 24 30          	and    0x30(%esp),%eax
6455cf:	23 54 24 34          	and    0x34(%esp),%edx
6455d3:	33 04 24             	xor    (%esp),%eax
6455d6:	33 54 24 04          	xor    0x4(%esp),%edx
6455da:	83 c4 08             	add    $0x8,%esp
6455dd:	52                   	push   %edx
6455de:	50                   	push   %eax
6455df:	8b 44 24 28          	mov    0x28(%esp),%eax
6455e3:	8b 54 24 2c          	mov    0x2c(%esp),%edx
6455e7:	23 44 24 30          	and    0x30(%esp),%eax
6455eb:	23 54 24 34          	and    0x34(%esp),%edx
6455ef:	33 04 24             	xor    (%esp),%eax
6455f2:	33 54 24 04          	xor    0x4(%esp),%edx
6455f6:	83 c4 08             	add    $0x8,%esp
6455f9:	03 04 24             	add    (%esp),%eax
6455fc:	13 54 24 04          	adc    0x4(%esp),%edx
645600:	83 c4 08             	add    $0x8,%esp
645603:	89 44 24 48          	mov    %eax,0x48(%esp)
645607:	89 54 24 4c          	mov    %edx,0x4c(%esp)
64560b:	8b 44 24 28          	mov    0x28(%esp),%eax
64560f:	8b 54 24 2c          	mov    0x2c(%esp),%edx
645613:	03 44 24 40          	add    0x40(%esp),%eax
645617:	13 54 24 44          	adc    0x44(%esp),%edx
64561b:	89 44 24 28          	mov    %eax,0x28(%esp)
64561f:	89 54 24 2c          	mov    %edx,0x2c(%esp)
645623:	8b 44 24 40          	mov    0x40(%esp),%eax
645627:	8b 54 24 44          	mov    0x44(%esp),%edx
64562b:	03 44 24 48          	add    0x48(%esp),%eax
64562f:	13 54 24 4c          	adc    0x4c(%esp),%edx
645633:	89 44 24 08          	mov    %eax,0x8(%esp)
645637:	89 54 24 0c          	mov    %edx,0xc(%esp)
64563b:	8b 44 24 28          	mov    0x28(%esp),%eax
64563f:	8b 54 24 2c          	mov    0x2c(%esp),%edx
645643:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
645647:	c1 ea 0e             	shr    $0xe,%edx
64564a:	52                   	push   %edx
64564b:	50                   	push   %eax
64564c:	8b 54 24 30          	mov    0x30(%esp),%edx
645650:	c1 e2 12             	shl    $0x12,%edx
645653:	33 c0                	xor    %eax,%eax
645655:	0b 04 24             	or     (%esp),%eax
645658:	0b 54 24 04          	or     0x4(%esp),%edx
64565c:	83 c4 08             	add    $0x8,%esp
64565f:	52                   	push   %edx
645660:	50                   	push   %eax
645661:	8b 44 24 30          	mov    0x30(%esp),%eax
645665:	8b 54 24 34          	mov    0x34(%esp),%edx
645669:	0f ac d0 12          	shrd   $0x12,%edx,%eax
64566d:	c1 ea 12             	shr    $0x12,%edx
645670:	52                   	push   %edx
645671:	50                   	push   %eax
645672:	8b 54 24 38          	mov    0x38(%esp),%edx
645676:	c1 e2 0e             	shl    $0xe,%edx
645679:	33 c0                	xor    %eax,%eax
64567b:	0b 04 24             	or     (%esp),%eax
64567e:	0b 54 24 04          	or     0x4(%esp),%edx
645682:	83 c4 08             	add    $0x8,%esp
645685:	33 04 24             	xor    (%esp),%eax
645688:	33 54 24 04          	xor    0x4(%esp),%edx
64568c:	83 c4 08             	add    $0x8,%esp
64568f:	52                   	push   %edx
645690:	50                   	push   %eax
645691:	8b 44 24 34          	mov    0x34(%esp),%eax
645695:	c1 e8 09             	shr    $0x9,%eax
645698:	33 d2                	xor    %edx,%edx
64569a:	52                   	push   %edx
64569b:	50                   	push   %eax
64569c:	8b 44 24 38          	mov    0x38(%esp),%eax
6456a0:	8b 54 24 3c          	mov    0x3c(%esp),%edx
6456a4:	0f a4 c2 17          	shld   $0x17,%eax,%edx
6456a8:	c1 e0 17             	shl    $0x17,%eax
6456ab:	0b 04 24             	or     (%esp),%eax
6456ae:	0b 54 24 04          	or     0x4(%esp),%edx
6456b2:	83 c4 08             	add    $0x8,%esp
6456b5:	33 04 24             	xor    (%esp),%eax
6456b8:	33 54 24 04          	xor    0x4(%esp),%edx
6456bc:	83 c4 08             	add    $0x8,%esp
6456bf:	03 04 24             	add    (%esp),%eax
6456c2:	13 54 24 04          	adc    0x4(%esp),%edx
6456c6:	52                   	push   %edx
6456c7:	50                   	push   %eax
6456c8:	8b 44 24 30          	mov    0x30(%esp),%eax
6456cc:	8b 54 24 34          	mov    0x34(%esp),%edx
6456d0:	23 44 24 38          	and    0x38(%esp),%eax
6456d4:	23 54 24 3c          	and    0x3c(%esp),%edx
6456d8:	52                   	push   %edx
6456d9:	50                   	push   %eax
6456da:	8b 44 24 38          	mov    0x38(%esp),%eax
6456de:	8b 54 24 3c          	mov    0x3c(%esp),%edx
6456e2:	f7 d0                	not    %eax
6456e4:	f7 d2                	not    %edx
6456e6:	23 44 24 48          	and    0x48(%esp),%eax
6456ea:	23 54 24 4c          	and    0x4c(%esp),%edx
6456ee:	33 04 24             	xor    (%esp),%eax
6456f1:	33 54 24 04          	xor    0x4(%esp),%edx
6456f5:	83 c4 08             	add    $0x8,%esp
6456f8:	03 04 24             	add    (%esp),%eax
6456fb:	13 54 24 04          	adc    0x4(%esp),%edx
6456ff:	83 c4 08             	add    $0x8,%esp
645702:	05 b8 d1 bb 32       	add    $0x32bbd1b8,%eax
645707:	81 d2 70 a0 6a 10    	adc    $0x106aa070,%edx
64570d:	03 84 24 c8 01 00 00 	add    0x1c8(%esp),%eax
645714:	13 94 24 cc 01 00 00 	adc    0x1cc(%esp),%edx
64571b:	89 44 24 40          	mov    %eax,0x40(%esp)
64571f:	89 54 24 44          	mov    %edx,0x44(%esp)
645723:	8b 44 24 08          	mov    0x8(%esp),%eax
645727:	8b 54 24 0c          	mov    0xc(%esp),%edx
64572b:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
64572f:	c1 ea 1c             	shr    $0x1c,%edx
645732:	52                   	push   %edx
645733:	50                   	push   %eax
645734:	8b 54 24 10          	mov    0x10(%esp),%edx
645738:	c1 e2 04             	shl    $0x4,%edx
64573b:	33 c0                	xor    %eax,%eax
64573d:	0b 04 24             	or     (%esp),%eax
645740:	0b 54 24 04          	or     0x4(%esp),%edx
645744:	83 c4 08             	add    $0x8,%esp
645747:	52                   	push   %edx
645748:	50                   	push   %eax
645749:	8b 44 24 14          	mov    0x14(%esp),%eax
64574d:	c1 e8 02             	shr    $0x2,%eax
645750:	33 d2                	xor    %edx,%edx
645752:	52                   	push   %edx
645753:	50                   	push   %eax
645754:	8b 44 24 18          	mov    0x18(%esp),%eax
645758:	8b 54 24 1c          	mov    0x1c(%esp),%edx
64575c:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
645760:	c1 e0 1e             	shl    $0x1e,%eax
645763:	0b 04 24             	or     (%esp),%eax
645766:	0b 54 24 04          	or     0x4(%esp),%edx
64576a:	83 c4 08             	add    $0x8,%esp
64576d:	33 04 24             	xor    (%esp),%eax
645770:	33 54 24 04          	xor    0x4(%esp),%edx
645774:	83 c4 08             	add    $0x8,%esp
645777:	52                   	push   %edx
645778:	50                   	push   %eax
645779:	8b 44 24 14          	mov    0x14(%esp),%eax
64577d:	c1 e8 07             	shr    $0x7,%eax
645780:	33 d2                	xor    %edx,%edx
645782:	52                   	push   %edx
645783:	50                   	push   %eax
645784:	8b 44 24 18          	mov    0x18(%esp),%eax
645788:	8b 54 24 1c          	mov    0x1c(%esp),%edx
64578c:	0f a4 c2 19          	shld   $0x19,%eax,%edx
645790:	c1 e0 19             	shl    $0x19,%eax
645793:	0b 04 24             	or     (%esp),%eax
645796:	0b 54 24 04          	or     0x4(%esp),%edx
64579a:	83 c4 08             	add    $0x8,%esp
64579d:	33 04 24             	xor    (%esp),%eax
6457a0:	33 54 24 04          	xor    0x4(%esp),%edx