642009:	c1 ea 1c             	shr    $0x1c,%edx
64200c:	52                   	push   %edx
64200d:	50                   	push   %eax
64200e:	8b 54 24 30          	mov    0x30(%esp),%edx
642012:	c1 e2 04             	shl    $0x4,%edx
642015:	33 c0                	xor    %eax,%eax
642017:	0b 04 24             	or     (%esp),%eax
64201a:	0b 54 24 04          	or     0x4(%esp),%edx
64201e:	83 c4 08             	add    $0x8,%esp
642021:	52                   	push   %edx
642022:	50                   	push   %eax
642023:	8b 44 24 34          	mov    0x34(%esp),%eax
642027:	c1 e8 02             	shr    $0x2,%eax
64202a:	33 d2                	xor    %edx,%edx
64202c:	52                   	push   %edx
64202d:	50                   	push   %eax
64202e:	8b 44 24 38          	mov    0x38(%esp),%eax
642032:	8b 54 24 3c          	mov    0x3c(%esp),%edx
642036:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
64203a:	c1 e0 1e             	shl    $0x1e,%eax
64203d:	0b 04 24             	or     (%esp),%eax
642040:	0b 54 24 04          	or     0x4(%esp),%edx
642044:	83 c4 08             	add    $0x8,%esp
642047:	33 04 24             	xor    (%esp),%eax
64204a:	33 54 24 04          	xor    0x4(%esp),%edx
64204e:	83 c4 08             	add    $0x8,%esp
642051:	52                   	push   %edx
642052:	50                   	push   %eax
642053:	8b 44 24 34          	mov    0x34(%esp),%eax
642057:	c1 e8 07             	shr    $0x7,%eax
64205a:	33 d2                	xor    %edx,%edx
64205c:	52                   	push   %edx
64205d:	50                   	push   %eax
64205e:	8b 44 24 38          	mov    0x38(%esp),%eax
642062:	8b 54 24 3c          	mov    0x3c(%esp),%edx
642066:	0f a4 c2 19          	shld   $0x19,%eax,%edx
64206a:	c1 e0 19             	shl    $0x19,%eax
64206d:	0b 04 24             	or     (%esp),%eax
642070:	0b 54 24 04          	or     0x4(%esp),%edx
642074:	83 c4 08             	add    $0x8,%esp
642077:	33 04 24             	xor    (%esp),%eax
64207a:	33 54 24 04          	xor    0x4(%esp),%edx
64207e:	83 c4 08             	add    $0x8,%esp
642081:	52                   	push   %edx
642082:	50                   	push   %eax
642083:	8b 44 24 30          	mov    0x30(%esp),%eax
642087:	8b 54 24 34          	mov    0x34(%esp),%edx
64208b:	23 44 24 38          	and    0x38(%esp),%eax
64208f:	23 54 24 3c          	and    0x3c(%esp),%edx
642093:	52                   	push   %edx
642094:	50                   	push   %eax
642095:	8b 44 24 38          	mov    0x38(%esp),%eax
642099:	8b 54 24 3c          	mov    0x3c(%esp),%edx
64209d:	23 44 24 48          	and    0x48(%esp),%eax
6420a1:	23 54 24 4c          	and    0x4c(%esp),%edx
6420a5:	33 04 24             	xor    (%esp),%eax
6420a8:	33 54 24 04          	xor    0x4(%esp),%edx
6420ac:	83 c4 08             	add    $0x8,%esp
6420af:	52                   	push   %edx
6420b0:	50                   	push   %eax
6420b1:	8b 44 24 40          	mov    0x40(%esp),%eax
6420b5:	8b 54 24 44          	mov    0x44(%esp),%edx
6420b9:	23 44 24 48          	and    0x48(%esp),%eax
6420bd:	23 54 24 4c          	and    0x4c(%esp),%edx
6420c1:	33 04 24             	xor    (%esp),%eax
6420c4:	33 54 24 04          	xor    0x4(%esp),%edx
6420c8:	83 c4 08             	add    $0x8,%esp
6420cb:	03 04 24             	add    (%esp),%eax
6420ce:	13 54 24 04          	adc    0x4(%esp),%edx
6420d2:	83 c4 08             	add    $0x8,%esp
6420d5:	89 44 24 48          	mov    %eax,0x48(%esp)
6420d9:	89 54 24 4c          	mov    %edx,0x4c(%esp)
6420dd:	8b 04 24             	mov    (%esp),%eax
6420e0:	8b 54 24 04          	mov    0x4(%esp),%edx
6420e4:	03 44 24 40          	add    0x40(%esp),%eax
6420e8:	13 54 24 44          	adc    0x44(%esp),%edx
6420ec:	89 04 24             	mov    %eax,(%esp)
6420ef:	89 54 24 04          	mov    %edx,0x4(%esp)
6420f3:	8b 44 24 40          	mov    0x40(%esp),%eax
6420f7:	8b 54 24 44          	mov    0x44(%esp),%edx
6420fb:	03 44 24 48          	add    0x48(%esp),%eax
6420ff:	13 54 24 4c          	adc    0x4c(%esp),%edx
642103:	89 44 24 20          	mov    %eax,0x20(%esp)
642107:	89 54 24 24          	mov    %edx,0x24(%esp)
64210b:	8b 04 24             	mov    (%esp),%eax
64210e:	8b 54 24 04          	mov    0x4(%esp),%edx
642112:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
642116:	c1 ea 0e             	shr    $0xe,%edx
642119:	52                   	push   %edx
64211a:	50                   	push   %eax
64211b:	8b 54 24 08          	mov    0x8(%esp),%edx
64211f:	c1 e2 12             	shl    $0x12,%edx
642122:	33 c0                	xor    %eax,%eax
642124:	0b 04 24             	or     (%esp),%eax
642127:	0b 54 24 04          	or     0x4(%esp),%edx
64212b:	83 c4 08             	add    $0x8,%esp
64212e:	52                   	push   %edx
64212f:	50                   	push   %eax
642130:	8b 44 24 08          	mov    0x8(%esp),%eax
642134:	8b 54 24 0c          	mov    0xc(%esp),%edx
642138:	0f ac d0 12          	shrd   $0x12,%edx,%eax
64213c:	c1 ea 12             	shr    $0x12,%edx
64213f:	52                   	push   %edx
642140:	50                   	push   %eax
642141:	8b 54 24 10          	mov    0x10(%esp),%edx
642145:	c1 e2 0e             	shl    $0xe,%edx
642148:	33 c0                	xor    %eax,%eax
64214a:	0b 04 24             	or     (%esp),%eax
64214d:	0b 54 24 04          	or     0x4(%esp),%edx
642151:	83 c4 08             	add    $0x8,%esp
642154:	33 04 24             	xor    (%esp),%eax
642157:	33 54 24 04          	xor    0x4(%esp),%edx
64215b:	83 c4 08             	add    $0x8,%esp
64215e:	52                   	push   %edx
64215f:	50                   	push   %eax
642160:	8b 44 24 0c          	mov    0xc(%esp),%eax
642164:	c1 e8 09             	shr    $0x9,%eax
642167:	33 d2                	xor    %edx,%edx
642169:	52                   	push   %edx
64216a:	50                   	push   %eax
64216b:	8b 44 24 10          	mov    0x10(%esp),%eax
64216f:	8b 54 24 14          	mov    0x14(%esp),%edx
642173:	0f a4 c2 17          	shld   $0x17,%eax,%edx
642177:	c1 e0 17             	shl    $0x17,%eax
64217a:	0b 04 24             	or     (%esp),%eax
64217d:	0b 54 24 04          	or     0x4(%esp),%edx
642181:	83 c4 08             	add    $0x8,%esp
642184:	33 04 24             	xor    (%esp),%eax
642187:	33 54 24 04          	xor    0x4(%esp),%edx
64218b:	83 c4 08             	add    $0x8,%esp
64218e:	03 44 24 18          	add    0x18(%esp),%eax
642192:	13 54 24 1c          	adc    0x1c(%esp),%edx
642196:	52                   	push   %edx
642197:	50                   	push   %eax
642198:	8b 44 24 08          	mov    0x8(%esp),%eax
64219c:	8b 54 24 0c          	mov    0xc(%esp),%edx
6421a0:	23 44 24 10          	and    0x10(%esp),%eax
6421a4:	23 54 24 14          	and    0x14(%esp),%edx
6421a8:	52                   	push   %edx
6421a9:	50                   	push   %eax
6421aa:	8b 44 24 10          	mov    0x10(%esp),%eax
6421ae:	8b 54 24 14          	mov    0x14(%esp),%edx
6421b2:	f7 d0                	not    %eax
6421b4:	f7 d2                	not    %edx
6421b6:	23 44 24 20          	and    0x20(%esp),%eax
6421ba:	23 54 24 24          	and    0x24(%esp),%edx
6421be:	33 04 24             	xor    (%esp),%eax
6421c1:	33 54 24 04          	xor    0x4(%esp),%edx
6421c5:	83 c4 08             	add    $0x8,%esp
6421c8:	03 04 24             	add    (%esp),%eax
6421cb:	13 54 24 04          	adc    0x4(%esp),%edx
6421cf:	83 c4 08             	add    $0x8,%esp
6421d2:	05 75 02 2b 59       	add    $0x592b0275,%eax
6421d7:	81 d2 6f 2c e9 2d    	adc    $0x2de92c6f,%edx
6421dd:	03 84 24 f0 00 00 00 	add    0xf0(%esp),%eax
6421e4:	13 94 24 f4 00 00 00 	adc    0xf4(%esp),%edx
6421eb:	89 44 24 40          	mov    %eax,0x40(%esp)
6421ef:	89 54 24 44          	mov    %edx,0x44(%esp)
6421f3:	8b 44 24 20          	mov    0x20(%esp),%eax
6421f7:	8b 54 24 24          	mov    0x24(%esp),%edx
6421fb:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
6421ff:	c1 ea 1c             	shr    $0x1c,%edx
642202:	52                   	push   %edx
642203:	50                   	push   %eax
642204:	8b 54 24 28          	mov    0x28(%esp),%edx
642208:	c1 e2 04             	shl    $0x4,%edx
64220b:	33 c0                	xor    %eax,%eax
64220d:	0b 04 24             	or     (%esp),%eax
642210:	0b 54 24 04          	or     0x4(%esp),%edx
642214:	83 c4 08             	add    $0x8,%esp
642217:	52                   	push   %edx
642218:	50                   	push   %eax
642219:	8b 44 24 2c          	mov    0x2c(%esp),%eax
64221d:	c1 e8 02             	shr    $0x2,%eax
642220:	33 d2                	xor    %edx,%edx
642222:	52                   	push   %edx
642223:	50                   	push   %eax
642224:	8b 44 24 30          	mov    0x30(%esp),%eax
642228:	8b 54 24 34          	mov    0x34(%esp),%edx
64222c:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
642230:	c1 e0 1e             	shl    $0x1e,%eax
642233:	0b 04 24             	or     (%esp),%eax
642236:	0b 54 24 04          	or     0x4(%esp),%edx
64223a:	83 c4 08             	add    $0x8,%esp
64223d:	33 04 24             	xor    (%esp),%eax
642240:	33 54 24 04          	xor    0x4(%esp),%edx
642244:	83 c4 08             	add    $0x8,%esp
642247:	52                   	push   %edx
642248:	50                   	push   %eax
642249:	8b 44 24 2c          	mov    0x2c(%esp),%eax
64224d:	c1 e8 07             	shr    $0x7,%eax
642250:	33 d2                	xor    %edx,%edx
642252:	52                   	push   %edx
642253:	50                   	push   %eax
642254:	8b 44 24 30          	mov    0x30(%esp),%eax
642258:	8b 54 24 34          	mov    0x34(%esp),%edx
64225c:	0f a4 c2 19          	shld   $0x19,%eax,%edx
642260:	c1 e0 19             	shl    $0x19,%eax
642263:	0b 04 24             	or     (%esp),%eax
642266:	0b 54 24 04          	or     0x4(%esp),%edx
64226a:	83 c4 08             	add    $0x8,%esp
64226d:	33 04 24             	xor    (%esp),%eax
642270:	33 54 24 04          	xor    0x4(%esp),%edx
642274:	83 c4 08             	add    $0x8,%esp
642277:	52                   	push   %edx
642278:	50                   	push   %eax
642279:	8b 44 24 28          	mov    0x28(%esp),%eax
64227d:	8b 54 24 2c          	mov    0x2c(%esp),%edx
642281:	23 44 24 30          	and    0x30(%esp),%eax
642285:	23 54 24 34          	and    0x34(%esp),%edx
642289:	52                   	push   %edx
64228a:	50                   	push   %eax
64228b:	8b 44 24 30          	mov    0x30(%esp),%eax
64228f:	8b 54 24 34          	mov    0x34(%esp),%edx
642293:	23 44 24 40          	and    0x40(%esp),%eax
642297:	23 54 24 44          	and    0x44(%esp),%edx
64229b:	33 04 24             	xor    (%esp),%eax
64229e:	33 54 24 04          	xor    0x4(%esp),%edx
6422a2:	83 c4 08             	add    $0x8,%esp
6422a5:	52                   	push   %edx
6422a6:	50                   	push   %eax
6422a7:	8b 44 24 38          	mov    0x38(%esp),%eax
6422ab:	8b 54 24 3c          	mov    0x3c(%esp),%edx
6422af:	23 44 24 40          	and    0x40(%esp),%eax
6422b3:	23 54 24 44          	and    0x44(%esp),%edx
6422b7:	33 04 24             	xor    (%esp),%eax
6422ba:	33 54 24 04          	xor    0x4(%esp),%edx
6422be:	83 c4 08             	add    $0x8,%esp
6422c1:	03 04 24             	add    (%esp),%eax
6422c4:	13 54 24 04          	adc    0x4(%esp),%edx
6422c8:	83 c4 08             	add    $0x8,%esp
6422cb:	89 44 24 48          	mov    %eax,0x48(%esp)
6422cf:	89 54 24 4c          	mov    %edx,0x4c(%esp)
6422d3:	8b 44 24 38          	mov    0x38(%esp),%eax
6422d7:	8b 54 24 3c          	mov    0x3c(%esp),%edx
6422db:	03 44 24 40          	add    0x40(%esp),%eax
6422df:	13 54 24 44          	adc    0x44(%esp),%edx
6422e3:	89 44 24 38          	mov    %eax,0x38(%esp)
6422e7:	89 54 24 3c          	mov    %edx,0x3c(%esp)
6422eb:	8b 44 24 40          	mov    0x40(%esp),%eax
6422ef:	8b 54 24 44          	mov    0x44(%esp),%edx
6422f3:	03 44 24 48          	add    0x48(%esp),%eax
6422f7:	13 54 24 4c          	adc    0x4c(%esp),%edx
6422fb:	89 44 24 18          	mov    %eax,0x18(%esp)
6422ff:	89 54 24 1c          	mov    %edx,0x1c(%esp)
642303:	8b 44 24 38          	mov    0x38(%esp),%eax
642307:	8b 54 24 3c          	mov    0x3c(%esp),%edx
64230b:	0f ac d0 0e          	shrd   $0xe,%edx,%eax
64230f:	c1 ea 0e             	shr    $0xe,%edx
642312:	52                   	push   %edx
642313:	50                   	push   %eax
642314:	8b 54 24 40          	mov    0x40(%esp),%edx
642318:	c1 e2 12             	shl    $0x12,%edx
64231b:	33 c0                	xor    %eax,%eax
64231d:	0b 04 24             	or     (%esp),%eax
642320:	0b 54 24 04          	or     0x4(%esp),%edx
642324:	83 c4 08             	add    $0x8,%esp
642327:	52                   	push   %edx
642328:	50                   	push   %eax
642329:	8b 44 24 40          	mov    0x40(%esp),%eax
64232d:	8b 54 24 44          	mov    0x44(%esp),%edx
642331:	0f ac d0 12          	shrd   $0x12,%edx,%eax
642335:	c1 ea 12             	shr    $0x12,%edx
642338:	52                   	push   %edx
642339:	50                   	push   %eax
64233a:	8b 54 24 48          	mov    0x48(%esp),%edx
64233e:	c1 e2 0e             	shl    $0xe,%edx
642341:	33 c0                	xor    %eax,%eax
642343:	0b 04 24             	or     (%esp),%eax
642346:	0b 54 24 04          	or     0x4(%esp),%edx
64234a:	83 c4 08             	add    $0x8,%esp
64234d:	33 04 24             	xor    (%esp),%eax
642350:	33 54 24 04          	xor    0x4(%esp),%edx
642354:	83 c4 08             	add    $0x8,%esp
642357:	52                   	push   %edx
642358:	50                   	push   %eax
642359:	8b 44 24 44          	mov    0x44(%esp),%eax
64235d:	c1 e8 09             	shr    $0x9,%eax
642360:	33 d2                	xor    %edx,%edx
642362:	52                   	push   %edx
642363:	50                   	push   %eax
642364:	8b 44 24 48          	mov    0x48(%esp),%eax
642368:	8b 54 24 4c          	mov    0x4c(%esp),%edx
64236c:	0f a4 c2 17          	shld   $0x17,%eax,%edx
642370:	c1 e0 17             	shl    $0x17,%eax
642373:	0b 04 24             	or     (%esp),%eax
642376:	0b 54 24 04          	or     0x4(%esp),%edx
64237a:	83 c4 08             	add    $0x8,%esp
64237d:	33 04 24             	xor    (%esp),%eax
642380:	33 54 24 04          	xor    0x4(%esp),%edx
642384:	83 c4 08             	add    $0x8,%esp
642387:	03 44 24 10          	add    0x10(%esp),%eax
64238b:	13 54 24 14          	adc    0x14(%esp),%edx
64238f:	52                   	push   %edx
642390:	50                   	push   %eax
642391:	8b 44 24 40          	mov    0x40(%esp),%eax
642395:	8b 54 24 44          	mov    0x44(%esp),%edx
642399:	23 44 24 08          	and    0x8(%esp),%eax
64239d:	23 54 24 0c          	and    0xc(%esp),%edx
6423a1:	52                   	push   %edx
6423a2:	50                   	push   %eax
6423a3:	8b 44 24 48          	mov    0x48(%esp),%eax
6423a7:	8b 54 24 4c          	mov    0x4c(%esp),%edx
6423ab:	f7 d0                	not    %eax
6423ad:	f7 d2                	not    %edx
6423af:	23 44 24 18          	and    0x18(%esp),%eax
6423b3:	23 54 24 1c          	and    0x1c(%esp),%edx
6423b7:	33 04 24             	xor    (%esp),%eax
6423ba:	33 54 24 04          	xor    0x4(%esp),%edx
6423be:	83 c4 08             	add    $0x8,%esp
6423c1:	03 04 24             	add    (%esp),%eax
6423c4:	13 54 24 04          	adc    0x4(%esp),%edx
6423c8:	83 c4 08             	add    $0x8,%esp
6423cb:	05 83 e4 a6 6e       	add    $0x6ea6e483,%eax
6423d0:	81 d2 aa 84 74 4a    	adc    $0x4a7484aa,%edx
6423d6:	03 84 24 f8 00 00 00 	add    0xf8(%esp),%eax
6423dd:	13 94 24 fc 00 00 00 	adc    0xfc(%esp),%edx
6423e4:	89 44 24 40          	mov    %eax,0x40(%esp)
6423e8:	89 54 24 44          	mov    %edx,0x44(%esp)
6423ec:	8b 44 24 18          	mov    0x18(%esp),%eax
6423f0:	8b 54 24 1c          	mov    0x1c(%esp),%edx
6423f4:	0f ac d0 1c          	shrd   $0x1c,%edx,%eax
6423f8:	c1 ea 1c             	shr    $0x1c,%edx
6423fb:	52                   	push   %edx
6423fc:	50                   	push   %eax
6423fd:	8b 54 24 20          	mov    0x20(%esp),%edx
642401:	c1 e2 04             	shl    $0x4,%edx
642404:	33 c0                	xor    %eax,%eax
642406:	0b 04 24             	or     (%esp),%eax
642409:	0b 54 24 04          	or     0x4(%esp),%edx
64240d:	83 c4 08             	add    $0x8,%esp
642410:	52                   	push   %edx
642411:	50                   	push   %eax
642412:	8b 44 24 24          	mov    0x24(%esp),%eax
642416:	c1 e8 02             	shr    $0x2,%eax
642419:	33 d2                	xor    %edx,%edx
64241b:	52                   	push   %edx
64241c:	50                   	push   %eax
64241d:	8b 44 24 28          	mov    0x28(%esp),%eax
642421:	8b 54 24 2c          	mov    0x2c(%esp),%edx
642425:	0f a4 c2 1e          	shld   $0x1e,%eax,%edx
642429:	c1 e0 1e             	shl    $0x1e,%eax
64242c:	0b 04 24             	or     (%esp),%eax
64242f:	0b 54 24 04          	or     0x4(%esp),%edx
642433:	83 c4 08             	add    $0x8,%esp
642436:	33 04 24             	xor    (%esp),%eax
642439:	33 54 24 04          	xor    0x4(%esp),%edx
64243d:	83 c4 08             	add    $0x8,%esp
642440:	52                   	push   %edx
642441:	50                   	push   %eax