40735b:	85 c0                	test   %eax,%eax
40735d:	59                   	pop    %ecx
40735e:	74 10                	je     0x407370
407360:	8b 76 fc             	mov    -0x4(%esi),%esi
407363:	6a 09                	push   $0x9
407365:	83 ee 09             	sub    $0x9,%esi
407368:	e8 e9 fc ff ff       	call   0x407056
40736d:	59                   	pop    %ecx
40736e:	eb 19                	jmp    0x407389
407370:	6a 09                	push   $0x9
407372:	e8 df fc ff ff       	call   0x407056
407377:	59                   	pop    %ecx
407378:	56                   	push   %esi
407379:	6a 00                	push   $0x0
40737b:	ff 35 a0 1d 41 00    	push   0x411da0
407381:	ff 15 04 d1 40 00    	call   *0x40d104
407387:	8b f0                	mov    %eax,%esi
407389:	8b c6                	mov    %esi,%eax
40738b:	5e                   	pop    %esi
40738c:	c3                   	ret
40738d:	ff 35 48 1a 41 00    	push   0x411a48
407393:	ff 74 24 08          	push   0x8(%esp)
407397:	e8 03 00 00 00       	call   0x40739f
40739c:	59                   	pop    %ecx
40739d:	59                   	pop    %ecx
40739e:	c3                   	ret
40739f:	83 7c 24 04 e0       	cmpl   $0xffffffe0,0x4(%esp)
4073a4:	77 22                	ja     0x4073c8
4073a6:	ff 74 24 04          	push   0x4(%esp)
4073aa:	e8 1c 00 00 00       	call   0x4073cb
4073af:	85 c0                	test   %eax,%eax
4073b1:	59                   	pop    %ecx
4073b2:	75 16                	jne    0x4073ca
4073b4:	39 44 24 08          	cmp    %eax,0x8(%esp)
4073b8:	74 10                	je     0x4073ca
4073ba:	ff 74 24 04          	push   0x4(%esp)
4073be:	e8 87 3c 00 00       	call   0x40b04a
4073c3:	85 c0                	test   %eax,%eax
4073c5:	59                   	pop    %ecx
4073c6:	75 de                	jne    0x4073a6
4073c8:	33 c0                	xor    %eax,%eax
4073ca:	c3                   	ret
4073cb:	56                   	push   %esi
4073cc:	8b 74 24 08          	mov    0x8(%esp),%esi
4073d0:	3b 35 f0 0e 41 00    	cmp    0x410ef0,%esi
4073d6:	57                   	push   %edi
4073d7:	77 21                	ja     0x4073fa
4073d9:	6a 09                	push   $0x9
4073db:	e8 15 fc ff ff       	call   0x406ff5
4073e0:	56                   	push   %esi
4073e1:	e8 f2 32 00 00       	call   0x40a6d8
4073e6:	6a 09                	push   $0x9
4073e8:	8b f8                	mov    %eax,%edi
4073ea:	e8 67 fc ff ff       	call   0x407056
4073ef:	83 c4 0c             	add    $0xc,%esp
4073f2:	85 ff                	test   %edi,%edi
4073f4:	74 04                	je     0x4073fa
4073f6:	8b c7                	mov    %edi,%eax
4073f8:	eb 1c                	jmp    0x407416
4073fa:	85 f6                	test   %esi,%esi
4073fc:	75 03                	jne    0x407401
4073fe:	6a 01                	push   $0x1
407400:	5e                   	pop    %esi
407401:	83 c6 0f             	add    $0xf,%esi
407404:	83 e6 f0             	and    $0xfffffff0,%esi
407407:	56                   	push   %esi
407408:	6a 00                	push   $0x0
40740a:	ff 35 a0 1d 41 00    	push   0x411da0
407410:	ff 15 00 d1 40 00    	call   *0x40d100
407416:	5f                   	pop    %edi
407417:	5e                   	pop    %esi
407418:	c3                   	ret
407419:	56                   	push   %esi
40741a:	8b 74 24 08          	mov    0x8(%esp),%esi
40741e:	ff 76 10             	push   0x10(%esi)
407421:	e8 3f 3c 00 00       	call   0x40b065
407426:	85 c0                	test   %eax,%eax
407428:	59                   	pop    %ecx
407429:	74 77                	je     0x4074a2
40742b:	81 fe a0 05 41 00    	cmp    $0x4105a0,%esi
407431:	75 04                	jne    0x407437
407433:	33 c0                	xor    %eax,%eax
407435:	eb 0b                	jmp    0x407442
407437:	81 fe c0 05 41 00    	cmp    $0x4105c0,%esi
40743d:	75 63                	jne    0x4074a2
40743f:	6a 01                	push   $0x1
407441:	58                   	pop    %eax
407442:	ff 05 f0 17 41 00    	incl   0x4117f0
407448:	66 f7 46 0c 0c 01    	testw  $0x10c,0xc(%esi)
40744e:	75 52                	jne    0x4074a2
407450:	83 3c 85 c8 18 41 00 	cmpl   $0x0,0x4118c8(,%eax,4)
407457:	00
407458:	53                   	push   %ebx
407459:	57                   	push   %edi
40745a:	8d 3c 85 c8 18 41 00 	lea    0x4118c8(,%eax,4),%edi
407461:	bb 00 10 00 00       	mov    $0x1000,%ebx
407466:	75 20                	jne    0x407488
407468:	53                   	push   %ebx
407469:	e8 1f ff ff ff       	call   0x40738d
40746e:	85 c0                	test   %eax,%eax
407470:	59                   	pop    %ecx
407471:	89 07                	mov    %eax,(%edi)
407473:	75 13                	jne    0x407488
407475:	8d 46 14             	lea    0x14(%esi),%eax
407478:	6a 02                	push   $0x2
40747a:	89 46 08             	mov    %eax,0x8(%esi)
40747d:	89 06                	mov    %eax,(%esi)
40747f:	58                   	pop    %eax
407480:	89 46 18             	mov    %eax,0x18(%esi)
407483:	89 46 04             	mov    %eax,0x4(%esi)
407486:	eb 0d                	jmp    0x407495
407488:	8b 3f                	mov    (%edi),%edi
40748a:	89 5e 18             	mov    %ebx,0x18(%esi)
40748d:	89 7e 08             	mov    %edi,0x8(%esi)
407490:	89 3e                	mov    %edi,(%esi)
407492:	89 5e 04             	mov    %ebx,0x4(%esi)
407495:	66 81 4e 0c 02 11    	orw    $0x1102,0xc(%esi)
40749b:	6a 01                	push   $0x1
40749d:	58                   	pop    %eax
40749e:	5f                   	pop    %edi
40749f:	5b                   	pop    %ebx
4074a0:	5e                   	pop    %esi
4074a1:	c3                   	ret
4074a2:	33 c0                	xor    %eax,%eax
4074a4:	5e                   	pop    %esi
4074a5:	c3                   	ret
4074a6:	83 7c 24 04 00       	cmpl   $0x0,0x4(%esp)
4074ab:	56                   	push   %esi
4074ac:	74 20                	je     0x4074ce
4074ae:	8b 74 24 0c          	mov    0xc(%esp),%esi
4074b2:	f6 46 0d 10          	testb  $0x10,0xd(%esi)
4074b6:	74 16                	je     0x4074ce
4074b8:	56                   	push   %esi
4074b9:	e8 12 f0 ff ff       	call   0x4064d0
4074be:	80 66 0d ee          	andb   $0xee,0xd(%esi)
4074c2:	83 66 18 00          	andl   $0x0,0x18(%esi)
4074c6:	83 26 00             	andl   $0x0,(%esi)
4074c9:	83 66 08 00          	andl   $0x0,0x8(%esi)
4074cd:	59                   	pop    %ecx
4074ce:	5e                   	pop    %esi
4074cf:	c3                   	ret
4074d0:	55                   	push   %ebp
4074d1:	8b ec                	mov    %esp,%ebp
4074d3:	81 ec 48 02 00 00    	sub    $0x248,%esp
4074d9:	53                   	push   %ebx
4074da:	56                   	push   %esi
4074db:	57                   	push   %edi
4074dc:	8b 7d 0c             	mov    0xc(%ebp),%edi
4074df:	33 f6                	xor    %esi,%esi
4074e1:	8a 1f                	mov    (%edi),%bl
4074e3:	47                   	inc    %edi
4074e4:	84 db                	test   %bl,%bl
4074e6:	89 75 f4             	mov    %esi,-0xc(%ebp)
4074e9:	89 75 ec             	mov    %esi,-0x14(%ebp)
4074ec:	89 7d 0c             	mov    %edi,0xc(%ebp)
4074ef:	0f 84 f4 06 00 00    	je     0x407be9
4074f5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4074f8:	33 d2                	xor    %edx,%edx
4074fa:	eb 08                	jmp    0x407504
4074fc:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4074ff:	8b 75 d0             	mov    -0x30(%ebp),%esi
407502:	33 d2                	xor    %edx,%edx
407504:	39 55 ec             	cmp    %edx,-0x14(%ebp)
407507:	0f 8c dc 06 00 00    	jl     0x407be9
40750d:	80 fb 20             	cmp    $0x20,%bl
407510:	7c 13                	jl     0x407525
407512:	80 fb 78             	cmp    $0x78,%bl
407515:	7f 0e                	jg     0x407525
407517:	0f be c3             	movsbl %bl,%eax
40751a:	8a 80 28 d4 40 00    	mov    0x40d428(%eax),%al
407520:	83 e0 0f             	and    $0xf,%eax
407523:	eb 02                	jmp    0x407527
407525:	33 c0                	xor    %eax,%eax
407527:	0f be 84 c6 48 d4 40 	movsbl 0x40d448(%esi,%eax,8),%eax
40752e:	00
40752f:	c1 f8 04             	sar    $0x4,%eax
407532:	83 f8 07             	cmp    $0x7,%eax
407535:	89 45 d0             	mov    %eax,-0x30(%ebp)
407538:	0f 87 9a 06 00 00    	ja     0x407bd8
40753e:	ff 24 85 f1 7b 40 00 	jmp    *0x407bf1(,%eax,4)
407545:	83 4d f0 ff          	orl    $0xffffffff,-0x10(%ebp)
407549:	89 55 cc             	mov    %edx,-0x34(%ebp)
40754c:	89 55 d8             	mov    %edx,-0x28(%ebp)
40754f:	89 55 e0             	mov    %edx,-0x20(%ebp)
407552:	89 55 e4             	mov    %edx,-0x1c(%ebp)
407555:	89 55 fc             	mov    %edx,-0x4(%ebp)
407558:	89 55 dc             	mov    %edx,-0x24(%ebp)
40755b:	e9 78 06 00 00       	jmp    0x407bd8
407560:	0f be c3             	movsbl %bl,%eax
407563:	83 e8 20             	sub    $0x20,%eax
407566:	74 3b                	je     0x4075a3
407568:	83 e8 03             	sub    $0x3,%eax
40756b:	74 2d                	je     0x40759a
40756d:	83 e8 08             	sub    $0x8,%eax
407570:	74 1f                	je     0x407591
407572:	48                   	dec    %eax
407573:	48                   	dec    %eax
407574:	74 12                	je     0x407588
407576:	83 e8 03             	sub    $0x3,%eax
407579:	0f 85 59 06 00 00    	jne    0x407bd8
40757f:	83 4d fc 08          	orl    $0x8,-0x4(%ebp)
407583:	e9 50 06 00 00       	jmp    0x407bd8
407588:	83 4d fc 04          	orl    $0x4,-0x4(%ebp)
40758c:	e9 47 06 00 00       	jmp    0x407bd8
407591:	83 4d fc 01          	orl    $0x1,-0x4(%ebp)
407595:	e9 3e 06 00 00       	jmp    0x407bd8
40759a:	80 4d fc 80          	orb    $0x80,-0x4(%ebp)
40759e:	e9 35 06 00 00       	jmp    0x407bd8
4075a3:	83 4d fc 02          	orl    $0x2,-0x4(%ebp)
4075a7:	e9 2c 06 00 00       	jmp    0x407bd8
4075ac:	80 fb 2a             	cmp    $0x2a,%bl
4075af:	75 23                	jne    0x4075d4
4075b1:	8d 45 10             	lea    0x10(%ebp),%eax
4075b4:	50                   	push   %eax
4075b5:	e8 f5 06 00 00       	call   0x407caf
4075ba:	85 c0                	test   %eax,%eax
4075bc:	59                   	pop    %ecx
4075bd:	89 45 e0             	mov    %eax,-0x20(%ebp)
4075c0:	0f 8d 12 06 00 00    	jge    0x407bd8
4075c6:	83 4d fc 04          	orl    $0x4,-0x4(%ebp)
4075ca:	f7 d8                	neg    %eax
4075cc:	89 45 e0             	mov    %eax,-0x20(%ebp)
4075cf:	e9 04 06 00 00       	jmp    0x407bd8
4075d4:	8b 45 e0             	mov    -0x20(%ebp),%eax
4075d7:	0f be cb             	movsbl %bl,%ecx
4075da:	8d 04 80             	lea    (%eax,%eax,4),%eax
4075dd:	8d 44 41 d0          	lea    -0x30(%ecx,%eax,2),%eax
4075e1:	eb e9                	jmp    0x4075cc
4075e3:	89 55 f0             	mov    %edx,-0x10(%ebp)
4075e6:	e9 ed 05 00 00       	jmp    0x407bd8
4075eb:	80 fb 2a             	cmp    $0x2a,%bl
4075ee:	75 1e                	jne    0x40760e
4075f0:	8d 45 10             	lea    0x10(%ebp),%eax
4075f3:	50                   	push   %eax
4075f4:	e8 b6 06 00 00       	call   0x407caf
4075f9:	85 c0                	test   %eax,%eax
4075fb:	59                   	pop    %ecx
4075fc:	89 45 f0             	mov    %eax,-0x10(%ebp)
4075ff:	0f 8d d3 05 00 00    	jge    0x407bd8
407605:	83 4d f0 ff          	orl    $0xffffffff,-0x10(%ebp)
407609:	e9 ca 05 00 00       	jmp    0x407bd8
40760e:	8d 04 89             	lea    (%ecx,%ecx,4),%eax
407611:	0f be cb             	movsbl %bl,%ecx
407614:	8d 44 41 d0          	lea    -0x30(%ecx,%eax,2),%eax
407618:	89 45 f0             	mov    %eax,-0x10(%ebp)
40761b:	e9 b8 05 00 00       	jmp    0x407bd8
407620:	80 fb 49             	cmp    $0x49,%bl
407623:	74 2e                	je     0x407653
407625:	80 fb 68             	cmp    $0x68,%bl
407628:	74 20                	je     0x40764a
40762a:	80 fb 6c             	cmp    $0x6c,%bl
40762d:	74 12                	je     0x407641
40762f:	80 fb 77             	cmp    $0x77,%bl
407632:	0f 85 a0 05 00 00    	jne    0x407bd8
407638:	80 4d fd 08          	orb    $0x8,-0x3(%ebp)
40763c:	e9 97 05 00 00       	jmp    0x407bd8
407641:	83 4d fc 10          	orl    $0x10,-0x4(%ebp)
407645:	e9 8e 05 00 00       	jmp    0x407bd8
40764a:	83 4d fc 20          	orl    $0x20,-0x4(%ebp)
40764e:	e9 85 05 00 00       	jmp    0x407bd8
407653:	80 3f 36             	cmpb   $0x36,(%edi)
407656:	75 14                	jne    0x40766c
407658:	80 7f 01 34          	cmpb   $0x34,0x1(%edi)
40765c:	75 0e                	jne    0x40766c
40765e:	47                   	inc    %edi
40765f:	47                   	inc    %edi
407660:	80 4d fd 80          	orb    $0x80,-0x3(%ebp)
407664:	89 7d 0c             	mov    %edi,0xc(%ebp)
407667:	e9 6c 05 00 00       	jmp    0x407bd8
40766c:	89 55 d0             	mov    %edx,-0x30(%ebp)
40766f:	8b 0d ec 09 41 00    	mov    0x4109ec,%ecx
407675:	89 55 dc             	mov    %edx,-0x24(%ebp)
407678:	0f b6 c3             	movzbl %bl,%eax
40767b:	f6 44 41 01 80       	testb  $0x80,0x1(%ecx,%eax,2)
407680:	74 19                	je     0x40769b
407682:	8d 45 ec             	lea    -0x14(%ebp),%eax
407685:	50                   	push   %eax
407686:	ff 75 08             	push   0x8(%ebp)
407689:	0f be c3             	movsbl %bl,%eax
40768c:	50                   	push   %eax
40768d:	e8 7f 05 00 00       	call   0x407c11
407692:	8a 1f                	mov    (%edi),%bl
407694:	83 c4 0c             	add    $0xc,%esp
407697:	47                   	inc    %edi
407698:	89 7d 0c             	mov    %edi,0xc(%ebp)
40769b:	8d 45 ec             	lea    -0x14(%ebp),%eax
40769e:	50                   	push   %eax
40769f:	ff 75 08             	push   0x8(%ebp)
4076a2:	0f be c3             	movsbl %bl,%eax
4076a5:	50                   	push   %eax
4076a6:	e8 66 05 00 00       	call   0x407c11
4076ab:	83 c4 0c             	add    $0xc,%esp
4076ae:	e9 25 05 00 00       	jmp    0x407bd8
4076b3:	0f be c3             	movsbl %bl,%eax
4076b6:	83 f8 67             	cmp    $0x67,%eax
4076b9:	0f 8f 1c 02 00 00    	jg     0x4078db
4076bf:	83 f8 65             	cmp    $0x65,%eax
4076c2:	0f 8d 96 00 00 00    	jge    0x40775e
4076c8:	83 f8 58             	cmp    $0x58,%eax
4076cb:	0f 8f eb 00 00 00    	jg     0x4077bc
4076d1:	0f 84 78 02 00 00    	je     0x40794f
4076d7:	83 e8 43             	sub    $0x43,%eax
4076da:	0f 84 9f 00 00 00    	je     0x40777f
4076e0:	48                   	dec    %eax
4076e1:	48                   	dec    %eax
4076e2:	74 70                	je     0x407754
4076e4:	48                   	dec    %eax
4076e5:	48                   	dec    %eax
4076e6:	74 6c                	je     0x407754
4076e8:	83 e8 0c             	sub    $0xc,%eax
4076eb:	0f 85 e9 03 00 00    	jne    0x407ada
4076f1:	66 f7 45 fc 30 08    	testw  $0x830,-0x4(%ebp)
4076f7:	75 04                	jne    0x4076fd
4076f9:	80 4d fd 08          	orb    $0x8,-0x3(%ebp)
4076fd:	8b 75 f0             	mov    -0x10(%ebp),%esi
407700:	83 fe ff             	cmp    $0xffffffff,%esi
407703:	75 05                	jne    0x40770a
407705:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
40770a:	8d 45 10             	lea    0x10(%ebp),%eax
40770d:	50                   	push   %eax
40770e:	e8 9c 05 00 00       	call   0x407caf
407713:	66 f7 45 fc 10 08    	testw  $0x810,-0x4(%ebp)
407719:	59                   	pop    %ecx
40771a:	8b c8                	mov    %eax,%ecx
40771c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40771f:	0f 84 fe 01 00 00    	je     0x407923
407725:	85 c9                	test   %ecx,%ecx
407727:	75 09                	jne    0x407732
407729:	8b 0d 70 0d 41 00    	mov    0x410d70,%ecx
40772f:	89 4d f8             	mov    %ecx,-0x8(%ebp)
407732:	c7 45 dc 01 00 00 00 	movl   $0x1,-0x24(%ebp)
407739:	8b c1                	mov    %ecx,%eax
40773b:	8b d6                	mov    %esi,%edx
40773d:	4e                   	dec    %esi
40773e:	85 d2                	test   %edx,%edx
407740:	0f 84 d4 01 00 00    	je     0x40791a
407746:	66 83 38 00          	cmpw   $0x0,(%eax)
40774a:	0f 84 ca 01 00 00    	je     0x40791a
407750:	40                   	inc    %eax
407751:	40                   	inc    %eax
407752:	eb e7                	jmp    0x40773b
407754:	c7 45 cc 01 00 00 00 	movl   $0x1,-0x34(%ebp)
40775b:	80 c3 20             	add    $0x20,%bl
40775e:	83 4d fc 40          	orl    $0x40,-0x4(%ebp)
407762:	8d bd b8 fd ff ff    	lea    -0x248(%ebp),%edi
407768:	3b ca                	cmp    %edx,%ecx
40776a:	89 7d f8             	mov    %edi,-0x8(%ebp)
40776d:	0f 8d cf 00 00 00    	jge    0x407842
407773:	c7 45 f0 06 00 00 00 	movl   $0x6,-0x10(%ebp)
40777a:	e9 d1 00 00 00       	jmp    0x407850