40446d:	8b c1                	mov    %ecx,%eax
40446f:	6a 01                	push   $0x1
404471:	e8 af 64 00 00       	call   0x40a925
404476:	33 c0                	xor    %eax,%eax
404478:	33 db                	xor    %ebx,%ebx
40447a:	33 c9                	xor    %ecx,%ecx
40447c:	33 d2                	xor    %edx,%edx
40447e:	33 ff                	xor    %edi,%edi
404480:	ff e6                	jmp    *%esi
404482:	55                   	push   %ebp
404483:	8b ec                	mov    %esp,%ebp
404485:	53                   	push   %ebx
404486:	56                   	push   %esi
404487:	57                   	push   %edi
404488:	6a 00                	push   $0x0
40448a:	52                   	push   %edx
40448b:	68 96 44 40 00       	push   $0x404496
404490:	51                   	push   %ecx
404491:	e8 7e a2 00 00       	call   0x40e714
404496:	5f                   	pop    %edi
404497:	5e                   	pop    %esi
404498:	5b                   	pop    %ebx
404499:	5d                   	pop    %ebp
40449a:	c3                   	ret
40449b:	55                   	push   %ebp
40449c:	8b 6c 24 08          	mov    0x8(%esp),%ebp
4044a0:	52                   	push   %edx
4044a1:	51                   	push   %ecx
4044a2:	ff 74 24 14          	push   0x14(%esp)
4044a6:	e8 b5 fe ff ff       	call   0x404360
4044ab:	83 c4 0c             	add    $0xc,%esp
4044ae:	5d                   	pop    %ebp
4044af:	c2 08 00             	ret    $0x8
4044b2:	8b ff                	mov    %edi,%edi
4044b4:	55                   	push   %ebp
4044b5:	8b ec                	mov    %esp,%ebp
4044b7:	56                   	push   %esi
4044b8:	8b 75 08             	mov    0x8(%ebp),%esi
4044bb:	56                   	push   %esi
4044bc:	e8 ef e5 ff ff       	call   0x402ab0
4044c1:	50                   	push   %eax
4044c2:	e8 80 64 00 00       	call   0x40a947
4044c7:	59                   	pop    %ecx
4044c8:	59                   	pop    %ecx
4044c9:	85 c0                	test   %eax,%eax
4044cb:	74 7c                	je     0x404549
4044cd:	e8 b1 dd ff ff       	call   0x402283
4044d2:	83 c0 20             	add    $0x20,%eax
4044d5:	3b f0                	cmp    %eax,%esi
4044d7:	75 04                	jne    0x4044dd
4044d9:	33 c0                	xor    %eax,%eax
4044db:	eb 0f                	jmp    0x4044ec
4044dd:	e8 a1 dd ff ff       	call   0x402283
4044e2:	83 c0 40             	add    $0x40,%eax
4044e5:	3b f0                	cmp    %eax,%esi
4044e7:	75 60                	jne    0x404549
4044e9:	33 c0                	xor    %eax,%eax
4044eb:	40                   	inc    %eax
4044ec:	ff 05 e0 2e 41 00    	incl   0x412ee0
4044f2:	f7 46 0c 0c 01 00 00 	testl  $0x10c,0xc(%esi)
4044f9:	75 4e                	jne    0x404549
4044fb:	53                   	push   %ebx
4044fc:	57                   	push   %edi
4044fd:	8d 3c 85 1c 32 41 00 	lea    0x41321c(,%eax,4),%edi
404504:	83 3f 00             	cmpl   $0x0,(%edi)
404507:	bb 00 10 00 00       	mov    $0x1000,%ebx
40450c:	75 20                	jne    0x40452e
40450e:	53                   	push   %ebx
40450f:	e8 ab 23 00 00       	call   0x4068bf
404514:	59                   	pop    %ecx
404515:	89 07                	mov    %eax,(%edi)
404517:	85 c0                	test   %eax,%eax
404519:	75 13                	jne    0x40452e
40451b:	8d 46 14             	lea    0x14(%esi),%eax
40451e:	6a 02                	push   $0x2
404520:	89 46 08             	mov    %eax,0x8(%esi)
404523:	89 06                	mov    %eax,(%esi)
404525:	58                   	pop    %eax
404526:	89 46 18             	mov    %eax,0x18(%esi)
404529:	89 46 04             	mov    %eax,0x4(%esi)
40452c:	eb 0d                	jmp    0x40453b
40452e:	8b 3f                	mov    (%edi),%edi
404530:	89 7e 08             	mov    %edi,0x8(%esi)
404533:	89 3e                	mov    %edi,(%esi)
404535:	89 5e 18             	mov    %ebx,0x18(%esi)
404538:	89 5e 04             	mov    %ebx,0x4(%esi)
40453b:	81 4e 0c 02 11 00 00 	orl    $0x1102,0xc(%esi)
404542:	33 c0                	xor    %eax,%eax
404544:	5f                   	pop    %edi
404545:	40                   	inc    %eax
404546:	5b                   	pop    %ebx
404547:	eb 02                	jmp    0x40454b
404549:	33 c0                	xor    %eax,%eax
40454b:	5e                   	pop    %esi
40454c:	5d                   	pop    %ebp
40454d:	c3                   	ret
40454e:	8b ff                	mov    %edi,%edi
404550:	55                   	push   %ebp
404551:	8b ec                	mov    %esp,%ebp
404553:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
404557:	74 27                	je     0x404580
404559:	56                   	push   %esi
40455a:	8b 75 0c             	mov    0xc(%ebp),%esi
40455d:	f7 46 0c 00 10 00 00 	testl  $0x1000,0xc(%esi)
404564:	74 19                	je     0x40457f
404566:	56                   	push   %esi
404567:	e8 20 25 00 00       	call   0x406a8c
40456c:	81 66 0c ff ee ff ff 	andl   $0xffffeeff,0xc(%esi)
404573:	83 66 18 00          	andl   $0x0,0x18(%esi)
404577:	83 26 00             	andl   $0x0,(%esi)
40457a:	83 66 08 00          	andl   $0x0,0x8(%esi)
40457e:	59                   	pop    %ecx
40457f:	5e                   	pop    %esi
404580:	5d                   	pop    %ebp
404581:	c3                   	ret
404582:	8b ff                	mov    %edi,%edi
404584:	55                   	push   %ebp
404585:	8b ec                	mov    %esp,%ebp
404587:	f6 40 0c 40          	testb  $0x40,0xc(%eax)
40458b:	74 06                	je     0x404593
40458d:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
404591:	74 1a                	je     0x4045ad
404593:	50                   	push   %eax
404594:	ff 75 08             	push   0x8(%ebp)
404597:	e8 01 64 00 00       	call   0x40a99d
40459c:	59                   	pop    %ecx
40459d:	59                   	pop    %ecx
40459e:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4045a3:	66 3b c1             	cmp    %cx,%ax
4045a6:	75 05                	jne    0x4045ad
4045a8:	83 0e ff             	orl    $0xffffffff,(%esi)
4045ab:	5d                   	pop    %ebp
4045ac:	c3                   	ret
4045ad:	ff 06                	incl   (%esi)
4045af:	5d                   	pop    %ebp
4045b0:	c3                   	ret
4045b1:	8b ff                	mov    %edi,%edi
4045b3:	55                   	push   %ebp
4045b4:	8b ec                	mov    %esp,%ebp
4045b6:	81 ec 78 04 00 00    	sub    $0x478,%esp
4045bc:	a1 84 22 41 00       	mov    0x412284,%eax
4045c1:	33 c5                	xor    %ebp,%eax
4045c3:	89 45 fc             	mov    %eax,-0x4(%ebp)
4045c6:	8b 45 08             	mov    0x8(%ebp),%eax
4045c9:	53                   	push   %ebx
4045ca:	56                   	push   %esi
4045cb:	8b 75 0c             	mov    0xc(%ebp),%esi
4045ce:	33 db                	xor    %ebx,%ebx
4045d0:	57                   	push   %edi
4045d1:	8b 7d 14             	mov    0x14(%ebp),%edi
4045d4:	ff 75 10             	push   0x10(%ebp)
4045d7:	8d 8d a8 fb ff ff    	lea    -0x458(%ebp),%ecx
4045dd:	89 85 dc fb ff ff    	mov    %eax,-0x424(%ebp)
4045e3:	89 bd e0 fb ff ff    	mov    %edi,-0x420(%ebp)
4045e9:	89 9d bc fb ff ff    	mov    %ebx,-0x444(%ebp)
4045ef:	89 9d f8 fb ff ff    	mov    %ebx,-0x408(%ebp)
4045f5:	89 9d d0 fb ff ff    	mov    %ebx,-0x430(%ebp)
4045fb:	89 9d f4 fb ff ff    	mov    %ebx,-0x40c(%ebp)
404601:	89 9d d8 fb ff ff    	mov    %ebx,-0x428(%ebp)
404607:	89 9d b8 fb ff ff    	mov    %ebx,-0x448(%ebp)
40460d:	89 9d d4 fb ff ff    	mov    %ebx,-0x42c(%ebp)
404613:	e8 cd d9 ff ff       	call   0x401fe5
404618:	e8 0a fb ff ff       	call   0x404127
40461d:	89 85 9c fb ff ff    	mov    %eax,-0x464(%ebp)
404623:	39 9d dc fb ff ff    	cmp    %ebx,-0x424(%ebp)
404629:	75 2a                	jne    0x404655
40462b:	e8 f7 fa ff ff       	call   0x404127
404630:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
404636:	e8 4c e6 ff ff       	call   0x402c87
40463b:	38 9d b4 fb ff ff    	cmp    %bl,-0x44c(%ebp)
404641:	74 0a                	je     0x40464d
404643:	8b 85 b0 fb ff ff    	mov    -0x450(%ebp),%eax
404649:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40464d:	83 c8 ff             	or     $0xffffffff,%eax
404650:	e9 f4 0a 00 00       	jmp    0x405149
404655:	3b f3                	cmp    %ebx,%esi
404657:	74 d2                	je     0x40462b
404659:	0f b7 0e             	movzwl (%esi),%ecx
40465c:	33 d2                	xor    %edx,%edx
40465e:	89 9d e8 fb ff ff    	mov    %ebx,-0x418(%ebp)
404664:	89 9d ec fb ff ff    	mov    %ebx,-0x414(%ebp)
40466a:	89 9d c4 fb ff ff    	mov    %ebx,-0x43c(%ebp)
404670:	89 8d e4 fb ff ff    	mov    %ecx,-0x41c(%ebp)
404676:	66 3b cb             	cmp    %bx,%cx
404679:	0f 84 b1 0a 00 00    	je     0x405130
40467f:	6a 02                	push   $0x2
404681:	5b                   	pop    %ebx
404682:	03 f3                	add    %ebx,%esi
404684:	83 bd e8 fb ff ff 00 	cmpl   $0x0,-0x418(%ebp)
40468b:	89 b5 c0 fb ff ff    	mov    %esi,-0x440(%ebp)
404691:	0f 8c 99 0a 00 00    	jl     0x405130
404697:	8d 41 e0             	lea    -0x20(%ecx),%eax
40469a:	66 83 f8 58          	cmp    $0x58,%ax
40469e:	77 0f                	ja     0x4046af
4046a0:	0f b7 c1             	movzwl %cx,%eax
4046a3:	0f be 80 28 00 41 00 	movsbl 0x410028(%eax),%eax
4046aa:	83 e0 0f             	and    $0xf,%eax
4046ad:	eb 02                	jmp    0x4046b1
4046af:	33 c0                	xor    %eax,%eax
4046b1:	0f be 84 c2 48 00 41 	movsbl 0x410048(%edx,%eax,8),%eax
4046b8:	00
4046b9:	6a 07                	push   $0x7
4046bb:	c1 f8 04             	sar    $0x4,%eax
4046be:	5a                   	pop    %edx
4046bf:	89 85 a0 fb ff ff    	mov    %eax,-0x460(%ebp)
4046c5:	3b c2                	cmp    %edx,%eax
4046c7:	0f 87 20 0a 00 00    	ja     0x4050ed
4046cd:	ff 24 85 59 51 40 00 	jmp    *0x405159(,%eax,4)
4046d4:	33 c0                	xor    %eax,%eax
4046d6:	83 8d f4 fb ff ff ff 	orl    $0xffffffff,-0x40c(%ebp)
4046dd:	89 85 98 fb ff ff    	mov    %eax,-0x468(%ebp)
4046e3:	89 85 b8 fb ff ff    	mov    %eax,-0x448(%ebp)
4046e9:	89 85 d0 fb ff ff    	mov    %eax,-0x430(%ebp)
4046ef:	89 85 d8 fb ff ff    	mov    %eax,-0x428(%ebp)
4046f5:	89 85 f8 fb ff ff    	mov    %eax,-0x408(%ebp)
4046fb:	89 85 d4 fb ff ff    	mov    %eax,-0x42c(%ebp)
404701:	e9 e7 09 00 00       	jmp    0x4050ed
404706:	0f b7 c1             	movzwl %cx,%eax
404709:	83 e8 20             	sub    $0x20,%eax
40470c:	74 4a                	je     0x404758
40470e:	83 e8 03             	sub    $0x3,%eax
404711:	74 36                	je     0x404749
404713:	83 e8 08             	sub    $0x8,%eax
404716:	74 25                	je     0x40473d
404718:	2b c3                	sub    %ebx,%eax
40471a:	74 15                	je     0x404731
40471c:	83 e8 03             	sub    $0x3,%eax
40471f:	0f 85 c8 09 00 00    	jne    0x4050ed
404725:	83 8d f8 fb ff ff 08 	orl    $0x8,-0x408(%ebp)
40472c:	e9 bc 09 00 00       	jmp    0x4050ed
404731:	83 8d f8 fb ff ff 04 	orl    $0x4,-0x408(%ebp)
404738:	e9 b0 09 00 00       	jmp    0x4050ed
40473d:	83 8d f8 fb ff ff 01 	orl    $0x1,-0x408(%ebp)
404744:	e9 a4 09 00 00       	jmp    0x4050ed
404749:	81 8d f8 fb ff ff 80 	orl    $0x80,-0x408(%ebp)
404750:	00 00 00
404753:	e9 95 09 00 00       	jmp    0x4050ed
404758:	09 9d f8 fb ff ff    	or     %ebx,-0x408(%ebp)
40475e:	e9 8a 09 00 00       	jmp    0x4050ed
404763:	66 83 f9 2a          	cmp    $0x2a,%cx
404767:	75 2c                	jne    0x404795
404769:	83 c7 04             	add    $0x4,%edi
40476c:	89 bd e0 fb ff ff    	mov    %edi,-0x420(%ebp)
404772:	8b 7f fc             	mov    -0x4(%edi),%edi
404775:	89 bd d0 fb ff ff    	mov    %edi,-0x430(%ebp)
40477b:	85 ff                	test   %edi,%edi
40477d:	0f 89 6a 09 00 00    	jns    0x4050ed
404783:	83 8d f8 fb ff ff 04 	orl    $0x4,-0x408(%ebp)
40478a:	f7 9d d0 fb ff ff    	negl   -0x430(%ebp)
404790:	e9 58 09 00 00       	jmp    0x4050ed
404795:	8b 85 d0 fb ff ff    	mov    -0x430(%ebp),%eax
40479b:	6b c0 0a             	imul   $0xa,%eax,%eax
40479e:	0f b7 c9             	movzwl %cx,%ecx
4047a1:	8d 44 08 d0          	lea    -0x30(%eax,%ecx,1),%eax
4047a5:	89 85 d0 fb ff ff    	mov    %eax,-0x430(%ebp)
4047ab:	e9 3d 09 00 00       	jmp    0x4050ed
4047b0:	83 a5 f4 fb ff ff 00 	andl   $0x0,-0x40c(%ebp)
4047b7:	e9 31 09 00 00       	jmp    0x4050ed
4047bc:	66 83 f9 2a          	cmp    $0x2a,%cx
4047c0:	75 26                	jne    0x4047e8
4047c2:	83 c7 04             	add    $0x4,%edi
4047c5:	89 bd e0 fb ff ff    	mov    %edi,-0x420(%ebp)
4047cb:	8b 7f fc             	mov    -0x4(%edi),%edi
4047ce:	89 bd f4 fb ff ff    	mov    %edi,-0x40c(%ebp)
4047d4:	85 ff                	test   %edi,%edi
4047d6:	0f 89 11 09 00 00    	jns    0x4050ed
4047dc:	83 8d f4 fb ff ff ff 	orl    $0xffffffff,-0x40c(%ebp)
4047e3:	e9 05 09 00 00       	jmp    0x4050ed
4047e8:	8b 85 f4 fb ff ff    	mov    -0x40c(%ebp),%eax
4047ee:	6b c0 0a             	imul   $0xa,%eax,%eax
4047f1:	0f b7 c9             	movzwl %cx,%ecx
4047f4:	8d 44 08 d0          	lea    -0x30(%eax,%ecx,1),%eax
4047f8:	89 85 f4 fb ff ff    	mov    %eax,-0x40c(%ebp)
4047fe:	e9 ea 08 00 00       	jmp    0x4050ed
404803:	0f b7 c1             	movzwl %cx,%eax
404806:	83 f8 49             	cmp    $0x49,%eax
404809:	74 57                	je     0x404862
40480b:	83 f8 68             	cmp    $0x68,%eax
40480e:	74 46                	je     0x404856
404810:	83 f8 6c             	cmp    $0x6c,%eax
404813:	74 18                	je     0x40482d
404815:	83 f8 77             	cmp    $0x77,%eax
404818:	0f 85 cf 08 00 00    	jne    0x4050ed
40481e:	81 8d f8 fb ff ff 00 	orl    $0x800,-0x408(%ebp)
404825:	08 00 00
404828:	e9 c0 08 00 00       	jmp    0x4050ed
40482d:	66 83 3e 6c          	cmpw   $0x6c,(%esi)
404831:	75 17                	jne    0x40484a
404833:	03 f3                	add    %ebx,%esi
404835:	81 8d f8 fb ff ff 00 	orl    $0x1000,-0x408(%ebp)
40483c:	10 00 00
40483f:	89 b5 c0 fb ff ff    	mov    %esi,-0x440(%ebp)
404845:	e9 a3 08 00 00       	jmp    0x4050ed
40484a:	83 8d f8 fb ff ff 10 	orl    $0x10,-0x408(%ebp)
404851:	e9 97 08 00 00       	jmp    0x4050ed
404856:	83 8d f8 fb ff ff 20 	orl    $0x20,-0x408(%ebp)
40485d:	e9 8b 08 00 00       	jmp    0x4050ed
404862:	0f b7 06             	movzwl (%esi),%eax
404865:	83 f8 36             	cmp    $0x36,%eax
404868:	75 1f                	jne    0x404889
40486a:	66 83 7e 02 34       	cmpw   $0x34,0x2(%esi)
40486f:	75 18                	jne    0x404889
404871:	83 c6 04             	add    $0x4,%esi
404874:	81 8d f8 fb ff ff 00 	orl    $0x8000,-0x408(%ebp)
40487b:	80 00 00
40487e:	89 b5 c0 fb ff ff    	mov    %esi,-0x440(%ebp)
404884:	e9 64 08 00 00       	jmp    0x4050ed
404889:	83 f8 33             	cmp    $0x33,%eax
40488c:	75 1f                	jne    0x4048ad
40488e:	66 83 7e 02 32       	cmpw   $0x32,0x2(%esi)
404893:	75 18                	jne    0x4048ad
404895:	83 c6 04             	add    $0x4,%esi
404898:	81 a5 f8 fb ff ff ff 	andl   $0xffff7fff,-0x408(%ebp)
40489f:	7f ff ff
4048a2:	89 b5 c0 fb ff ff    	mov    %esi,-0x440(%ebp)
4048a8:	e9 40 08 00 00       	jmp    0x4050ed
4048ad:	83 f8 64             	cmp    $0x64,%eax
4048b0:	0f 84 37 08 00 00    	je     0x4050ed
4048b6:	83 f8 69             	cmp    $0x69,%eax
4048b9:	0f 84 2e 08 00 00    	je     0x4050ed
4048bf:	83 f8 6f             	cmp    $0x6f,%eax
4048c2:	0f 84 25 08 00 00    	je     0x4050ed
4048c8:	83 f8 75             	cmp    $0x75,%eax
4048cb:	0f 84 1c 08 00 00    	je     0x4050ed
4048d1:	83 f8 78             	cmp    $0x78,%eax
4048d4:	0f 84 13 08 00 00    	je     0x4050ed
4048da:	83 f8 58             	cmp    $0x58,%eax
4048dd:	0f 84 0a 08 00 00    	je     0x4050ed
4048e3:	83 a5 a0 fb ff ff 00 	andl   $0x0,-0x460(%ebp)
4048ea:	8b 85 dc fb ff ff    	mov    -0x424(%ebp),%eax
4048f0:	51                   	push   %ecx
4048f1:	8d b5 e8 fb ff ff    	lea    -0x418(%ebp),%esi
4048f7:	c7 85 d4 fb ff ff 01 	movl   $0x1,-0x42c(%ebp)
4048fe:	00 00 00
404901:	e8 7c fc ff ff       	call   0x404582
404906:	e9 e1 07 00 00       	jmp    0x4050ec
40490b:	0f b7 c1             	movzwl %cx,%eax
40490e:	83 f8 64             	cmp    $0x64,%eax
404911:	0f 8f 2f 02 00 00    	jg     0x404b46
404917:	0f 84 c0 02 00 00    	je     0x404bdd
40491d:	83 f8 53             	cmp    $0x53,%eax
404920:	0f 8f 1b 01 00 00    	jg     0x404a41
404926:	74 7e                	je     0x4049a6
404928:	83 e8 41             	sub    $0x41,%eax
40492b:	74 10                	je     0x40493d
40492d:	2b c3                	sub    %ebx,%eax
40492f:	74 59                	je     0x40498a
404931:	2b c3                	sub    %ebx,%eax
404933:	74 08                	je     0x40493d
404935:	2b c3                	sub    %ebx,%eax