40c2fe:	3b c7                	cmp    %edi,%eax
40c300:	74 1c                	je     0x40c31e
40c302:	56                   	push   %esi
40c303:	e8 b9 8e 00 00       	call   0x4151c1
40c308:	59                   	pop    %ecx
40c309:	50                   	push   %eax
40c30a:	ff 15 14 a1 41 00    	call   *0x41a114
40c310:	85 c0                	test   %eax,%eax
40c312:	75 0a                	jne    0x40c31e
40c314:	ff 15 98 a0 41 00    	call   *0x41a098
40c31a:	8b f8                	mov    %eax,%edi
40c31c:	eb 02                	jmp    0x40c320
40c31e:	33 ff                	xor    %edi,%edi
40c320:	56                   	push   %esi
40c321:	e8 15 8e 00 00       	call   0x41513b
40c326:	8b c6                	mov    %esi,%eax
40c328:	c1 f8 05             	sar    $0x5,%eax
40c32b:	8b 04 85 60 12 c7 00 	mov    0xc71260(,%eax,4),%eax
40c332:	83 e6 1f             	and    $0x1f,%esi
40c335:	c1 e6 06             	shl    $0x6,%esi
40c338:	59                   	pop    %ecx
40c339:	c6 44 30 04 00       	movb   $0x0,0x4(%eax,%esi,1)
40c33e:	85 ff                	test   %edi,%edi
40c340:	74 0c                	je     0x40c34e
40c342:	57                   	push   %edi
40c343:	e8 b3 97 ff ff       	call   0x405afb
40c348:	59                   	pop    %ecx
40c349:	83 c8 ff             	or     $0xffffffff,%eax
40c34c:	eb 02                	jmp    0x40c350
40c34e:	33 c0                	xor    %eax,%eax
40c350:	5f                   	pop    %edi
40c351:	5e                   	pop    %esi
40c352:	5d                   	pop    %ebp
40c353:	c3                   	ret
40c354:	6a 10                	push   $0x10
40c356:	68 68 97 42 00       	push   $0x429768
40c35b:	e8 7c e0 ff ff       	call   0x40a3dc
40c360:	8b 45 08             	mov    0x8(%ebp),%eax
40c363:	83 f8 fe             	cmp    $0xfffffffe,%eax
40c366:	75 1b                	jne    0x40c383
40c368:	e8 7b 97 ff ff       	call   0x405ae8
40c36d:	83 20 00             	andl   $0x0,(%eax)
40c370:	e8 60 97 ff ff       	call   0x405ad5
40c375:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c37b:	83 c8 ff             	or     $0xffffffff,%eax
40c37e:	e9 8e 00 00 00       	jmp    0x40c411
40c383:	33 ff                	xor    %edi,%edi
40c385:	3b c7                	cmp    %edi,%eax
40c387:	7c 08                	jl     0x40c391
40c389:	3b 05 44 12 c7 00    	cmp    0xc71244,%eax
40c38f:	72 21                	jb     0x40c3b2
40c391:	e8 52 97 ff ff       	call   0x405ae8
40c396:	89 38                	mov    %edi,(%eax)
40c398:	e8 38 97 ff ff       	call   0x405ad5
40c39d:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c3a3:	57                   	push   %edi
40c3a4:	57                   	push   %edi
40c3a5:	57                   	push   %edi
40c3a6:	57                   	push   %edi
40c3a7:	57                   	push   %edi
40c3a8:	e8 78 8e ff ff       	call   0x405225
40c3ad:	83 c4 14             	add    $0x14,%esp
40c3b0:	eb c9                	jmp    0x40c37b
40c3b2:	8b c8                	mov    %eax,%ecx
40c3b4:	c1 f9 05             	sar    $0x5,%ecx
40c3b7:	8d 1c 8d 60 12 c7 00 	lea    0xc71260(,%ecx,4),%ebx
40c3be:	8b f0                	mov    %eax,%esi
40c3c0:	83 e6 1f             	and    $0x1f,%esi
40c3c3:	c1 e6 06             	shl    $0x6,%esi
40c3c6:	8b 0b                	mov    (%ebx),%ecx
40c3c8:	0f be 4c 31 04       	movsbl 0x4(%ecx,%esi,1),%ecx
40c3cd:	83 e1 01             	and    $0x1,%ecx
40c3d0:	74 bf                	je     0x40c391
40c3d2:	50                   	push   %eax
40c3d3:	e8 60 8e 00 00       	call   0x415238
40c3d8:	59                   	pop    %ecx
40c3d9:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c3dc:	8b 03                	mov    (%ebx),%eax
40c3de:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
40c3e3:	74 0e                	je     0x40c3f3
40c3e5:	ff 75 08             	push   0x8(%ebp)
40c3e8:	e8 cb fe ff ff       	call   0x40c2b8
40c3ed:	59                   	pop    %ecx
40c3ee:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40c3f1:	eb 0f                	jmp    0x40c402
40c3f3:	e8 dd 96 ff ff       	call   0x405ad5
40c3f8:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
40c3fe:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
40c402:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c409:	e8 09 00 00 00       	call   0x40c417
40c40e:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c411:	e8 0b e0 ff ff       	call   0x40a421
40c416:	c3                   	ret
40c417:	ff 75 08             	push   0x8(%ebp)
40c41a:	e8 b9 8e 00 00       	call   0x4152d8
40c41f:	59                   	pop    %ecx
40c420:	c3                   	ret
40c421:	8b ff                	mov    %edi,%edi
40c423:	55                   	push   %ebp
40c424:	8b ec                	mov    %esp,%ebp
40c426:	56                   	push   %esi
40c427:	8b 75 08             	mov    0x8(%ebp),%esi
40c42a:	8b 46 0c             	mov    0xc(%esi),%eax
40c42d:	a8 83                	test   $0x83,%al
40c42f:	74 1e                	je     0x40c44f
40c431:	a8 08                	test   $0x8,%al
40c433:	74 1a                	je     0x40c44f
40c435:	ff 76 08             	push   0x8(%esi)
40c438:	e8 e3 8b ff ff       	call   0x405020
40c43d:	81 66 0c f7 fb ff ff 	andl   $0xfffffbf7,0xc(%esi)
40c444:	33 c0                	xor    %eax,%eax
40c446:	59                   	pop    %ecx
40c447:	89 06                	mov    %eax,(%esi)
40c449:	89 46 08             	mov    %eax,0x8(%esi)
40c44c:	89 46 04             	mov    %eax,0x4(%esi)
40c44f:	5e                   	pop    %esi
40c450:	5d                   	pop    %ebp
40c451:	c3                   	ret
40c452:	8b ff                	mov    %edi,%edi
40c454:	55                   	push   %ebp
40c455:	8b ec                	mov    %esp,%ebp
40c457:	53                   	push   %ebx
40c458:	56                   	push   %esi
40c459:	8b 75 08             	mov    0x8(%ebp),%esi
40c45c:	8b 46 0c             	mov    0xc(%esi),%eax
40c45f:	8b c8                	mov    %eax,%ecx
40c461:	80 e1 03             	and    $0x3,%cl
40c464:	33 db                	xor    %ebx,%ebx
40c466:	80 f9 02             	cmp    $0x2,%cl
40c469:	75 40                	jne    0x40c4ab
40c46b:	a9 08 01 00 00       	test   $0x108,%eax
40c470:	74 39                	je     0x40c4ab
40c472:	8b 46 08             	mov    0x8(%esi),%eax
40c475:	57                   	push   %edi
40c476:	8b 3e                	mov    (%esi),%edi
40c478:	2b f8                	sub    %eax,%edi
40c47a:	85 ff                	test   %edi,%edi
40c47c:	7e 2c                	jle    0x40c4aa
40c47e:	57                   	push   %edi
40c47f:	50                   	push   %eax
40c480:	56                   	push   %esi
40c481:	e8 fb fc ff ff       	call   0x40c181
40c486:	59                   	pop    %ecx
40c487:	50                   	push   %eax
40c488:	e8 d2 65 00 00       	call   0x412a5f
40c48d:	83 c4 0c             	add    $0xc,%esp
40c490:	3b c7                	cmp    %edi,%eax
40c492:	75 0f                	jne    0x40c4a3
40c494:	8b 46 0c             	mov    0xc(%esi),%eax
40c497:	84 c0                	test   %al,%al
40c499:	79 0f                	jns    0x40c4aa
40c49b:	83 e0 fd             	and    $0xfffffffd,%eax
40c49e:	89 46 0c             	mov    %eax,0xc(%esi)
40c4a1:	eb 07                	jmp    0x40c4aa
40c4a3:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
40c4a7:	83 cb ff             	or     $0xffffffff,%ebx
40c4aa:	5f                   	pop    %edi
40c4ab:	8b 46 08             	mov    0x8(%esi),%eax
40c4ae:	83 66 04 00          	andl   $0x0,0x4(%esi)
40c4b2:	89 06                	mov    %eax,(%esi)
40c4b4:	5e                   	pop    %esi
40c4b5:	8b c3                	mov    %ebx,%eax
40c4b7:	5b                   	pop    %ebx
40c4b8:	5d                   	pop    %ebp
40c4b9:	c3                   	ret
40c4ba:	8b ff                	mov    %edi,%edi
40c4bc:	55                   	push   %ebp
40c4bd:	8b ec                	mov    %esp,%ebp
40c4bf:	56                   	push   %esi
40c4c0:	8b 75 08             	mov    0x8(%ebp),%esi
40c4c3:	85 f6                	test   %esi,%esi
40c4c5:	75 09                	jne    0x40c4d0
40c4c7:	56                   	push   %esi
40c4c8:	e8 35 00 00 00       	call   0x40c502
40c4cd:	59                   	pop    %ecx
40c4ce:	eb 2f                	jmp    0x40c4ff
40c4d0:	56                   	push   %esi
40c4d1:	e8 7c ff ff ff       	call   0x40c452
40c4d6:	59                   	pop    %ecx
40c4d7:	85 c0                	test   %eax,%eax
40c4d9:	74 05                	je     0x40c4e0
40c4db:	83 c8 ff             	or     $0xffffffff,%eax
40c4de:	eb 1f                	jmp    0x40c4ff
40c4e0:	f7 46 0c 00 40 00 00 	testl  $0x4000,0xc(%esi)
40c4e7:	74 14                	je     0x40c4fd
40c4e9:	56                   	push   %esi
40c4ea:	e8 92 fc ff ff       	call   0x40c181
40c4ef:	50                   	push   %eax
40c4f0:	e8 a4 8f 00 00       	call   0x415499
40c4f5:	59                   	pop    %ecx
40c4f6:	f7 d8                	neg    %eax
40c4f8:	59                   	pop    %ecx
40c4f9:	1b c0                	sbb    %eax,%eax
40c4fb:	eb 02                	jmp    0x40c4ff
40c4fd:	33 c0                	xor    %eax,%eax
40c4ff:	5e                   	pop    %esi
40c500:	5d                   	pop    %ebp
40c501:	c3                   	ret
40c502:	6a 14                	push   $0x14
40c504:	68 88 97 42 00       	push   $0x429788
40c509:	e8 ce de ff ff       	call   0x40a3dc
40c50e:	33 ff                	xor    %edi,%edi
40c510:	89 7d e4             	mov    %edi,-0x1c(%ebp)
40c513:	89 7d dc             	mov    %edi,-0x24(%ebp)
40c516:	6a 01                	push   $0x1
40c518:	e8 c7 d3 ff ff       	call   0x4098e4
40c51d:	59                   	pop    %ecx
40c51e:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c521:	33 f6                	xor    %esi,%esi
40c523:	89 75 e0             	mov    %esi,-0x20(%ebp)
40c526:	3b 35 80 23 c7 00    	cmp    0xc72380,%esi
40c52c:	0f 8d 83 00 00 00    	jge    0x40c5b5
40c532:	a1 68 13 c7 00       	mov    0xc71368,%eax
40c537:	8d 04 b0             	lea    (%eax,%esi,4),%eax
40c53a:	39 38                	cmp    %edi,(%eax)
40c53c:	74 5e                	je     0x40c59c
40c53e:	8b 00                	mov    (%eax),%eax
40c540:	f6 40 0c 83          	testb  $0x83,0xc(%eax)
40c544:	74 56                	je     0x40c59c
40c546:	50                   	push   %eax
40c547:	56                   	push   %esi
40c548:	e8 e2 e8 ff ff       	call   0x40ae2f
40c54d:	59                   	pop    %ecx
40c54e:	59                   	pop    %ecx
40c54f:	33 d2                	xor    %edx,%edx
40c551:	42                   	inc    %edx
40c552:	89 55 fc             	mov    %edx,-0x4(%ebp)
40c555:	a1 68 13 c7 00       	mov    0xc71368,%eax
40c55a:	8b 04 b0             	mov    (%eax,%esi,4),%eax
40c55d:	8b 48 0c             	mov    0xc(%eax),%ecx
40c560:	f6 c1 83             	test   $0x83,%cl
40c563:	74 2f                	je     0x40c594
40c565:	39 55 08             	cmp    %edx,0x8(%ebp)
40c568:	75 11                	jne    0x40c57b
40c56a:	50                   	push   %eax
40c56b:	e8 4a ff ff ff       	call   0x40c4ba
40c570:	59                   	pop    %ecx
40c571:	83 f8 ff             	cmp    $0xffffffff,%eax
40c574:	74 1e                	je     0x40c594
40c576:	ff 45 e4             	incl   -0x1c(%ebp)
40c579:	eb 19                	jmp    0x40c594
40c57b:	39 7d 08             	cmp    %edi,0x8(%ebp)
40c57e:	75 14                	jne    0x40c594
40c580:	f6 c1 02             	test   $0x2,%cl
40c583:	74 0f                	je     0x40c594
40c585:	50                   	push   %eax
40c586:	e8 2f ff ff ff       	call   0x40c4ba
40c58b:	59                   	pop    %ecx
40c58c:	83 f8 ff             	cmp    $0xffffffff,%eax
40c58f:	75 03                	jne    0x40c594
40c591:	09 45 dc             	or     %eax,-0x24(%ebp)
40c594:	89 7d fc             	mov    %edi,-0x4(%ebp)
40c597:	e8 08 00 00 00       	call   0x40c5a4
40c59c:	46                   	inc    %esi
40c59d:	eb 84                	jmp    0x40c523
40c59f:	33 ff                	xor    %edi,%edi
40c5a1:	8b 75 e0             	mov    -0x20(%ebp),%esi
40c5a4:	a1 68 13 c7 00       	mov    0xc71368,%eax
40c5a9:	ff 34 b0             	push   (%eax,%esi,4)
40c5ac:	56                   	push   %esi
40c5ad:	e8 eb e8 ff ff       	call   0x40ae9d
40c5b2:	59                   	pop    %ecx
40c5b3:	59                   	pop    %ecx
40c5b4:	c3                   	ret
40c5b5:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40c5bc:	e8 12 00 00 00       	call   0x40c5d3
40c5c1:	83 7d 08 01          	cmpl   $0x1,0x8(%ebp)
40c5c5:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40c5c8:	74 03                	je     0x40c5cd
40c5ca:	8b 45 dc             	mov    -0x24(%ebp),%eax
40c5cd:	e8 4f de ff ff       	call   0x40a421
40c5d2:	c3                   	ret
40c5d3:	6a 01                	push   $0x1
40c5d5:	e8 30 d2 ff ff       	call   0x40980a
40c5da:	59                   	pop    %ecx
40c5db:	c3                   	ret
40c5dc:	6a 01                	push   $0x1
40c5de:	e8 1f ff ff ff       	call   0x40c502
40c5e3:	59                   	pop    %ecx
40c5e4:	c3                   	ret
40c5e5:	8b ff                	mov    %edi,%edi
40c5e7:	55                   	push   %ebp
40c5e8:	8b ec                	mov    %esp,%ebp
40c5ea:	8b 45 08             	mov    0x8(%ebp),%eax
40c5ed:	a3 88 09 43 00       	mov    %eax,0x430988
40c5f2:	5d                   	pop    %ebp
40c5f3:	c3                   	ret
40c5f4:	8b ff                	mov    %edi,%edi
40c5f6:	55                   	push   %ebp
40c5f7:	8b ec                	mov    %esp,%ebp
40c5f9:	ff 35 88 09 43 00    	push   0x430988
40c5ff:	e8 f1 e1 ff ff       	call   0x40a7f5
40c604:	59                   	pop    %ecx
40c605:	85 c0                	test   %eax,%eax
40c607:	74 0f                	je     0x40c618
40c609:	ff 75 08             	push   0x8(%ebp)
40c60c:	ff d0                	call   *%eax
40c60e:	59                   	pop    %ecx
40c60f:	85 c0                	test   %eax,%eax
40c611:	74 05                	je     0x40c618
40c613:	33 c0                	xor    %eax,%eax
40c615:	40                   	inc    %eax
40c616:	5d                   	pop    %ebp
40c617:	c3                   	ret
40c618:	33 c0                	xor    %eax,%eax
40c61a:	5d                   	pop    %ebp
40c61b:	c3                   	ret
40c61c:	8b ff                	mov    %edi,%edi
40c61e:	55                   	push   %ebp
40c61f:	8b ec                	mov    %esp,%ebp
40c621:	8b 45 08             	mov    0x8(%ebp),%eax
40c624:	8b 00                	mov    (%eax),%eax
40c626:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40c62c:	75 2a                	jne    0x40c658
40c62e:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
40c632:	75 24                	jne    0x40c658
40c634:	8b 40 14             	mov    0x14(%eax),%eax
40c637:	3d 20 05 93 19       	cmp    $0x19930520,%eax
40c63c:	74 15                	je     0x40c653
40c63e:	3d 21 05 93 19       	cmp    $0x19930521,%eax
40c643:	74 0e                	je     0x40c653
40c645:	3d 22 05 93 19       	cmp    $0x19930522,%eax
40c64a:	74 07                	je     0x40c653
40c64c:	3d 00 40 99 01       	cmp    $0x1994000,%eax
40c651:	75 05                	jne    0x40c658
40c653:	e8 33 1f 00 00       	call   0x40e58b
40c658:	33 c0                	xor    %eax,%eax
40c65a:	5d                   	pop    %ebp
40c65b:	c2 04 00             	ret    $0x4
40c65e:	68 1c c6 40 00       	push   $0x40c61c
40c663:	ff 15 ac a0 41 00    	call   *0x41a0ac
40c669:	33 c0                	xor    %eax,%eax
40c66b:	c3                   	ret
40c66c:	8b ff                	mov    %edi,%edi
40c66e:	55                   	push   %ebp
40c66f:	8b ec                	mov    %esp,%ebp
40c671:	57                   	push   %edi
40c672:	bf e8 03 00 00       	mov    $0x3e8,%edi
40c677:	57                   	push   %edi
40c678:	ff 15 84 a0 41 00    	call   *0x41a084
40c67e:	ff 75 08             	push   0x8(%ebp)
40c681:	ff 15 14 a0 41 00    	call   *0x41a014
40c687:	81 c7 e8 03 00 00    	add    $0x3e8,%edi
40c68d:	81 ff 60 ea 00 00    	cmp    $0xea60,%edi
40c693:	77 04                	ja     0x40c699
40c695:	85 c0                	test   %eax,%eax
40c697:	74 de                	je     0x40c677
40c699:	5f                   	pop    %edi
40c69a:	5d                   	pop    %ebp
40c69b:	c3                   	ret