645145:	c1 ea 1c             	shr    $0x1c,%edx
645148:	52                   	push   %edx
645149:	50                   	push   %eax
64514a:	8b 54 24 28          	mov    0x28(%esp),%edx
64514e:	c1 e2 04             	shl    $0x4,%edx
645151:	33 c0                	xor    %eax,%eax
645153:	0b 04 24             	or     (%esp),%eax
645156:	0b 54 24 04          	or     0x4(%esp),%edx
64515a:	83 c4 08             	add    $0x8,%esp
64515d:	52                   	push   %edx
64515e:	50                   	push   %eax
64515f:	8b 44 24 2c          	mov    0x2c(%esp),%eax
645163:	c1 e8 02             	shr    $0x2,%eax
645166:	33 d2                	xor    %edx,%edx
645168:	52                   	push   %edx
645169:	50                   	push   %eax
64516a:	8b 44 24 30          	mov    0x30(%esp),%eax
64516e:	8b 54 24 34          	mov    0x34(%esp),%edx
645172:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
645176:	c1 e0 1e             	shl    $0x1e,%eax
645179:	0b 04 24             	or     (%esp),%eax
64517c:	0b 54 24 04          	or     0x4(%esp),%edx
645180:	83 c4 08             	add    $0x8,%esp
645183:	33 04 24             	xor    (%esp),%eax
645186:	33 54 24 04          	xor    0x4(%esp),%edx
64518a:	83 c4 08             	add    $0x8,%esp
64518d:	52                   	push   %edx
64518e:	50                   	push   %eax
64518f:	8b 44 24 2c          	mov    0x2c(%esp),%eax
645193:	c1 e8 07             	shr    $0x7,%eax
645196:	33 d2                	xor    %edx,%edx
645198:	52                   	push   %edx
645199:	50                   	push   %eax
64519a:	8b 44 24 30          	mov    0x30(%esp),%eax
64519e:	8b 54 24 34          	mov    0x34(%esp),%edx
6451a2:	0f a4 c2 19          	shld   $0x19,%eax,%edx
6451a6:	c1 e0 19             	shl    $0x19,%eax
6451a9:	0b 04 24             	or     (%esp),%eax
6451ac:	0b 54 24 04          	or     0x4(%esp),%edx
6451b0:	83 c4 08             	add    $0x8,%esp
6451b3:	33 04 24             	xor    (%esp),%eax
6451b6:	33 54 24 04          	xor    0x4(%esp),%edx
6451ba:	83 c4 08             	add    $0x8,%esp
6451bd:	52                   	push   %edx
6451be:	50                   	push   %eax
6451bf:	8b 44 24 28          	mov    0x28(%esp),%eax
6451c3:	8b 54 24 2c          	mov    0x2c(%esp),%edx
6451c7:	23 44 24 30          	and    0x30(%esp),%eax
6451cb:	23 54 24 34          	and    0x34(%esp),%edx
6451cf:	52                   	push   %edx
6451d0:	50                   	push   %eax
6451d1:	8b 44 24 30          	mov    0x30(%esp),%eax
6451d5:	8b 54 24 34          	mov    0x34(%esp),%edx
6451d9:	23 44 24 40          	and    0x40(%esp),%eax
6451dd:	23 54 24 44          	and    0x44(%esp),%edx
6451e1:	33 04 24             	xor    (%esp),%eax
6451e4:	33 54 24 04          	xor    0x4(%esp),%edx
6451e8:	83 c4 08             	add    $0x8,%esp
6451eb:	52                   	push   %edx
6451ec:	50                   	push   %eax
6451ed:	8b 44 24 38          	mov    0x38(%esp),%eax
6451f1:	8b 54 24 3c          	mov    0x3c(%esp),%edx
6451f5:	23 44 24 40          	and    0x40(%esp),%eax
6451f9:	23 54 24 44          	and    0x44(%esp),%edx
6451fd:	33 04 24             	xor    (%esp),%eax
645200:	33 54 24 04          	xor    0x4(%esp),%edx
645204:	83 c4 08             	add    $0x8,%esp
645207:	03 04 24             	add    (%esp),%eax
64520a:	13 54 24 04          	adc    0x4(%esp),%edx
64520e:	83 c4 08             	add    $0x8,%esp
645211:	89 44 24 48          	mov    %eax,0x48(%esp)
645215:	89 54 24 4c          	mov    %edx,0x4c(%esp)
645219:	8b 44 24 38          	mov    0x38(%esp),%eax
64521d:	8b 54 24 3c          	mov    0x3c(%esp),%edx
645221:	03 44 24 40          	add    0x40(%esp),%eax
645225:	13 54 24 44          	adc    0x44(%esp),%edx
645229:	89 44 24 38          	mov    %eax,0x38(%esp)
64522d:	89 54 24 3c          	mov    %edx,0x3c(%esp)
645231:	8b 44 24 40          	mov    0x40(%esp),%eax
645235:	8b 54 24 44          	mov    0x44(%esp),%edx
645239:	03 44 24 48          	add    0x48(%esp),%eax
64523d:	13 54 24 4c          	adc    0x4c(%esp),%edx
645241:	89 44 24 18          	mov    %eax,0x18(%esp)
645245:	89 54 24 1c          	mov    %edx,0x1c(%esp)
645249:	8b 44 24 38          	mov    0x38(%esp),%eax
64524d:	8b 54 24 3c          	mov    0x3c(%esp),%edx
645251:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
645255:	c1 ea 0e             	shr    $0xe,%edx
645258:	52                   	push   %edx
645259:	50                   	push   %eax
64525a:	8b 54 24 40          	mov    0x40(%esp),%edx
64525e:	c1 e2 12             	shl    $0x12,%edx
645261:	33 c0                	xor    %eax,%eax
645263:	0b 04 24             	or     (%esp),%eax
645266:	0b 54 24 04          	or     0x4(%esp),%edx
64526a:	83 c4 08             	add    $0x8,%esp
64526d:	52                   	push   %edx
64526e:	50                   	push   %eax
64526f:	8b 44 24 40          	mov    0x40(%esp),%eax
645273:	8b 54 24 44          	mov    0x44(%esp),%edx
645277:	0f ac d0 12          	shrd   $0x12,%edx,%eax
64527b:	c1 ea 12             	shr    $0x12,%edx
64527e:	52                   	push   %edx
64527f:	50                   	push   %eax
645280:	8b 54 24 48          	mov    0x48(%esp),%edx
645284:	c1 e2 0e             	shl    $0xe,%edx
645287:	33 c0                	xor    %eax,%eax
645289:	0b 04 24             	or     (%esp),%eax
64528c:	0b 54 24 04          	or     0x4(%esp),%edx
645290:	83 c4 08             	add    $0x8,%esp
645293:	33 04 24             	xor    (%esp),%eax
645296:	33 54 24 04          	xor    0x4(%esp),%edx
64529a:	83 c4 08             	add    $0x8,%esp
64529d:	52                   	push   %edx
64529e:	50                   	push   %eax
64529f:	8b 44 24 44          	mov    0x44(%esp),%eax
6452a3:	c1 e8 09             	shr    $0x9,%eax
6452a6:	33 d2                	xor    %edx,%edx
6452a8:	52                   	push   %edx
6452a9:	50                   	push   %eax
6452aa:	8b 44 24 48          	mov    0x48(%esp),%eax
6452ae:	8b 54 24 4c          	mov    0x4c(%esp),%edx
6452b2:	0f a4 c2 17          	shld   $0x17,%eax,%edx
6452b6:	c1 e0 17             	shl    $0x17,%eax
6452b9:	0b 04 24             	or     (%esp),%eax
6452bc:	0b 54 24 04          	or     0x4(%esp),%edx
6452c0:	83 c4 08             	add    $0x8,%esp
6452c3:	33 04 24             	xor    (%esp),%eax
6452c6:	33 54 24 04          	xor    0x4(%esp),%edx
6452ca:	83 c4 08             	add    $0x8,%esp
6452cd:	03 44 24 10          	add    0x10(%esp),%eax
6452d1:	13 54 24 14          	adc    0x14(%esp),%edx
6452d5:	52                   	push   %edx
6452d6:	50                   	push   %eax
6452d7:	8b 44 24 40          	mov    0x40(%esp),%eax
6452db:	8b 54 24 44          	mov    0x44(%esp),%edx
6452df:	23 44 24 08          	and    0x8(%esp),%eax
6452e3:	23 54 24 0c          	and    0xc(%esp),%edx
6452e7:	52                   	push   %edx
6452e8:	50                   	push   %eax
6452e9:	8b 44 24 48          	mov    0x48(%esp),%eax
6452ed:	8b 54 24 4c          	mov    0x4c(%esp),%edx
6452f1:	f7 d0                	not    %eax
6452f3:	f7 d2                	not    %edx
6452f5:	23 44 24 18          	and    0x18(%esp),%eax
6452f9:	23 54 24 1c          	and    0x1c(%esp),%edx
6452fd:	33 04 24             	xor    (%esp),%eax
645300:	33 54 24 04          	xor    0x4(%esp),%edx
645304:	83 c4 08             	add    $0x8,%esp
645307:	03 04 24             	add    (%esp),%eax
64530a:	13 54 24 04          	adc    0x4(%esp),%edx
64530e:	83 c4 08             	add    $0x8,%esp
645311:	05 10 a9 65 55       	add    $0x5565a910,%eax
645316:	81 d2 24 06 99 d6    	adc    $0xd6990624,%edx
64531c:	03 84 24 b8 01 00 00 	add    0x1b8(%esp),%eax
645323:	13 94 24 bc 01 00 00 	adc    0x1bc(%esp),%edx
64532a:	89 44 24 40          	mov    %eax,0x40(%esp)
64532e:	89 54 24 44          	mov    %edx,0x44(%esp)
645332:	8b 44 24 18          	mov    0x18(%esp),%eax
645336:	8b 54 24 1c          	mov    0x1c(%esp),%edx
64533a:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
64533e:	c1 ea 1c             	shr    $0x1c,%edx
645341:	52                   	push   %edx
645342:	50                   	push   %eax
645343:	8b 54 24 20          	mov    0x20(%esp),%edx
645347:	c1 e2 04             	shl    $0x4,%edx
64534a:	33 c0                	xor    %eax,%eax
64534c:	0b 04 24             	or     (%esp),%eax
64534f:	0b 54 24 04          	or     0x4(%esp),%edx
645353:	83 c4 08             	add    $0x8,%esp
645356:	52                   	push   %edx
645357:	50                   	push   %eax
645358:	8b 44 24 24          	mov    0x24(%esp),%eax
64535c:	c1 e8 02             	shr    $0x2,%eax
64535f:	33 d2                	xor    %edx,%edx
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