41053a:	8b 44 24 48          	mov    0x48(%esp),%eax
41053e:	8b 74 24 64          	mov    0x64(%esp),%esi
410542:	3b f0                	cmp    %eax,%esi
410544:	0f 84 2d 01 00 00    	je     0x410677
41054a:	6a 01                	push   $0x1
41054c:	e8 a5 0a 01 00       	call   0x420ff6
410551:	83 c4 04             	add    $0x4,%esp
410554:	85 c0                	test   %eax,%eax
410556:	0f 84 d7 02 00 00    	je     0x410833
41055c:	88 18                	mov    %bl,(%eax)
41055e:	8b 4c 24 60          	mov    0x60(%esp),%ecx
410562:	89 04 b1             	mov    %eax,(%ecx,%esi,4)
410565:	46                   	inc    %esi
410566:	8d 4c 24 70          	lea    0x70(%esp),%ecx
41056a:	89 74 24 64          	mov    %esi,0x64(%esp)
41056e:	e8 ad 94 ff ff       	call   0x409a20
410573:	8b 44 24 38          	mov    0x38(%esp),%eax
410577:	c7 44 24 7c 01 00 00 	movl   $0x1,0x7c(%esp)
41057e:	00
41057f:	c7 44 24 70 00 00 00 	movl   $0x0,0x70(%esp)
410586:	00
410587:	39 44 24 54          	cmp    %eax,0x54(%esp)
41058b:	0f 84 32 01 00 00    	je     0x4106c3
410591:	6a 10                	push   $0x10
410593:	e8 5e 0a 01 00       	call   0x420ff6
410598:	8b f0                	mov    %eax,%esi
41059a:	83 c4 04             	add    $0x4,%esp
41059d:	85 f6                	test   %esi,%esi
41059f:	0f 84 95 02 00 00    	je     0x41083a
4105a5:	8d 44 24 70          	lea    0x70(%esp),%eax
4105a9:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
4105b0:	50                   	push   %eax
4105b1:	8b ce                	mov    %esi,%ecx
4105b3:	e8 08 95 ff ff       	call   0x409ac0
4105b8:	8b 4c 24 54          	mov    0x54(%esp),%ecx
4105bc:	8b 54 24 50          	mov    0x50(%esp),%edx
4105c0:	8b 44 24 14          	mov    0x14(%esp),%eax
4105c4:	50                   	push   %eax
4105c5:	8d 44 24 28          	lea    0x28(%esp),%eax
4105c9:	89 34 8a             	mov    %esi,(%edx,%ecx,4)
4105cc:	41                   	inc    %ecx
4105cd:	84 db                	test   %bl,%bl
4105cf:	89 4c 24 58          	mov    %ecx,0x58(%esp)
4105d3:	8b 5c 24 1c          	mov    0x1c(%esp),%ebx
4105d7:	0f 85 0f 46 03 00    	jne    0x444bec
4105dd:	ff 74 8a fc          	push   -0x4(%edx,%ecx,4)
4105e1:	8b cb                	mov    %ebx,%ecx
4105e3:	50                   	push   %eax
4105e4:	57                   	push   %edi
4105e5:	e8 16 9a ff ff       	call   0x40a000
4105ea:	85 c0                	test   %eax,%eax
4105ec:	0f 88 d0 49 03 00    	js     0x444fc2
4105f2:	8b 44 24 28          	mov    0x28(%esp),%eax
4105f6:	8b 74 24 10          	mov    0x10(%esp),%esi
4105fa:	46                   	inc    %esi
4105fb:	89 74 24 10          	mov    %esi,0x10(%esp)
4105ff:	8b 48 04             	mov    0x4(%eax),%ecx
410602:	8b 04 b1             	mov    (%ecx,%esi,4),%eax
410605:	66 83 78 08 41       	cmpw   $0x41,0x8(%eax)
41060a:	0f 84 83 01 00 00    	je     0x410793
410610:	8b 54 24 24          	mov    0x24(%esp),%edx
410614:	8b 4c 24 14          	mov    0x14(%esp),%ecx
410618:	3b d1                	cmp    %ecx,%edx
41061a:	0f 84 81 f9 ff ff    	je     0x40ffa1
410620:	8b 47 04             	mov    0x4(%edi),%eax
410623:	8b 04 90             	mov    (%eax,%edx,4),%eax
410626:	66 83 78 08 40       	cmpw   $0x40,0x8(%eax)
41062b:	0f 85 05 46 03 00    	jne    0x444c36
410631:	8d 42 01             	lea    0x1(%edx),%eax
410634:	3b c1                	cmp    %ecx,%eax
410636:	0f 84 fa 45 03 00    	je     0x444c36
41063c:	8b d0                	mov    %eax,%edx
41063e:	8b 44 24 28          	mov    0x28(%esp),%eax
410642:	89 54 24 24          	mov    %edx,0x24(%esp)
410646:	8b 78 04             	mov    0x4(%eax),%edi
410649:	8b 04 b7             	mov    (%edi,%esi,4),%eax
41064c:	66 83 78 08 40       	cmpw   $0x40,0x8(%eax)
410651:	75 05                	jne    0x410658
410653:	46                   	inc    %esi
410654:	89 74 24 10          	mov    %esi,0x10(%esp)
410658:	8b 44 24 30          	mov    0x30(%esp),%eax
41065c:	8b 5c 24 44          	mov    0x44(%esp),%ebx
410660:	40                   	inc    %eax
410661:	89 44 24 30          	mov    %eax,0x30(%esp)
410665:	3b 43 14             	cmp    0x14(%ebx),%eax
410668:	0f 8d 30 f9 ff ff    	jge    0x40ff9e
41066e:	8b 5c 24 2c          	mov    0x2c(%esp),%ebx
410672:	e9 89 fe ff ff       	jmp    0x410500
410677:	03 c0                	add    %eax,%eax
410679:	89 44 24 48          	mov    %eax,0x48(%esp)
41067d:	83 f8 08             	cmp    $0x8,%eax
410680:	73 09                	jae    0x41068b
410682:	b8 08 00 00 00       	mov    $0x8,%eax
410687:	89 44 24 48          	mov    %eax,0x48(%esp)
41068b:	33 c9                	xor    %ecx,%ecx
41068d:	89 44 24 68          	mov    %eax,0x68(%esp)
410691:	ba 04 00 00 00       	mov    $0x4,%edx
410696:	f7 e2                	mul    %edx
410698:	0f 90 c1             	seto   %cl
41069b:	f7 d9                	neg    %ecx
41069d:	0b c8                	or     %eax,%ecx
41069f:	51                   	push   %ecx
4106a0:	e8 51 09 01 00       	call   0x420ff6
4106a5:	8b f0                	mov    %eax,%esi
4106a7:	83 c4 04             	add    $0x4,%esp
4106aa:	8b 44 24 60          	mov    0x60(%esp),%eax
4106ae:	85 c0                	test   %eax,%eax
4106b0:	0f 85 17 01 00 00    	jne    0x4107cd
4106b6:	89 74 24 60          	mov    %esi,0x60(%esp)
4106ba:	8b 74 24 64          	mov    0x64(%esp),%esi
4106be:	e9 87 fe ff ff       	jmp    0x41054a
4106c3:	03 c0                	add    %eax,%eax
4106c5:	89 44 24 38          	mov    %eax,0x38(%esp)
4106c9:	83 f8 08             	cmp    $0x8,%eax
4106cc:	73 09                	jae    0x4106d7
4106ce:	b8 08 00 00 00       	mov    $0x8,%eax
4106d3:	89 44 24 38          	mov    %eax,0x38(%esp)
4106d7:	33 c9                	xor    %ecx,%ecx
4106d9:	89 44 24 58          	mov    %eax,0x58(%esp)
4106dd:	ba 04 00 00 00       	mov    $0x4,%edx
4106e2:	f7 e2                	mul    %edx
4106e4:	0f 90 c1             	seto   %cl
4106e7:	f7 d9                	neg    %ecx
4106e9:	0b c8                	or     %eax,%ecx
4106eb:	51                   	push   %ecx
4106ec:	e8 05 09 01 00       	call   0x420ff6
4106f1:	8b 54 24 54          	mov    0x54(%esp),%edx
4106f5:	83 c4 04             	add    $0x4,%esp
4106f8:	8b f0                	mov    %eax,%esi
4106fa:	85 d2                	test   %edx,%edx
4106fc:	0f 85 f6 00 00 00    	jne    0x4107f8
410702:	89 74 24 50          	mov    %esi,0x50(%esp)
410706:	e9 86 fe ff ff       	jmp    0x410591
41070b:	8b 5c 24 60          	mov    0x60(%esp),%ebx
41070f:	90                   	nop
410710:	ff 34 b3             	push   (%ebx,%esi,4)
410713:	e8 54 09 01 00       	call   0x42106c
410718:	c7 04 b3 00 00 00 00 	movl   $0x0,(%ebx,%esi,4)
41071f:	83 c4 04             	add    $0x4,%esp
410722:	46                   	inc    %esi
410723:	3b f7                	cmp    %edi,%esi
410725:	72 e9                	jb     0x410710
410727:	8b 5c 24 30          	mov    0x30(%esp),%ebx
41072b:	e9 78 fb ff ff       	jmp    0x4102a8
410730:	8b 4c 24 50          	mov    0x50(%esp),%ecx
410734:	8b 3c b1             	mov    (%ecx,%esi,4),%edi
410737:	85 ff                	test   %edi,%edi
410739:	74 18                	je     0x410753
41073b:	8b cf                	mov    %edi,%ecx
41073d:	e8 ae 96 ff ff       	call   0x409df0
410742:	57                   	push   %edi
410743:	e8 24 09 01 00       	call   0x42106c
410748:	8b 44 24 58          	mov    0x58(%esp),%eax
41074c:	83 c4 04             	add    $0x4,%esp
41074f:	8b 4c 24 50          	mov    0x50(%esp),%ecx
410753:	c7 04 b1 00 00 00 00 	movl   $0x0,(%ecx,%esi,4)
41075a:	46                   	inc    %esi
41075b:	3b f0                	cmp    %eax,%esi
41075d:	72 d5                	jb     0x410734
41075f:	e9 5e fb ff ff       	jmp    0x4102c2
410764:	4f                   	dec    %edi
410765:	0f 88 02 fc ff ff    	js     0x41036d
41076b:	43                   	inc    %ebx
41076c:	83 c2 04             	add    $0x4,%edx
41076f:	e9 cc fb ff ff       	jmp    0x410340
410774:	8b 75 14             	mov    0x14(%ebp),%esi
410777:	8b ce                	mov    %esi,%ecx
410779:	c6 00 00             	movb   $0x0,(%eax)
41077c:	e8 9f 92 ff ff       	call   0x409a20
410781:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
410788:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
41078e:	e9 e3 f9 ff ff       	jmp    0x410176
410793:	46                   	inc    %esi
410794:	33 d2                	xor    %edx,%edx
410796:	eb 08                	jmp    0x4107a0
410798:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
41079f:	90                   	nop
4107a0:	8b 04 b1             	mov    (%ecx,%esi,4),%eax
4107a3:	0f b7 40 08          	movzwl 0x8(%eax),%eax
4107a7:	66 83 f8 47          	cmp    $0x47,%ax
4107ab:	0f 84 90 00 00 00    	je     0x410841
4107b1:	66 83 f8 48          	cmp    $0x48,%ax
4107b5:	74 70                	je     0x410827
4107b7:	66 83 f8 40          	cmp    $0x40,%ax
4107bb:	74 03                	je     0x4107c0
4107bd:	46                   	inc    %esi
4107be:	eb e0                	jmp    0x4107a0
4107c0:	85 d2                	test   %edx,%edx
4107c2:	75 f9                	jne    0x4107bd
4107c4:	89 74 24 10          	mov    %esi,0x10(%esp)
4107c8:	e9 43 fe ff ff       	jmp    0x410610
4107cd:	8b 4c 24 64          	mov    0x64(%esp),%ecx
4107d1:	85 c9                	test   %ecx,%ecx
4107d3:	0f 84 dd fe ff ff    	je     0x4106b6
4107d9:	c1 e1 02             	shl    $0x2,%ecx
4107dc:	51                   	push   %ecx
4107dd:	50                   	push   %eax
4107de:	56                   	push   %esi
4107df:	e8 9c 08 01 00       	call   0x421080
4107e4:	83 c4 0c             	add    $0xc,%esp
4107e7:	ff 74 24 60          	push   0x60(%esp)
4107eb:	e8 7c 08 01 00       	call   0x42106c
4107f0:	83 c4 04             	add    $0x4,%esp
4107f3:	e9 be fe ff ff       	jmp    0x4106b6
4107f8:	8b 44 24 54          	mov    0x54(%esp),%eax
4107fc:	85 c0                	test   %eax,%eax
4107fe:	0f 84 fe fe ff ff    	je     0x410702
410804:	8d 0c 85 00 00 00 00 	lea    0x0(,%eax,4),%ecx
41080b:	51                   	push   %ecx
41080c:	52                   	push   %edx
41080d:	56                   	push   %esi
41080e:	e8 6d 08 01 00       	call   0x421080
410813:	83 c4 0c             	add    $0xc,%esp
410816:	ff 74 24 50          	push   0x50(%esp)
41081a:	e8 4d 08 01 00       	call   0x42106c
41081f:	83 c4 04             	add    $0x4,%esp
410822:	e9 db fe ff ff       	jmp    0x410702
410827:	4a                   	dec    %edx
410828:	78 9a                	js     0x4107c4
41082a:	eb 91                	jmp    0x4107bd
41082c:	33 c0                	xor    %eax,%eax
41082e:	e9 2c f7 ff ff       	jmp    0x40ff5f
410833:	33 c0                	xor    %eax,%eax
410835:	e9 24 fd ff ff       	jmp    0x41055e
41083a:	33 f6                	xor    %esi,%esi
41083c:	e9 77 fd ff ff       	jmp    0x4105b8
410841:	42                   	inc    %edx
410842:	e9 76 ff ff ff       	jmp    0x4107bd
410847:	8b 7c 24 20          	mov    0x20(%esp),%edi
41084b:	e9 2a 45 03 00       	jmp    0x444d7a
410850:	47                   	inc    %edi
410851:	e9 15 ff ff ff       	jmp    0x41076b
410856:	33 c0                	xor    %eax,%eax
410858:	e9 e7 fb ff ff       	jmp    0x410444
41085d:	33 f6                	xor    %esi,%esi
41085f:	e9 e3 fb ff ff       	jmp    0x410447
410864:	33 ff                	xor    %edi,%edi
410866:	e9 48 fc ff ff       	jmp    0x4104b3
41086b:	33 f6                	xor    %esi,%esi
41086d:	e9 74 f8 ff ff       	jmp    0x4100e6
410872:	8b 40 38             	mov    0x38(%eax),%eax
410875:	e9 bf f8 ff ff       	jmp    0x410139
41087a:	8b 40 38             	mov    0x38(%eax),%eax
41087d:	e9 09 f9 ff ff       	jmp    0x41018b
410882:	8b 40 38             	mov    0x38(%eax),%eax
410885:	e9 18 f9 ff ff       	jmp    0x4101a2
41088a:	c6 46 0d 01          	movb   $0x1,0xd(%esi)
41088e:	e9 61 f9 ff ff       	jmp    0x4101f4
410893:	8b 40 38             	mov    0x38(%eax),%eax
410896:	e9 71 f9 ff ff       	jmp    0x41020c
41089b:	8b 40 38             	mov    0x38(%eax),%eax
41089e:	e9 80 f9 ff ff       	jmp    0x410223
4108a3:	8b 40 38             	mov    0x38(%eax),%eax
4108a6:	e9 ad f9 ff ff       	jmp    0x410258
4108ab:	55                   	push   %ebp
4108ac:	8b ec                	mov    %esp,%ebp
4108ae:	83 e4 f8             	and    $0xfffffff8,%esp
4108b1:	83 ec 4c             	sub    $0x4c,%esp
4108b4:	8b 45 08             	mov    0x8(%ebp),%eax
4108b7:	33 d2                	xor    %edx,%edx
4108b9:	89 4c 24 20          	mov    %ecx,0x20(%esp)
4108bd:	42                   	inc    %edx
4108be:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4108c1:	53                   	push   %ebx
4108c2:	56                   	push   %esi
4108c3:	33 db                	xor    %ebx,%ebx
4108c5:	89 54 24 38          	mov    %edx,0x38(%esp)
4108c9:	8b 71 08             	mov    0x8(%ecx),%esi
4108cc:	21 5c 24 10          	and    %ebx,0x10(%esp)
4108d0:	21 5c 24 34          	and    %ebx,0x34(%esp)
4108d4:	57                   	push   %edi
4108d5:	89 74 24 10          	mov    %esi,0x10(%esp)
4108d9:	33 ff                	xor    %edi,%edi
4108db:	83 ce ff             	or     $0xffffffff,%esi
4108de:	89 74 24 20          	mov    %esi,0x20(%esp)
4108e2:	89 74 24 28          	mov    %esi,0x28(%esp)
4108e6:	89 74 24 24          	mov    %esi,0x24(%esp)
4108ea:	89 74 24 1c          	mov    %esi,0x1c(%esp)
4108ee:	89 74 24 18          	mov    %esi,0x18(%esp)
4108f2:	89 74 24 30          	mov    %esi,0x30(%esp)
4108f6:	83 f8 15             	cmp    $0x15,%eax
4108f9:	0f 84 cf 46 03 00    	je     0x444fce
4108ff:	83 f8 1d             	cmp    $0x1d,%eax
410902:	77 16                	ja     0x41091a
410904:	0f b6 80 6f 0a 41 00 	movzbl 0x410a6f(%eax),%eax
41090b:	ff 24 85 3b 0a 41 00 	jmp    *0x410a3b(,%eax,4)
410912:	83 cf 05             	or     $0x5,%edi
410915:	83 cf 04             	or     $0x4,%edi
410918:	8b de                	mov    %esi,%ebx
41091a:	8b 44 24 10          	mov    0x10(%esp),%eax
41091e:	8d 53 06             	lea    0x6(%ebx),%edx
410921:	3b c2                	cmp    %edx,%eax
410923:	0f 87 60 47 03 00    	ja     0x445089
410929:	8d 53 05             	lea    0x5(%ebx),%edx
41092c:	3b c2                	cmp    %edx,%eax
41092e:	0f 87 6d 47 03 00    	ja     0x4450a1
410934:	8d 53 04             	lea    0x4(%ebx),%edx
410937:	3b c2                	cmp    %edx,%eax
410939:	76 16                	jbe    0x410951
41093b:	8b 45 0c             	mov    0xc(%ebp),%eax
41093e:	8b 48 04             	mov    0x4(%eax),%ecx
410941:	8b 0c 91             	mov    (%ecx,%edx,4),%ecx
410944:	e8 53 93 ff ff       	call   0x409c9c
410949:	89 44 24 20          	mov    %eax,0x20(%esp)
41094d:	8b 44 24 10          	mov    0x10(%esp),%eax
410951:	8d 53 03             	lea    0x3(%ebx),%edx
410954:	3b c2                	cmp    %edx,%eax
410956:	76 14                	jbe    0x41096c
410958:	8b 45 0c             	mov    0xc(%ebp),%eax
41095b:	8b 48 04             	mov    0x4(%eax),%ecx
41095e:	8b 0c 91             	mov    (%ecx,%edx,4),%ecx
410961:	e8 36 93 ff ff       	call   0x409c9c
410966:	8b f0                	mov    %eax,%esi
410968:	8b 44 24 10          	mov    0x10(%esp),%eax
41096c:	8d 4b 02             	lea    0x2(%ebx),%ecx
41096f:	3b c1                	cmp    %ecx,%eax
410971:	76 16                	jbe    0x410989
410973:	8b 45 0c             	mov    0xc(%ebp),%eax
410976:	8b 40 04             	mov    0x4(%eax),%eax
410979:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
41097c:	e8 1b 93 ff ff       	call   0x409c9c
410981:	89 44 24 24          	mov    %eax,0x24(%esp)
410985:	8b 44 24 10          	mov    0x10(%esp),%eax
410989:	8d 4b 01             	lea    0x1(%ebx),%ecx
41098c:	3b c1                	cmp    %ecx,%eax
41098e:	76 13                	jbe    0x4109a3
410990:	8b 45 0c             	mov    0xc(%ebp),%eax
410993:	8b 48 04             	mov    0x4(%eax),%ecx
410996:	8b 4c 99 04          	mov    0x4(%ecx,%ebx,4),%ecx
41099a:	e8 fd 92 ff ff       	call   0x409c9c
41099f:	89 44 24 28          	mov    %eax,0x28(%esp)
4109a3:	83 ec 10             	sub    $0x10,%esp
4109a6:	8d 44 24 40          	lea    0x40(%esp),%eax
4109aa:	8b cc                	mov    %esp,%ecx
4109ac:	50                   	push   %eax
4109ad:	83 61 08 00          	andl   $0x0,0x8(%ecx)
4109b1:	e8 0a 91 ff ff       	call   0x409ac0
4109b6:	8b 5c 24 24          	mov    0x24(%esp),%ebx
4109ba:	57                   	push   %edi
4109bb:	ff 74 24 2c          	push   0x2c(%esp)
4109bf:	ff 74 24 34          	push   0x34(%esp)
4109c3:	ff 74 24 3c          	push   0x3c(%esp)
4109c7:	56                   	push   %esi
4109c8:	ff 74 24 48          	push   0x48(%esp)
4109cc:	ff 74 24 50          	push   0x50(%esp)
4109d0:	53                   	push   %ebx
4109d1:	ff 75 08             	push   0x8(%ebp)
4109d4:	e8 41 23 ff ff       	call   0x402d1a
4109d9:	8b 7d 10             	mov    0x10(%ebp),%edi
4109dc:	8b f0                	mov    %eax,%esi