4082f4:	ff 75 0c             	push   0xc(%ebp)
4082f7:	8b cb                	mov    %ebx,%ecx
4082f9:	50                   	push   %eax
4082fa:	e8 75 f1 ff ff       	call   0x407474
4082ff:	83 c4 34             	add    $0x34,%esp
408302:	85 c0                	test   %eax,%eax
408304:	0f 84 e2 04 00 00    	je     0x4087ec
40830a:	8b 45 28             	mov    0x28(%ebp),%eax
40830d:	ff 48 58             	decl   0x58(%eax)
408310:	81 fe 81 00 00 00    	cmp    $0x81,%esi
408316:	0f 84 0d 9c 07 00    	je     0x481f29
40831c:	81 fe 80 00 00 00    	cmp    $0x80,%esi
408322:	0f 8e 1d 9c 07 00    	jle    0x481f45
408328:	8b 5d 2c             	mov    0x2c(%ebp),%ebx
40832b:	8b 55 f8             	mov    -0x8(%ebp),%edx
40832e:	81 fe 87 00 00 00    	cmp    $0x87,%esi
408334:	0f 84 1c 9c 07 00    	je     0x481f56
40833a:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
408340:	8b 8d 5c ff ff ff    	mov    -0xa4(%ebp),%ecx
408346:	8b 7d fc             	mov    -0x4(%ebp),%edi
408349:	66 83 3f 29          	cmpw   $0x29,(%edi)
40834d:	0f 85 98 9f 07 00    	jne    0x4822eb
408353:	85 db                	test   %ebx,%ebx
408355:	0f 84 a3 00 00 00    	je     0x4083fe
40835b:	8b 33                	mov    (%ebx),%esi
40835d:	8b 9d 74 ff ff ff    	mov    -0x8c(%ebp),%ebx
408363:	b9 eb ff ff 7f       	mov    $0x7fffffeb,%ecx
408368:	2b ce                	sub    %esi,%ecx
40836a:	8d 43 fc             	lea    -0x4(%ebx),%eax
40836d:	3b c8                	cmp    %eax,%ecx
40836f:	0f 8c 66 9d 07 00    	jl     0x4820db
408375:	8b 4d 2c             	mov    0x2c(%ebp),%ecx
408378:	8d 43 fc             	lea    -0x4(%ebx),%eax
40837b:	8b 5d f4             	mov    -0xc(%ebp),%ebx
40837e:	03 c6                	add    %esi,%eax
408380:	89 01                	mov    %eax,(%ecx)
408382:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
408385:	c7 42 02 02 00 78 00 	movl   $0x780002,0x2(%edx)
40838c:	b8 02 00 00 00       	mov    $0x2,%eax
408391:	66 89 42 06          	mov    %ax,0x6(%edx)
408395:	8b 7d fc             	mov    -0x4(%ebp),%edi
408398:	83 c2 08             	add    $0x8,%edx
40839b:	03 f8                	add    %eax,%edi
40839d:	89 55 f8             	mov    %edx,-0x8(%ebp)
4083a0:	89 7d fc             	mov    %edi,-0x4(%ebp)
4083a3:	e9 eb f4 ff ff       	jmp    0x407893
4083a8:	8b 45 d0             	mov    -0x30(%ebp),%eax
4083ab:	dd d8                	fstp   %st(0)
4083ad:	83 f8 fe             	cmp    $0xfffffffe,%eax
4083b0:	75 06                	jne    0x4083b8
4083b2:	83 c8 ff             	or     $0xffffffff,%eax
4083b5:	89 45 d0             	mov    %eax,-0x30(%ebp)
4083b8:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4083bb:	8b 4d 90             	mov    -0x70(%ebp),%ecx
4083be:	89 45 8c             	mov    %eax,-0x74(%ebp)
4083c1:	8b 45 a0             	mov    -0x60(%ebp),%eax
4083c4:	89 45 d8             	mov    %eax,-0x28(%ebp)
4083c7:	8b 45 a8             	mov    -0x58(%ebp),%eax
4083ca:	89 8d 7c ff ff ff    	mov    %ecx,-0x84(%ebp)
4083d0:	89 45 98             	mov    %eax,-0x68(%ebp)
4083d3:	89 55 e0             	mov    %edx,-0x20(%ebp)
4083d6:	f6 c3 04             	test   $0x4,%bl
4083d9:	0f 85 9b 03 00 00    	jne    0x40877a
4083df:	b8 0c 00 00 00       	mov    $0xc,%eax
4083e4:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
4083e7:	66 89 02             	mov    %ax,(%edx)
4083ea:	8b 7d fc             	mov    -0x4(%ebp),%edi
4083ed:	83 c2 02             	add    $0x2,%edx
4083f0:	83 c7 02             	add    $0x2,%edi
4083f3:	89 55 f8             	mov    %edx,-0x8(%ebp)
4083f6:	89 7d fc             	mov    %edi,-0x4(%ebp)
4083f9:	e9 95 f4 ff ff       	jmp    0x407893
4083fe:	8b 55 b4             	mov    -0x4c(%ebp),%edx
408401:	89 55 f8             	mov    %edx,-0x8(%ebp)
408404:	81 fe 91 00 00 00    	cmp    $0x91,%esi
40840a:	0f 84 70 f7 ff ff    	je     0x407b80
408410:	8b 5d a0             	mov    -0x60(%ebp),%ebx
408413:	89 5d d8             	mov    %ebx,-0x28(%ebp)
408416:	8b 5d a8             	mov    -0x58(%ebp),%ebx
408419:	89 5d 98             	mov    %ebx,-0x68(%ebp)
40841c:	8b 5d 90             	mov    -0x70(%ebp),%ebx
40841f:	89 9d 7c ff ff ff    	mov    %ebx,-0x84(%ebp)
408425:	8b 5d d0             	mov    -0x30(%ebp),%ebx
408428:	89 5d 8c             	mov    %ebx,-0x74(%ebp)
40842b:	c7 85 64 ff ff ff 00 	movl   $0x0,-0x9c(%ebp)
408432:	00 00 00
408435:	81 fe 81 00 00 00    	cmp    $0x81,%esi
40843b:	0f 8c ac 9b 07 00    	jl     0x481fed
408441:	83 fb fe             	cmp    $0xfffffffe,%ebx
408444:	0f 84 6a 9b 07 00    	je     0x481fb4
40844a:	85 c9                	test   %ecx,%ecx
40844c:	0f 89 e8 02 00 00    	jns    0x40873a
408452:	85 c0                	test   %eax,%eax
408454:	0f 88 26 f7 ff ff    	js     0x407b80
40845a:	8b 8d 4c ff ff ff    	mov    -0xb4(%ebp),%ecx
408460:	8b 5d f4             	mov    -0xc(%ebp),%ebx
408463:	83 c7 02             	add    $0x2,%edi
408466:	89 4d a0             	mov    %ecx,-0x60(%ebp)
408469:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
40846c:	89 45 a8             	mov    %eax,-0x58(%ebp)
40846f:	89 7d fc             	mov    %edi,-0x4(%ebp)
408472:	e9 1c f4 ff ff       	jmp    0x407893
408477:	8b 85 60 ff ff ff    	mov    -0xa0(%ebp),%eax
40847d:	e9 ad fc ff ff       	jmp    0x40812f
408482:	83 f9 6e             	cmp    $0x6e,%ecx
408485:	0f 85 1a 01 00 00    	jne    0x4085a5
40848b:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
40848e:	dd d8                	fstp   %st(0)
408490:	85 c9                	test   %ecx,%ecx
408492:	0f 84 22 03 00 00    	je     0x4087ba
408498:	85 f6                	test   %esi,%esi
40849a:	0f 85 c0 83 07 00    	jne    0x480860
4084a0:	83 f9 ff             	cmp    $0xffffffff,%ecx
4084a3:	74 53                	je     0x4084f8
4084a5:	83 f9 01             	cmp    $0x1,%ecx
4084a8:	0f 85 c4 83 07 00    	jne    0x480872
4084ae:	8b 5d 28             	mov    0x28(%ebp),%ebx
4084b1:	83 c0 66             	add    $0x66,%eax
4084b4:	66 89 02             	mov    %ax,(%edx)
4084b7:	8b 7d fc             	mov    -0x4(%ebp),%edi
4084ba:	83 c2 02             	add    $0x2,%edx
4084bd:	89 55 f8             	mov    %edx,-0x8(%ebp)
4084c0:	e9 43 fd ff ff       	jmp    0x408208
4084c5:	8b 9d 54 ff ff ff    	mov    -0xac(%ebp),%ebx
4084cb:	81 fb ff ff 00 00    	cmp    $0xffff,%ebx
4084d1:	0f 87 a2 7b 07 00    	ja     0x480079
4084d7:	8b 55 f8             	mov    -0x8(%ebp),%edx
4084da:	be 01 00 00 00       	mov    $0x1,%esi
4084df:	66 89 9d f8 fe ff ff 	mov    %bx,-0x108(%ebp)
4084e6:	89 75 f0             	mov    %esi,-0x10(%ebp)
4084e9:	e9 97 f5 ff ff       	jmp    0x407a85
4084ee:	33 f6                	xor    %esi,%esi
4084f0:	8d 46 01             	lea    0x1(%esi),%eax
4084f3:	e9 c1 fb ff ff       	jmp    0x4080b9
4084f8:	83 c0 62             	add    $0x62,%eax
4084fb:	66 89 02             	mov    %ax,(%edx)
4084fe:	83 c2 02             	add    $0x2,%edx
408501:	89 55 f8             	mov    %edx,-0x8(%ebp)
408504:	8b 7d fc             	mov    -0x4(%ebp),%edi
408507:	8b 5d 28             	mov    0x28(%ebp),%ebx
40850a:	e9 f9 fc ff ff       	jmp    0x408208
40850f:	83 c7 04             	add    $0x4,%edi
408512:	89 7d fc             	mov    %edi,-0x4(%ebp)
408515:	66 83 3f 5c          	cmpw   $0x5c,(%edi)
408519:	0f 84 1b 79 07 00    	je     0x47fe3a
40851f:	0f b7 0f             	movzwl (%edi),%ecx
408522:	66 85 c9             	test   %cx,%cx
408525:	0f 84 6a 02 00 00    	je     0x408795
40852b:	85 f6                	test   %esi,%esi
40852d:	75 09                	jne    0x408538
40852f:	83 f9 5d             	cmp    $0x5d,%ecx
408532:	0f 84 5d 02 00 00    	je     0x408795
408538:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
40853c:	8b f1                	mov    %ecx,%esi
40853e:	89 b5 68 ff ff ff    	mov    %esi,-0x98(%ebp)
408544:	74 12                	je     0x408558
408546:	8b c6                	mov    %esi,%eax
408548:	25 00 fc 00 00       	and    $0xfc00,%eax
40854d:	3d 00 d8 00 00       	cmp    $0xd800,%eax
408552:	0f 84 40 79 07 00    	je     0x47fe98
408558:	83 7d cc 00          	cmpl   $0x0,-0x34(%ebp)
40855c:	75 12                	jne    0x408570
40855e:	83 fe 5c             	cmp    $0x5c,%esi
408561:	0f 84 5c 79 07 00    	je     0x47fec3
408567:	83 fe 5b             	cmp    $0x5b,%esi
40856a:	0f 84 af 79 07 00    	je     0x47ff1f
408570:	8b 4d 0c             	mov    0xc(%ebp),%ecx
408573:	3b f3                	cmp    %ebx,%esi
408575:	0f 82 1f 9b 07 00    	jb     0x48209a
40857b:	0f 84 d9 f8 ff ff    	je     0x407e5a
408581:	c7 45 f0 02 00 00 00 	movl   $0x2,-0x10(%ebp)
408588:	83 fe 0d             	cmp    $0xd,%esi
40858b:	0f 84 bf 79 07 00    	je     0x47ff50
408591:	83 fe 0a             	cmp    $0xa,%esi
408594:	0f 84 b6 79 07 00    	je     0x47ff50
40859a:	8b 45 28             	mov    0x28(%ebp),%eax
40859d:	56                   	push   %esi
40859e:	53                   	push   %ebx
40859f:	50                   	push   %eax
4085a0:	e9 cc f8 ff ff       	jmp    0x407e71
4085a5:	83 f9 6f             	cmp    $0x6f,%ecx
4085a8:	0f 84 dd fe ff ff    	je     0x40848b
4085ae:	83 f9 70             	cmp    $0x70,%ecx
4085b1:	0f 84 d4 fe ff ff    	je     0x40848b
4085b7:	83 f9 71             	cmp    $0x71,%ecx
4085ba:	0f 84 cb fe ff ff    	je     0x40848b
4085c0:	83 f9 72             	cmp    $0x72,%ecx
4085c3:	0f 84 c2 fe ff ff    	je     0x40848b
4085c9:	83 f9 73             	cmp    $0x73,%ecx
4085cc:	0f 84 b9 fe ff ff    	je     0x40848b
4085d2:	83 f9 74             	cmp    $0x74,%ecx
4085d5:	0f 84 b0 fe ff ff    	je     0x40848b
4085db:	83 f9 7d             	cmp    $0x7d,%ecx
4085de:	0f 82 57 82 07 00    	jb     0x48083b
4085e4:	b8 87 00 00 00       	mov    $0x87,%eax
4085e9:	66 3b c8             	cmp    %ax,%cx
4085ec:	0f 87 49 82 07 00    	ja     0x48083b
4085f2:	8b f2                	mov    %edx,%esi
4085f4:	2b f3                	sub    %ebx,%esi
4085f6:	33 db                	xor    %ebx,%ebx
4085f8:	d1 fe                	sar    $1,%esi
4085fa:	89 75 ec             	mov    %esi,-0x14(%ebp)
4085fd:	89 5d e8             	mov    %ebx,-0x18(%ebp)
408600:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
408603:	66 3b c8             	cmp    %ax,%cx
408606:	0f 84 01 7d 07 00    	je     0x48030d
40860c:	b8 81 00 00 00       	mov    $0x81,%eax
408611:	66 3b c8             	cmp    %ax,%cx
408614:	8b 45 ac             	mov    -0x54(%ebp),%eax
408617:	0f 82 0c 7d 07 00    	jb     0x480329
40861d:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
408620:	85 c0                	test   %eax,%eax
408622:	0f 85 7f 7d 07 00    	jne    0x4803a7
408628:	ff 75 c0             	push   -0x40(%ebp)
40862b:	dd d8                	fstp   %st(0)
40862d:	8b 7d e0             	mov    -0x20(%ebp),%edi
408630:	ff 75 28             	push   0x28(%ebp)
408633:	83 f9 01             	cmp    $0x1,%ecx
408636:	ff 75 dc             	push   -0x24(%ebp)
408639:	66 89 02             	mov    %ax,(%edx)
40863c:	8b cf                	mov    %edi,%ecx
40863e:	0f 8f 16 7d 07 00    	jg     0x48035a
408644:	8d 50 01             	lea    0x1(%eax),%edx
408647:	e8 ad 5d 01 00       	call   0x41e3f9
40864c:	8b 55 ec             	mov    -0x14(%ebp),%edx
40864f:	83 c4 0c             	add    $0xc,%esp
408652:	8d 04 12             	lea    (%edx,%edx,1),%eax
408655:	50                   	push   %eax
408656:	8d 77 02             	lea    0x2(%edi),%esi
408659:	57                   	push   %edi
40865a:	56                   	push   %esi
40865b:	e8 20 d9 01 00       	call   0x425f80
408660:	8b 55 f8             	mov    -0x8(%ebp),%edx
408663:	83 c2 02             	add    $0x2,%edx
408666:	83 c4 0c             	add    $0xc,%esp
408669:	89 55 f8             	mov    %edx,-0x8(%ebp)
40866c:	39 5d c4             	cmp    %ebx,-0x3c(%ebp)
40866f:	0f 84 d5 7c 07 00    	je     0x48034a
408675:	8b 45 f0             	mov    -0x10(%ebp),%eax
408678:	8b cf                	mov    %edi,%ecx
40867a:	05 92 00 00 00       	add    $0x92,%eax
40867f:	89 75 e0             	mov    %esi,-0x20(%ebp)
408682:	8b 75 ec             	mov    -0x14(%ebp),%esi
408685:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
408688:	66 89 07             	mov    %ax,(%edi)
40868b:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40868e:	8b 7d fc             	mov    -0x4(%ebp),%edi
408691:	48                   	dec    %eax
408692:	89 45 c4             	mov    %eax,-0x3c(%ebp)
408695:	85 c0                	test   %eax,%eax
408697:	0f 88 4a 80 07 00    	js     0x4806e7
40869d:	83 7d 2c 00          	cmpl   $0x0,0x2c(%ebp)
4086a1:	74 08                	je     0x4086ab
4086a3:	85 c0                	test   %eax,%eax
4086a5:	0f 8f 84 7e 07 00    	jg     0x48052f
4086ab:	8d 58 ff             	lea    -0x1(%eax),%ebx
4086ae:	85 db                	test   %ebx,%ebx
4086b0:	0f 89 d0 7e 07 00    	jns    0x480586
4086b6:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4086b9:	85 db                	test   %ebx,%ebx
4086bb:	0f 84 46 fe ff ff    	je     0x408507
4086c1:	e9 e6 7f 07 00       	jmp    0x4806ac
4086c6:	66 83 7f 02 45       	cmpw   $0x45,0x2(%edi)
4086cb:	8d 4f 02             	lea    0x2(%edi),%ecx
4086ce:	0f 84 b0 00 00 00    	je     0x408784
4086d4:	6a 03                	push   $0x3
4086d6:	ba d8 26 4b 00       	mov    $0x4b26d8,%edx
4086db:	e8 13 02 00 00       	call   0x4088f3
4086e0:	83 c4 04             	add    $0x4,%esp
4086e3:	85 c0                	test   %eax,%eax
4086e5:	0f 85 bd f6 ff ff    	jne    0x407da8
4086eb:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4086ee:	83 c7 06             	add    $0x6,%edi
4086f1:	e9 8a f6 ff ff       	jmp    0x407d80
4086f6:	8b 5d f4             	mov    -0xc(%ebp),%ebx
4086f9:	8b 7d 28             	mov    0x28(%ebp),%edi
4086fc:	6a 01                	push   $0x1
4086fe:	53                   	push   %ebx
4086ff:	ff 77 40             	push   0x40(%edi)
408702:	8d 95 54 ff ff ff    	lea    -0xac(%ebp),%edx
408708:	ff 75 0c             	push   0xc(%ebp)
40870b:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40870e:	e8 5b 07 00 00       	call   0x408e6e
408713:	8b f0                	mov    %eax,%esi
408715:	8b 45 0c             	mov    0xc(%ebp),%eax
408718:	83 c4 10             	add    $0x10,%esp
40871b:	83 38 00             	cmpl   $0x0,(%eax)
40871e:	0f 85 c8 00 00 00    	jne    0x4087ec
408724:	85 f6                	test   %esi,%esi
408726:	0f 85 32 74 07 00    	jne    0x47fb5e
40872c:	8b 9d 54 ff ff ff    	mov    -0xac(%ebp),%ebx
408732:	8b 7d fc             	mov    -0x4(%ebp),%edi
408735:	e9 ec f6 ff ff       	jmp    0x407e26
40873a:	85 c0                	test   %eax,%eax
40873c:	0f 89 18 fd ff ff    	jns    0x40845a
408742:	8b 85 14 ff ff ff    	mov    -0xec(%ebp),%eax
408748:	89 85 4c ff ff ff    	mov    %eax,-0xb4(%ebp)
40874e:	8b c1                	mov    %ecx,%eax
408750:	0b 45 bc             	or     -0x44(%ebp),%eax
408753:	89 85 6c ff ff ff    	mov    %eax,-0x94(%ebp)
408759:	e9 f4 fc ff ff       	jmp    0x408452
40875e:	89 4d dc             	mov    %ecx,-0x24(%ebp)
408761:	e9 d9 f0 ff ff       	jmp    0x40783f
408766:	b8 01 00 00 00       	mov    $0x1,%eax
40876b:	e9 dd f0 ff ff       	jmp    0x40784d
408770:	8b d0                	mov    %eax,%edx
408772:	89 55 f8             	mov    %edx,-0x8(%ebp)
408775:	e9 5b f1 ff ff       	jmp    0x4078d5
40877a:	b8 0d 00 00 00       	mov    $0xd,%eax
40877f:	e9 60 fc ff ff       	jmp    0x4083e4
408784:	8b f9                	mov    %ecx,%edi
408786:	e9 f5 f5 ff ff       	jmp    0x407d80
40878b:	b8 01 00 00 00       	mov    $0x1,%eax
408790:	e9 e1 f5 ff ff       	jmp    0x407d76
408795:	8b f8                	mov    %eax,%edi
408797:	89 7d fc             	mov    %edi,-0x4(%ebp)
40879a:	e9 bb f6 ff ff       	jmp    0x407e5a
40879f:	b8 01 00 00 00       	mov    $0x1,%eax
4087a4:	e9 20 f7 ff ff       	jmp    0x407ec9
4087a9:	b8 6f 00 00 00       	mov    $0x6f,%eax
4087ae:	e9 5a f7 ff ff       	jmp    0x407f0d
4087b3:	33 c9                	xor    %ecx,%ecx
4087b5:	e9 7a 79 07 00       	jmp    0x480134
4087ba:	8b d3                	mov    %ebx,%edx
4087bc:	89 55 f8             	mov    %edx,-0x8(%ebp)
4087bf:	e9 4e fa ff ff       	jmp    0x408212
4087c4:	be 01 00 00 00       	mov    $0x1,%esi
4087c9:	e9 b7 f2 ff ff       	jmp    0x407a85
4087ce:	b8 01 00 00 00       	mov    $0x1,%eax
4087d3:	e9 ba f4 ff ff       	jmp    0x407c92
4087d8:	ba 01 00 00 00       	mov    $0x1,%edx
4087dd:	e9 da fa ff ff       	jmp    0x4082bc
4087e2:	b9 01 00 00 00       	mov    $0x1,%ecx
4087e7:	e9 d2 fa ff ff       	jmp    0x4082be
4087ec:	8b 7d fc             	mov    -0x4(%ebp),%edi
4087ef:	e9 2c 9b 07 00       	jmp    0x482320
4087f4:	09 f8                	or     %edi,%eax
4087f6:	47                   	inc    %edi
4087f7:	00 d9                	add    %bl,%cl
4087f9:	79 40                	jns    0x40883b
4087fb:	00 b4 80 40 00 80 01 	add    %dh,0x1800040(%eax,%eax,4)
408802:	48                   	dec    %eax
408803:	00 a8 83 40 00 ee    	add    %ch,-0x11ffbf7d(%eax)
408809:	84 40 00             	test   %al,0x0(%eax)
40880c:	19 7d 40             	sbb    %edi,0x40(%ebp)
40880f:	00 a3 7f 40 00 34    	add    %ah,0x3400407f(%ebx)
408815:	f8                   	clc
408816:	47                   	inc    %edi
408817:	00 bf f7 47 00 46    	add    %bh,0x460047f7(%edi)
40881d:	01 48 00             	add    %ecx,0x0(%eax)