408427:	ff d7                	call   *%edi
408429:	85 c0                	test   %eax,%eax
40842b:	75 0e                	jne    0x40843b
40842d:	ff 74 24 10          	push   0x10(%esp)
408431:	e8 a1 ea ff ff       	call   0x406ed7
408436:	59                   	pop    %ecx
408437:	89 5c 24 10          	mov    %ebx,0x10(%esp)
40843b:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40843f:	56                   	push   %esi
408440:	ff 15 14 d1 40 00    	call   *0x40d114
408446:	8b c3                	mov    %ebx,%eax
408448:	eb 53                	jmp    0x40849d
40844a:	83 f8 02             	cmp    $0x2,%eax
40844d:	75 4c                	jne    0x40849b
40844f:	3b fb                	cmp    %ebx,%edi
408451:	75 0c                	jne    0x40845f
408453:	ff 15 1c d1 40 00    	call   *0x40d11c
408459:	8b f8                	mov    %eax,%edi
40845b:	3b fb                	cmp    %ebx,%edi
40845d:	74 3c                	je     0x40849b
40845f:	38 1f                	cmp    %bl,(%edi)
408461:	8b c7                	mov    %edi,%eax
408463:	74 0a                	je     0x40846f
408465:	40                   	inc    %eax
408466:	38 18                	cmp    %bl,(%eax)
408468:	75 fb                	jne    0x408465
40846a:	40                   	inc    %eax
40846b:	38 18                	cmp    %bl,(%eax)
40846d:	75 f6                	jne    0x408465
40846f:	2b c7                	sub    %edi,%eax
408471:	40                   	inc    %eax
408472:	8b e8                	mov    %eax,%ebp
408474:	55                   	push   %ebp
408475:	e8 13 ef ff ff       	call   0x40738d
40847a:	8b f0                	mov    %eax,%esi
40847c:	59                   	pop    %ecx
40847d:	3b f3                	cmp    %ebx,%esi
40847f:	75 04                	jne    0x408485
408481:	33 f6                	xor    %esi,%esi
408483:	eb 0b                	jmp    0x408490
408485:	55                   	push   %ebp
408486:	57                   	push   %edi
408487:	56                   	push   %esi
408488:	e8 d3 d8 ff ff       	call   0x405d60
40848d:	83 c4 0c             	add    $0xc,%esp
408490:	57                   	push   %edi
408491:	ff 15 10 d1 40 00    	call   *0x40d110
408497:	8b c6                	mov    %esi,%eax
408499:	eb 02                	jmp    0x40849d
40849b:	33 c0                	xor    %eax,%eax
40849d:	5f                   	pop    %edi
40849e:	5e                   	pop    %esi
40849f:	5d                   	pop    %ebp
4084a0:	5b                   	pop    %ebx
4084a1:	59                   	pop    %ecx
4084a2:	59                   	pop    %ecx
4084a3:	c3                   	ret
4084a4:	55                   	push   %ebp
4084a5:	8b ec                	mov    %esp,%ebp
4084a7:	83 ec 48             	sub    $0x48,%esp
4084aa:	53                   	push   %ebx
4084ab:	56                   	push   %esi
4084ac:	57                   	push   %edi
4084ad:	68 80 04 00 00       	push   $0x480
4084b2:	e8 d6 ee ff ff       	call   0x40738d
4084b7:	8b f0                	mov    %eax,%esi
4084b9:	59                   	pop    %ecx
4084ba:	85 f6                	test   %esi,%esi
4084bc:	75 08                	jne    0x4084c6
4084be:	6a 1b                	push   $0x1b
4084c0:	e8 b7 d2 ff ff       	call   0x40577c
4084c5:	59                   	pop    %ecx
4084c6:	89 35 c0 1d 41 00    	mov    %esi,0x411dc0
4084cc:	c7 05 c0 1e 41 00 20 	movl   $0x20,0x411ec0
4084d3:	00 00 00
4084d6:	8d 86 80 04 00 00    	lea    0x480(%esi),%eax
4084dc:	3b f0                	cmp    %eax,%esi
4084de:	73 1e                	jae    0x4084fe
4084e0:	80 66 04 00          	andb   $0x0,0x4(%esi)
4084e4:	83 0e ff             	orl    $0xffffffff,(%esi)
4084e7:	83 66 08 00          	andl   $0x0,0x8(%esi)
4084eb:	c6 46 05 0a          	movb   $0xa,0x5(%esi)
4084ef:	a1 c0 1d 41 00       	mov    0x411dc0,%eax
4084f4:	83 c6 24             	add    $0x24,%esi
4084f7:	05 80 04 00 00       	add    $0x480,%eax
4084fc:	eb de                	jmp    0x4084dc
4084fe:	8d 45 b8             	lea    -0x48(%ebp),%eax
408501:	50                   	push   %eax
408502:	ff 15 dc d0 40 00    	call   *0x40d0dc
408508:	66 83 7d ea 00       	cmpw   $0x0,-0x16(%ebp)
40850d:	0f 84 d1 00 00 00    	je     0x4085e4
408513:	8b 45 ec             	mov    -0x14(%ebp),%eax
408516:	85 c0                	test   %eax,%eax
408518:	0f 84 c6 00 00 00    	je     0x4085e4
40851e:	8b 38                	mov    (%eax),%edi
408520:	8d 58 04             	lea    0x4(%eax),%ebx
408523:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
408526:	89 45 fc             	mov    %eax,-0x4(%ebp)
408529:	b8 00 08 00 00       	mov    $0x800,%eax
40852e:	3b f8                	cmp    %eax,%edi
408530:	7c 02                	jl     0x408534
408532:	8b f8                	mov    %eax,%edi
408534:	39 3d c0 1e 41 00    	cmp    %edi,0x411ec0
40853a:	7d 56                	jge    0x408592
40853c:	be c4 1d 41 00       	mov    $0x411dc4,%esi
408541:	68 80 04 00 00       	push   $0x480
408546:	e8 42 ee ff ff       	call   0x40738d
40854b:	85 c0                	test   %eax,%eax
40854d:	59                   	pop    %ecx
40854e:	74 3c                	je     0x40858c
408550:	83 05 c0 1e 41 00 20 	addl   $0x20,0x411ec0
408557:	89 06                	mov    %eax,(%esi)
408559:	8d 88 80 04 00 00    	lea    0x480(%eax),%ecx
40855f:	3b c1                	cmp    %ecx,%eax
408561:	73 1c                	jae    0x40857f
408563:	80 60 04 00          	andb   $0x0,0x4(%eax)
408567:	83 08 ff             	orl    $0xffffffff,(%eax)
40856a:	83 60 08 00          	andl   $0x0,0x8(%eax)
40856e:	c6 40 05 0a          	movb   $0xa,0x5(%eax)
408572:	8b 0e                	mov    (%esi),%ecx
408574:	83 c0 24             	add    $0x24,%eax
408577:	81 c1 80 04 00 00    	add    $0x480,%ecx
40857d:	eb e0                	jmp    0x40855f
40857f:	83 c6 04             	add    $0x4,%esi
408582:	39 3d c0 1e 41 00    	cmp    %edi,0x411ec0
408588:	7c b7                	jl     0x408541
40858a:	eb 06                	jmp    0x408592
40858c:	8b 3d c0 1e 41 00    	mov    0x411ec0,%edi
408592:	33 f6                	xor    %esi,%esi
408594:	85 ff                	test   %edi,%edi
408596:	7e 4c                	jle    0x4085e4
408598:	8b 45 fc             	mov    -0x4(%ebp),%eax
40859b:	8b 08                	mov    (%eax),%ecx
40859d:	83 f9 ff             	cmp    $0xffffffff,%ecx
4085a0:	74 38                	je     0x4085da
4085a2:	8a 03                	mov    (%ebx),%al
4085a4:	a8 01                	test   $0x1,%al
4085a6:	74 32                	je     0x4085da
4085a8:	a8 08                	test   $0x8,%al
4085aa:	75 0b                	jne    0x4085b7
4085ac:	51                   	push   %ecx
4085ad:	ff 15 2c d1 40 00    	call   *0x40d12c
4085b3:	85 c0                	test   %eax,%eax
4085b5:	74 23                	je     0x4085da
4085b7:	8b ce                	mov    %esi,%ecx
4085b9:	8b c6                	mov    %esi,%eax
4085bb:	c1 f9 05             	sar    $0x5,%ecx
4085be:	83 e0 1f             	and    $0x1f,%eax
4085c1:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
4085c8:	8d 04 c0             	lea    (%eax,%eax,8),%eax
4085cb:	8d 04 81             	lea    (%ecx,%eax,4),%eax
4085ce:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4085d1:	8b 09                	mov    (%ecx),%ecx
4085d3:	89 08                	mov    %ecx,(%eax)
4085d5:	8a 0b                	mov    (%ebx),%cl
4085d7:	88 48 04             	mov    %cl,0x4(%eax)
4085da:	83 45 fc 04          	addl   $0x4,-0x4(%ebp)
4085de:	46                   	inc    %esi
4085df:	43                   	inc    %ebx
4085e0:	3b f7                	cmp    %edi,%esi
4085e2:	7c b4                	jl     0x408598
4085e4:	33 db                	xor    %ebx,%ebx
4085e6:	8b 0d c0 1d 41 00    	mov    0x411dc0,%ecx
4085ec:	8d 04 db             	lea    (%ebx,%ebx,8),%eax
4085ef:	83 3c 81 ff          	cmpl   $0xffffffff,(%ecx,%eax,4)
4085f3:	8d 34 81             	lea    (%ecx,%eax,4),%esi
4085f6:	75 4d                	jne    0x408645
4085f8:	85 db                	test   %ebx,%ebx
4085fa:	c6 46 04 81          	movb   $0x81,0x4(%esi)
4085fe:	75 05                	jne    0x408605
408600:	6a f6                	push   $0xfffffff6
408602:	58                   	pop    %eax
408603:	eb 0a                	jmp    0x40860f
408605:	8b c3                	mov    %ebx,%eax
408607:	48                   	dec    %eax
408608:	f7 d8                	neg    %eax
40860a:	1b c0                	sbb    %eax,%eax
40860c:	83 c0 f5             	add    $0xfffffff5,%eax
40860f:	50                   	push   %eax
408610:	ff 15 28 d1 40 00    	call   *0x40d128
408616:	8b f8                	mov    %eax,%edi
408618:	83 ff ff             	cmp    $0xffffffff,%edi
40861b:	74 17                	je     0x408634
40861d:	57                   	push   %edi
40861e:	ff 15 2c d1 40 00    	call   *0x40d12c
408624:	85 c0                	test   %eax,%eax
408626:	74 0c                	je     0x408634
408628:	25 ff 00 00 00       	and    $0xff,%eax
40862d:	89 3e                	mov    %edi,(%esi)
40862f:	83 f8 02             	cmp    $0x2,%eax
408632:	75 06                	jne    0x40863a
408634:	80 4e 04 40          	orb    $0x40,0x4(%esi)
408638:	eb 0f                	jmp    0x408649
40863a:	83 f8 03             	cmp    $0x3,%eax
40863d:	75 0a                	jne    0x408649
40863f:	80 4e 04 08          	orb    $0x8,0x4(%esi)
408643:	eb 04                	jmp    0x408649
408645:	80 4e 04 80          	orb    $0x80,0x4(%esi)
408649:	43                   	inc    %ebx
40864a:	83 fb 03             	cmp    $0x3,%ebx
40864d:	7c 97                	jl     0x4085e6
40864f:	ff 35 c0 1e 41 00    	push   0x411ec0
408655:	ff 15 24 d1 40 00    	call   *0x40d124
40865b:	5f                   	pop    %edi
40865c:	5e                   	pop    %esi
40865d:	5b                   	pop    %ebx
40865e:	c9                   	leave
40865f:	c3                   	ret
408660:	56                   	push   %esi
408661:	e8 66 e9 ff ff       	call   0x406fcc
408666:	ff 15 38 d1 40 00    	call   *0x40d138
40866c:	83 f8 ff             	cmp    $0xffffffff,%eax
40866f:	a3 2c 0e 41 00       	mov    %eax,0x410e2c
408674:	74 3a                	je     0x4086b0
408676:	6a 74                	push   $0x74
408678:	6a 01                	push   $0x1
40867a:	e8 e5 03 00 00       	call   0x408a64
40867f:	8b f0                	mov    %eax,%esi
408681:	59                   	pop    %ecx
408682:	85 f6                	test   %esi,%esi
408684:	59                   	pop    %ecx
408685:	74 29                	je     0x4086b0
408687:	56                   	push   %esi
408688:	ff 35 2c 0e 41 00    	push   0x410e2c
40868e:	ff 15 34 d1 40 00    	call   *0x40d134
408694:	85 c0                	test   %eax,%eax
408696:	74 18                	je     0x4086b0
408698:	56                   	push   %esi
408699:	e8 16 00 00 00       	call   0x4086b4
40869e:	59                   	pop    %ecx
40869f:	ff 15 30 d1 40 00    	call   *0x40d130
4086a5:	83 4e 04 ff          	orl    $0xffffffff,0x4(%esi)
4086a9:	6a 01                	push   $0x1
4086ab:	89 06                	mov    %eax,(%esi)
4086ad:	58                   	pop    %eax
4086ae:	5e                   	pop    %esi
4086af:	c3                   	ret
4086b0:	33 c0                	xor    %eax,%eax
4086b2:	5e                   	pop    %esi
4086b3:	c3                   	ret
4086b4:	8b 44 24 04          	mov    0x4(%esp),%eax
4086b8:	c7 40 50 80 0d 41 00 	movl   $0x410d80,0x50(%eax)
4086bf:	c7 40 14 01 00 00 00 	movl   $0x1,0x14(%eax)
4086c6:	c3                   	ret
4086c7:	56                   	push   %esi
4086c8:	57                   	push   %edi
4086c9:	ff 15 9c d0 40 00    	call   *0x40d09c
4086cf:	ff 35 2c 0e 41 00    	push   0x410e2c
4086d5:	8b f8                	mov    %eax,%edi
4086d7:	ff 15 90 d0 40 00    	call   *0x40d090
4086dd:	8b f0                	mov    %eax,%esi
4086df:	85 f6                	test   %esi,%esi
4086e1:	75 3f                	jne    0x408722
4086e3:	6a 74                	push   $0x74
4086e5:	6a 01                	push   $0x1
4086e7:	e8 78 03 00 00       	call   0x408a64
4086ec:	8b f0                	mov    %eax,%esi
4086ee:	59                   	pop    %ecx
4086ef:	85 f6                	test   %esi,%esi
4086f1:	59                   	pop    %ecx
4086f2:	74 26                	je     0x40871a
4086f4:	56                   	push   %esi
4086f5:	ff 35 2c 0e 41 00    	push   0x410e2c
4086fb:	ff 15 34 d1 40 00    	call   *0x40d134
408701:	85 c0                	test   %eax,%eax
408703:	74 15                	je     0x40871a
408705:	56                   	push   %esi
408706:	e8 a9 ff ff ff       	call   0x4086b4
40870b:	59                   	pop    %ecx
40870c:	ff 15 30 d1 40 00    	call   *0x40d130
408712:	83 4e 04 ff          	orl    $0xffffffff,0x4(%esi)
408716:	89 06                	mov    %eax,(%esi)
408718:	eb 08                	jmp    0x408722
40871a:	6a 10                	push   $0x10
40871c:	e8 5b d0 ff ff       	call   0x40577c
408721:	59                   	pop    %ecx
408722:	57                   	push   %edi
408723:	ff 15 3c d1 40 00    	call   *0x40d13c
408729:	8b c6                	mov    %esi,%eax
40872b:	5f                   	pop    %edi
40872c:	5e                   	pop    %esi
40872d:	c3                   	ret
40872e:	33 c0                	xor    %eax,%eax
408730:	6a 00                	push   $0x0
408732:	39 44 24 08          	cmp    %eax,0x8(%esp)
408736:	68 00 10 00 00       	push   $0x1000
40873b:	0f 94 c0             	sete   %al
40873e:	50                   	push   %eax
40873f:	ff 15 88 d0 40 00    	call   *0x40d088
408745:	85 c0                	test   %eax,%eax
408747:	a3 a0 1d 41 00       	mov    %eax,0x411da0
40874c:	74 15                	je     0x408763
40874e:	e8 f1 1b 00 00       	call   0x40a344
408753:	85 c0                	test   %eax,%eax
408755:	75 0f                	jne    0x408766
408757:	ff 35 a0 1d 41 00    	push   0x411da0
40875d:	ff 15 8c d0 40 00    	call   *0x40d08c
408763:	33 c0                	xor    %eax,%eax
408765:	c3                   	ret
408766:	6a 01                	push   $0x1
408768:	58                   	pop    %eax
408769:	c3                   	ret
40876a:	cc                   	int3
40876b:	cc                   	int3
40876c:	56                   	push   %esi
40876d:	43                   	inc    %ebx
40876e:	32 30                	xor    (%eax),%dh
408770:	58                   	pop    %eax
408771:	43                   	inc    %ebx
408772:	30 30                	xor    %dh,(%eax)
408774:	55                   	push   %ebp
408775:	8b ec                	mov    %esp,%ebp
408777:	83 ec 08             	sub    $0x8,%esp
40877a:	53                   	push   %ebx
40877b:	56                   	push   %esi
40877c:	57                   	push   %edi
40877d:	55                   	push   %ebp
40877e:	fc                   	cld
40877f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
408782:	8b 45 08             	mov    0x8(%ebp),%eax
408785:	f7 40 04 06 00 00 00 	testl  $0x6,0x4(%eax)
40878c:	0f 85 82 00 00 00    	jne    0x408814
408792:	89 45 f8             	mov    %eax,-0x8(%ebp)
408795:	8b 45 10             	mov    0x10(%ebp),%eax
408798:	89 45 fc             	mov    %eax,-0x4(%ebp)
40879b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40879e:	89 43 fc             	mov    %eax,-0x4(%ebx)
4087a1:	8b 73 0c             	mov    0xc(%ebx),%esi
4087a4:	8b 7b 08             	mov    0x8(%ebx),%edi
4087a7:	83 fe ff             	cmp    $0xffffffff,%esi
4087aa:	74 61                	je     0x40880d
4087ac:	8d 0c 76             	lea    (%esi,%esi,2),%ecx
4087af:	83 7c 8f 04 00       	cmpl   $0x0,0x4(%edi,%ecx,4)
4087b4:	74 45                	je     0x4087fb
4087b6:	56                   	push   %esi
4087b7:	55                   	push   %ebp
4087b8:	8d 6b 10             	lea    0x10(%ebx),%ebp
4087bb:	ff 54 8f 04          	call   *0x4(%edi,%ecx,4)
4087bf:	5d                   	pop    %ebp
4087c0:	5e                   	pop    %esi
4087c1:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4087c4:	0b c0                	or     %eax,%eax
4087c6:	74 33                	je     0x4087fb
4087c8:	78 3c                	js     0x408806
4087ca:	8b 7b 08             	mov    0x8(%ebx),%edi
4087cd:	53                   	push   %ebx
4087ce:	e8 7d d4 ff ff       	call   0x405c50
4087d3:	83 c4 04             	add    $0x4,%esp
4087d6:	8d 6b 10             	lea    0x10(%ebx),%ebp
4087d9:	56                   	push   %esi