40921f:	51                   	push   %ecx
409220:	a1 0c 30 42 00       	mov    0x42300c,%eax
409225:	33 c5                	xor    %ebp,%eax
409227:	89 45 fc             	mov    %eax,-0x4(%ebp)
40922a:	56                   	push   %esi
40922b:	e8 2e 00 00 00       	call   0x40925e
409230:	8b f0                	mov    %eax,%esi
409232:	85 f6                	test   %esi,%esi
409234:	74 17                	je     0x40924d
409236:	ff 75 08             	push   0x8(%ebp)
409239:	8b ce                	mov    %esi,%ecx
40923b:	ff 15 a8 b1 41 00    	call   *0x41b1a8
409241:	ff d6                	call   *%esi
409243:	59                   	pop    %ecx
409244:	85 c0                	test   %eax,%eax
409246:	74 05                	je     0x40924d
409248:	33 c0                	xor    %eax,%eax
40924a:	40                   	inc    %eax
40924b:	eb 02                	jmp    0x40924f
40924d:	33 c0                	xor    %eax,%eax
40924f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409252:	33 cd                	xor    %ebp,%ecx
409254:	5e                   	pop    %esi
409255:	e8 fc 9c ff ff       	call   0x402f56
40925a:	8b e5                	mov    %ebp,%esp
40925c:	5d                   	pop    %ebp
40925d:	c3                   	ret
40925e:	6a 0c                	push   $0xc
409260:	68 40 1c 42 00       	push   $0x421c40
409265:	e8 e6 a8 ff ff       	call   0x403b50
40926a:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
40926e:	6a 00                	push   $0x0
409270:	e8 30 5c 00 00       	call   0x40eea5
409275:	59                   	pop    %ecx
409276:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40927a:	8b 35 0c 30 42 00    	mov    0x42300c,%esi
409280:	8b ce                	mov    %esi,%ecx
409282:	83 e1 1f             	and    $0x1f,%ecx
409285:	33 35 74 41 42 00    	xor    0x424174,%esi
40928b:	d3 ce                	ror    %cl,%esi
40928d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
409290:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
409297:	e8 0b 00 00 00       	call   0x4092a7
40929c:	8b c6                	mov    %esi,%eax
40929e:	e8 f3 a8 ff ff       	call   0x403b96
4092a3:	c3                   	ret
4092a4:	8b 75 e4             	mov    -0x1c(%ebp),%esi
4092a7:	6a 00                	push   $0x0
4092a9:	e8 3f 5c 00 00       	call   0x40eeed
4092ae:	59                   	pop    %ecx
4092af:	c3                   	ret
4092b0:	8b ff                	mov    %edi,%edi
4092b2:	55                   	push   %ebp
4092b3:	8b ec                	mov    %esp,%ebp
4092b5:	5d                   	pop    %ebp
4092b6:	e9 a3 05 00 00       	jmp    0x40985e
4092bb:	a1 78 41 42 00       	mov    0x424178,%eax
4092c0:	c3                   	ret
4092c1:	8b ff                	mov    %edi,%edi
4092c3:	55                   	push   %ebp
4092c4:	8b ec                	mov    %esp,%ebp
4092c6:	8b 45 08             	mov    0x8(%ebp),%eax
4092c9:	a3 78 41 42 00       	mov    %eax,0x424178
4092ce:	5d                   	pop    %ebp
4092cf:	c3                   	ret
4092d0:	8b ff                	mov    %edi,%edi
4092d2:	55                   	push   %ebp
4092d3:	8b ec                	mov    %esp,%ebp
4092d5:	a1 0c 30 42 00       	mov    0x42300c,%eax
4092da:	83 e0 1f             	and    $0x1f,%eax
4092dd:	6a 20                	push   $0x20
4092df:	59                   	pop    %ecx
4092e0:	2b c8                	sub    %eax,%ecx
4092e2:	8b 45 08             	mov    0x8(%ebp),%eax
4092e5:	d3 c8                	ror    %cl,%eax
4092e7:	33 05 0c 30 42 00    	xor    0x42300c,%eax
4092ed:	5d                   	pop    %ebp
4092ee:	c3                   	ret
4092ef:	a1 0c 30 42 00       	mov    0x42300c,%eax
4092f4:	8b c8                	mov    %eax,%ecx
4092f6:	33 05 7c 41 42 00    	xor    0x42417c,%eax
4092fc:	83 e1 1f             	and    $0x1f,%ecx
4092ff:	d3 c8                	ror    %cl,%eax
409301:	f7 d8                	neg    %eax
409303:	1b c0                	sbb    %eax,%eax
409305:	f7 d8                	neg    %eax
409307:	c3                   	ret
409308:	8b ff                	mov    %edi,%edi
40930a:	55                   	push   %ebp
40930b:	8b ec                	mov    %esp,%ebp
40930d:	ff 75 08             	push   0x8(%ebp)
409310:	b9 7c 41 42 00       	mov    $0x42417c,%ecx
409315:	e8 7c 72 00 00       	call   0x410596
40931a:	5d                   	pop    %ebp
40931b:	c3                   	ret
40931c:	8b ff                	mov    %edi,%edi
40931e:	55                   	push   %ebp
40931f:	8b ec                	mov    %esp,%ebp
409321:	51                   	push   %ecx
409322:	a1 0c 30 42 00       	mov    0x42300c,%eax
409327:	33 c5                	xor    %ebp,%eax
409329:	89 45 fc             	mov    %eax,-0x4(%ebp)
40932c:	56                   	push   %esi
40932d:	8b 35 0c 30 42 00    	mov    0x42300c,%esi
409333:	8b ce                	mov    %esi,%ecx
409335:	33 35 7c 41 42 00    	xor    0x42417c,%esi
40933b:	83 e1 1f             	and    $0x1f,%ecx
40933e:	d3 ce                	ror    %cl,%esi
409340:	85 f6                	test   %esi,%esi
409342:	75 04                	jne    0x409348
409344:	33 c0                	xor    %eax,%eax
409346:	eb 0e                	jmp    0x409356
409348:	ff 75 08             	push   0x8(%ebp)
40934b:	8b ce                	mov    %esi,%ecx
40934d:	ff 15 a8 b1 41 00    	call   *0x41b1a8
409353:	ff d6                	call   *%esi
409355:	59                   	pop    %ecx
409356:	8b 4d fc             	mov    -0x4(%ebp),%ecx
409359:	33 cd                	xor    %ebp,%ecx
40935b:	5e                   	pop    %esi
40935c:	e8 f5 9b ff ff       	call   0x402f56
409361:	8b e5                	mov    %ebp,%esp
409363:	5d                   	pop    %ebp
409364:	c3                   	ret
409365:	8b ff                	mov    %edi,%edi
409367:	55                   	push   %ebp
409368:	8b ec                	mov    %esp,%ebp
40936a:	ff 75 08             	push   0x8(%ebp)
40936d:	e8 5e ff ff ff       	call   0x4092d0
409372:	59                   	pop    %ecx
409373:	a3 7c 41 42 00       	mov    %eax,0x42417c
409378:	5d                   	pop    %ebp
409379:	c3                   	ret
40937a:	8b ff                	mov    %edi,%edi
40937c:	55                   	push   %ebp
40937d:	8b ec                	mov    %esp,%ebp
40937f:	51                   	push   %ecx
409380:	51                   	push   %ecx
409381:	a1 0c 30 42 00       	mov    0x42300c,%eax
409386:	33 c5                	xor    %ebp,%eax
409388:	89 45 fc             	mov    %eax,-0x4(%ebp)
40938b:	8b 45 0c             	mov    0xc(%ebp),%eax
40938e:	53                   	push   %ebx
40938f:	56                   	push   %esi
409390:	8b 75 08             	mov    0x8(%ebp),%esi
409393:	2b c6                	sub    %esi,%eax
409395:	83 c0 03             	add    $0x3,%eax
409398:	57                   	push   %edi
409399:	33 ff                	xor    %edi,%edi
40939b:	c1 e8 02             	shr    $0x2,%eax
40939e:	39 75 0c             	cmp    %esi,0xc(%ebp)
4093a1:	1b db                	sbb    %ebx,%ebx
4093a3:	f7 d3                	not    %ebx
4093a5:	23 d8                	and    %eax,%ebx
4093a7:	74 1c                	je     0x4093c5
4093a9:	8b 06                	mov    (%esi),%eax
4093ab:	89 45 f8             	mov    %eax,-0x8(%ebp)
4093ae:	85 c0                	test   %eax,%eax
4093b0:	74 0b                	je     0x4093bd
4093b2:	8b c8                	mov    %eax,%ecx
4093b4:	ff 15 a8 b1 41 00    	call   *0x41b1a8
4093ba:	ff 55 f8             	call   *-0x8(%ebp)
4093bd:	83 c6 04             	add    $0x4,%esi
4093c0:	47                   	inc    %edi
4093c1:	3b fb                	cmp    %ebx,%edi
4093c3:	75 e4                	jne    0x4093a9
4093c5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4093c8:	5f                   	pop    %edi
4093c9:	5e                   	pop    %esi
4093ca:	33 cd                	xor    %ebp,%ecx
4093cc:	5b                   	pop    %ebx
4093cd:	e8 84 9b ff ff       	call   0x402f56
4093d2:	8b e5                	mov    %ebp,%esp
4093d4:	5d                   	pop    %ebp
4093d5:	c3                   	ret
4093d6:	8b ff                	mov    %edi,%edi
4093d8:	55                   	push   %ebp
4093d9:	8b ec                	mov    %esp,%ebp
4093db:	51                   	push   %ecx
4093dc:	a1 0c 30 42 00       	mov    0x42300c,%eax
4093e1:	33 c5                	xor    %ebp,%eax
4093e3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4093e6:	56                   	push   %esi
4093e7:	8b 75 08             	mov    0x8(%ebp),%esi
4093ea:	57                   	push   %edi
4093eb:	eb 17                	jmp    0x409404
4093ed:	8b 3e                	mov    (%esi),%edi
4093ef:	85 ff                	test   %edi,%edi
4093f1:	74 0e                	je     0x409401
4093f3:	8b cf                	mov    %edi,%ecx
4093f5:	ff 15 a8 b1 41 00    	call   *0x41b1a8
4093fb:	ff d7                	call   *%edi
4093fd:	85 c0                	test   %eax,%eax
4093ff:	75 0a                	jne    0x40940b
409401:	83 c6 04             	add    $0x4,%esi
409404:	3b 75 0c             	cmp    0xc(%ebp),%esi
409407:	75 e4                	jne    0x4093ed
409409:	33 c0                	xor    %eax,%eax
40940b:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40940e:	5f                   	pop    %edi
40940f:	33 cd                	xor    %ebp,%ecx
409411:	5e                   	pop    %esi
409412:	e8 3f 9b ff ff       	call   0x402f56
409417:	8b e5                	mov    %ebp,%esp
409419:	5d                   	pop    %ebp
40941a:	c3                   	ret
40941b:	8b ff                	mov    %edi,%edi
40941d:	55                   	push   %ebp
40941e:	8b ec                	mov    %esp,%ebp
409420:	8b 4d 08             	mov    0x8(%ebp),%ecx
409423:	85 c9                	test   %ecx,%ecx
409425:	75 15                	jne    0x40943c
409427:	e8 db e8 ff ff       	call   0x407d07
40942c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
409432:	e8 f7 e7 ff ff       	call   0x407c2e
409437:	6a 16                	push   $0x16
409439:	58                   	pop    %eax
40943a:	5d                   	pop    %ebp
40943b:	c3                   	ret
40943c:	a1 d8 46 42 00       	mov    0x4246d8,%eax
409441:	89 01                	mov    %eax,(%ecx)
409443:	33 c0                	xor    %eax,%eax
409445:	5d                   	pop    %ebp
409446:	c3                   	ret
409447:	8b ff                	mov    %edi,%edi
409449:	55                   	push   %ebp
40944a:	8b ec                	mov    %esp,%ebp
40944c:	8b 45 08             	mov    0x8(%ebp),%eax
40944f:	3d 00 40 00 00       	cmp    $0x4000,%eax
409454:	74 23                	je     0x409479
409456:	3d 00 80 00 00       	cmp    $0x8000,%eax
40945b:	74 1c                	je     0x409479
40945d:	3d 00 00 01 00       	cmp    $0x10000,%eax
409462:	74 15                	je     0x409479
409464:	e8 9e e8 ff ff       	call   0x407d07
409469:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40946f:	e8 ba e7 ff ff       	call   0x407c2e
409474:	6a 16                	push   $0x16
409476:	58                   	pop    %eax
409477:	5d                   	pop    %ebp
409478:	c3                   	ret
409479:	b9 d8 46 42 00       	mov    $0x4246d8,%ecx
40947e:	87 01                	xchg   %eax,(%ecx)
409480:	33 c0                	xor    %eax,%eax
409482:	5d                   	pop    %ebp
409483:	c3                   	ret
409484:	8b ff                	mov    %edi,%edi
409486:	55                   	push   %ebp
409487:	8b ec                	mov    %esp,%ebp
409489:	51                   	push   %ecx
40948a:	8b 45 08             	mov    0x8(%ebp),%eax
40948d:	53                   	push   %ebx
40948e:	56                   	push   %esi
40948f:	57                   	push   %edi
409490:	8b f8                	mov    %eax,%edi
409492:	83 e0 3f             	and    $0x3f,%eax
409495:	c1 ff 06             	sar    $0x6,%edi
409498:	6b d0 30             	imul   $0x30,%eax,%edx
40949b:	8b 34 bd c0 41 42 00 	mov    0x4241c0(,%edi,4),%esi
4094a2:	8a 44 16 28          	mov    0x28(%esi,%edx,1),%al
4094a6:	8a 5c 16 29          	mov    0x29(%esi,%edx,1),%bl
4094aa:	0f b6 c8             	movzbl %al,%ecx
4094ad:	81 e1 80 00 00 00    	and    $0x80,%ecx
4094b3:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4094b6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4094b9:	81 f9 00 40 00 00    	cmp    $0x4000,%ecx
4094bf:	74 50                	je     0x409511
4094c1:	81 f9 00 80 00 00    	cmp    $0x8000,%ecx
4094c7:	74 40                	je     0x409509
4094c9:	81 f9 00 00 01 00    	cmp    $0x10000,%ecx
4094cf:	74 24                	je     0x4094f5
4094d1:	81 f9 00 00 02 00    	cmp    $0x20000,%ecx
4094d7:	74 1c                	je     0x4094f5
4094d9:	81 f9 00 00 04 00    	cmp    $0x40000,%ecx
4094df:	75 42                	jne    0x409523
4094e1:	0c 80                	or     $0x80,%al
4094e3:	88 44 16 28          	mov    %al,0x28(%esi,%edx,1)
4094e7:	8b 04 bd c0 41 42 00 	mov    0x4241c0(,%edi,4),%eax
4094ee:	c6 44 10 29 01       	movb   $0x1,0x29(%eax,%edx,1)
4094f3:	eb 2e                	jmp    0x409523
4094f5:	0c 80                	or     $0x80,%al
4094f7:	88 44 16 28          	mov    %al,0x28(%esi,%edx,1)
4094fb:	8b 04 bd c0 41 42 00 	mov    0x4241c0(,%edi,4),%eax
409502:	c6 44 10 29 02       	movb   $0x2,0x29(%eax,%edx,1)
409507:	eb 1a                	jmp    0x409523
409509:	24 7f                	and    $0x7f,%al
40950b:	88 44 16 28          	mov    %al,0x28(%esi,%edx,1)
40950f:	eb 12                	jmp    0x409523
409511:	0c 80                	or     $0x80,%al
409513:	88 44 16 28          	mov    %al,0x28(%esi,%edx,1)
409517:	8b 0c bd c0 41 42 00 	mov    0x4241c0(,%edi,4),%ecx
40951e:	c6 44 11 29 00       	movb   $0x0,0x29(%ecx,%edx,1)
409523:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
409527:	75 07                	jne    0x409530
409529:	b8 00 80 00 00       	mov    $0x8000,%eax
40952e:	eb 1e                	jmp    0x40954e
409530:	84 db                	test   %bl,%bl
409532:	75 07                	jne    0x40953b
409534:	b8 00 40 00 00       	mov    $0x4000,%eax
409539:	eb 13                	jmp    0x40954e
40953b:	33 c0                	xor    %eax,%eax
40953d:	80 fb 01             	cmp    $0x1,%bl
409540:	0f 95 c0             	setne  %al
409543:	48                   	dec    %eax
409544:	25 00 00 03 00       	and    $0x30000,%eax
409549:	05 00 00 01 00       	add    $0x10000,%eax
40954e:	5f                   	pop    %edi
40954f:	5e                   	pop    %esi
409550:	5b                   	pop    %ebx
409551:	8b e5                	mov    %ebp,%esp
409553:	5d                   	pop    %ebp
409554:	c3                   	ret
409555:	ff 15 3c b1 41 00    	call   *0x41b13c
40955b:	a3 8c 41 42 00       	mov    %eax,0x42418c
409560:	ff 15 40 b1 41 00    	call   *0x41b140
409566:	a3 90 41 42 00       	mov    %eax,0x424190
40956b:	b0 01                	mov    $0x1,%al
40956d:	c3                   	ret
40956e:	b8 80 41 42 00       	mov    $0x424180,%eax
409573:	c3                   	ret
409574:	b8 88 41 42 00       	mov    $0x424188,%eax
409579:	c3                   	ret
40957a:	33 c0                	xor    %eax,%eax
40957c:	b9 98 41 42 00       	mov    $0x424198,%ecx
409581:	40                   	inc    %eax
409582:	87 01                	xchg   %eax,(%ecx)
409584:	c3                   	ret
409585:	6a 08                	push   $0x8
409587:	68 60 1c 42 00       	push   $0x421c60
40958c:	e8 bf a5 ff ff       	call   0x403b50
409591:	be 08 31 42 00       	mov    $0x423108,%esi
409596:	39 35 bc 41 42 00    	cmp    %esi,0x4241bc
40959c:	74 2a                	je     0x4095c8
40959e:	6a 04                	push   $0x4
4095a0:	e8 00 59 00 00       	call   0x40eea5
4095a5:	59                   	pop    %ecx
4095a6:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4095aa:	56                   	push   %esi
4095ab:	68 bc 41 42 00       	push   $0x4241bc
4095b0:	e8 01 7b 00 00       	call   0x4110b6
4095b5:	59                   	pop    %ecx
4095b6:	59                   	pop    %ecx
4095b7:	a3 bc 41 42 00       	mov    %eax,0x4241bc
4095bc:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4095c3:	e8 06 00 00 00       	call   0x4095ce
4095c8:	e8 c9 a5 ff ff       	call   0x403b96
4095cd:	c3                   	ret
4095ce:	6a 04                	push   $0x4
4095d0:	e8 18 59 00 00       	call   0x40eeed
4095d5:	59                   	pop    %ecx