406294:	85 c0                	test   %eax,%eax
406296:	0f 85 11 01 00 00    	jne    0x4063ad
40629c:	50                   	push   %eax
40629d:	8d 85 b8 fd ff ff    	lea    -0x248(%ebp),%eax
4062a3:	50                   	push   %eax
4062a4:	e8 f7 0d 00 00       	call   0x4070a0
4062a9:	84 c0                	test   %al,%al
4062ab:	0f 85 fc 00 00 00    	jne    0x4063ad
4062b1:	a1 88 8c 4c 00       	mov    0x4c8c88,%eax
4062b6:	85 c0                	test   %eax,%eax
4062b8:	0f 85 c7 00 00 00    	jne    0x406385
4062be:	68 84 00 00 00       	push   $0x84
4062c3:	e8 10 37 06 00       	call   0x4699d8
4062c8:	8b f0                	mov    %eax,%esi
4062ca:	89 b5 68 fd ff ff    	mov    %esi,-0x298(%ebp)
4062d0:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
4062d4:	e9 8c 00 00 00       	jmp    0x406365
4062d9:	a1 88 8c 4c 00       	mov    0x4c8c88,%eax
4062de:	85 c0                	test   %eax,%eax
4062e0:	75 36                	jne    0x406318
4062e2:	68 84 00 00 00       	push   $0x84
4062e7:	e8 ec 36 06 00       	call   0x4699d8
4062ec:	8b f0                	mov    %eax,%esi
4062ee:	89 b5 68 fd ff ff    	mov    %esi,-0x298(%ebp)
4062f4:	68 84 00 00 00       	push   $0x84
4062f9:	6a 00                	push   $0x0
4062fb:	56                   	push   %esi
4062fc:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
406300:	e8 ab 58 06 00       	call   0x46bbb0
406305:	83 c4 10             	add    $0x10,%esp
406308:	8b ce                	mov    %esi,%ecx
40630a:	e8 71 f9 ff ff       	call   0x405c80
40630f:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406313:	a3 88 8c 4c 00       	mov    %eax,0x4c8c88
406318:	8b 48 04             	mov    0x4(%eax),%ecx
40631b:	83 c0 04             	add    $0x4,%eax
40631e:	68 b0 00 4b 00       	push   $0x4b00b0
406323:	50                   	push   %eax
406324:	8b 71 14             	mov    0x14(%ecx),%esi
406327:	8b ce                	mov    %esi,%ecx
406329:	ff 15 d4 e2 49 00    	call   *0x49e2d4
40632f:	ff d6                	call   *%esi
406331:	83 c4 08             	add    $0x8,%esp
406334:	8d 85 b8 fd ff ff    	lea    -0x248(%ebp),%eax
40633a:	6a 00                	push   $0x0
40633c:	50                   	push   %eax
40633d:	e8 5e 0d 00 00       	call   0x4070a0
406342:	84 c0                	test   %al,%al
406344:	75 67                	jne    0x4063ad
406346:	a1 88 8c 4c 00       	mov    0x4c8c88,%eax
40634b:	85 c0                	test   %eax,%eax
40634d:	75 36                	jne    0x406385
40634f:	68 84 00 00 00       	push   $0x84
406354:	e8 7f 36 06 00       	call   0x4699d8
406359:	8b f0                	mov    %eax,%esi
40635b:	89 b5 68 fd ff ff    	mov    %esi,-0x298(%ebp)
406361:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
406365:	68 84 00 00 00       	push   $0x84
40636a:	6a 00                	push   $0x0
40636c:	56                   	push   %esi
40636d:	e8 3e 58 06 00       	call   0x46bbb0
406372:	83 c4 10             	add    $0x10,%esp
406375:	8b ce                	mov    %esi,%ecx
406377:	e8 04 f9 ff ff       	call   0x405c80
40637c:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
406380:	a3 88 8c 4c 00       	mov    %eax,0x4c8c88
406385:	8b 48 04             	mov    0x4(%eax),%ecx
406388:	83 c0 04             	add    $0x4,%eax
40638b:	68 58 00 4b 00       	push   $0x4b0058
406390:	68 60 ea 4a 00       	push   $0x4aea60
406395:	50                   	push   %eax
406396:	8b 71 24             	mov    0x24(%ecx),%esi
406399:	8b ce                	mov    %esi,%ecx
40639b:	ff 15 d4 e2 49 00    	call   *0x49e2d4
4063a1:	ff d6                	call   *%esi
4063a3:	83 c4 0c             	add    $0xc,%esp
4063a6:	32 db                	xor    %bl,%bl
4063a8:	e9 73 0c 00 00       	jmp    0x407020
4063ad:	33 c0                	xor    %eax,%eax
4063af:	c7 85 d0 fd ff ff 00 	movl   $0x0,-0x230(%ebp)
4063b6:	00 00 00
4063b9:	c7 85 e0 fd ff ff 00 	movl   $0x0,-0x220(%ebp)
4063c0:	00 00 00
4063c3:	c7 85 e4 fd ff ff 07 	movl   $0x7,-0x21c(%ebp)
4063ca:	00 00 00
4063cd:	66 89 85 d0 fd ff ff 	mov    %ax,-0x230(%ebp)
4063d4:	89 85 70 fd ff ff    	mov    %eax,-0x290(%ebp)
4063da:	89 85 80 fd ff ff    	mov    %eax,-0x280(%ebp)
4063e0:	c7 85 84 fd ff ff 07 	movl   $0x7,-0x27c(%ebp)
4063e7:	00 00 00
4063ea:	66 89 85 70 fd ff ff 	mov    %ax,-0x290(%ebp)
4063f1:	6a 10                	push   $0x10
4063f3:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
4063f7:	e8 dc 35 06 00       	call   0x4699d8
4063fc:	83 c4 04             	add    $0x4,%esp
4063ff:	8b f8                	mov    %eax,%edi
406401:	57                   	push   %edi
406402:	ff 15 cc e2 49 00    	call   *0x49e2cc
406408:	68 04 01 00 00       	push   $0x104
40640d:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
406413:	50                   	push   %eax
406414:	57                   	push   %edi
406415:	ff 15 c0 e2 49 00    	call   *0x49e2c0
40641b:	6a 10                	push   $0x10
40641d:	57                   	push   %edi
40641e:	8b f0                	mov    %eax,%esi
406420:	e8 e3 35 06 00       	call   0x469a08
406425:	83 c4 08             	add    $0x8,%esp
406428:	85 f6                	test   %esi,%esi
40642a:	78 2b                	js     0x406457
40642c:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
406432:	8d 51 02             	lea    0x2(%ecx),%edx
406435:	66 8b 01             	mov    (%ecx),%ax
406438:	83 c1 02             	add    $0x2,%ecx
40643b:	66 85 c0             	test   %ax,%ax
40643e:	75 f5                	jne    0x406435
406440:	2b ca                	sub    %edx,%ecx
406442:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
406448:	d1 f9                	sar    $1,%ecx
40644a:	51                   	push   %ecx
40644b:	50                   	push   %eax
40644c:	8d 8d 70 fd ff ff    	lea    -0x290(%ebp),%ecx
406452:	e8 a9 c9 ff ff       	call   0x402e00
406457:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
40645d:	e8 2e 08 02 00       	call   0x426c90
406462:	84 c0                	test   %al,%al
406464:	0f 84 eb 01 00 00    	je     0x406655
40646a:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
406470:	85 c0                	test   %eax,%eax
406472:	0f 84 dd 01 00 00    	je     0x406655
406478:	8b 8d 80 fd ff ff    	mov    -0x280(%ebp),%ecx
40647e:	85 c9                	test   %ecx,%ecx
406480:	0f 84 cf 01 00 00    	je     0x406655
406486:	8d 78 0b             	lea    0xb(%eax),%edi
406489:	ba 02 00 00 00       	mov    $0x2,%edx
40648e:	03 f9                	add    %ecx,%edi
406490:	33 c9                	xor    %ecx,%ecx
406492:	8b c7                	mov    %edi,%eax
406494:	f7 e2                	mul    %edx
406496:	0f 90 c1             	seto   %cl
406499:	f7 d9                	neg    %ecx
40649b:	0b c8                	or     %eax,%ecx
40649d:	51                   	push   %ecx
40649e:	e8 5e 32 07 00       	call   0x479701
4064a3:	8b f0                	mov    %eax,%esi
4064a5:	83 c4 04             	add    $0x4,%esp
4064a8:	85 f6                	test   %esi,%esi
4064aa:	0f 84 a5 01 00 00    	je     0x406655
4064b0:	83 bd e4 fd ff ff 08 	cmpl   $0x8,-0x21c(%ebp)
4064b7:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
4064bd:	0f 43 8d d0 fd ff ff 	cmovae -0x230(%ebp),%ecx
4064c4:	51                   	push   %ecx
4064c5:	57                   	push   %edi
4064c6:	56                   	push   %esi
4064c7:	e8 d1 31 07 00       	call   0x47969d
4064cc:	83 c4 0c             	add    $0xc,%esp
4064cf:	8d 85 70 fd ff ff    	lea    -0x290(%ebp),%eax
4064d5:	83 bd 84 fd ff ff 08 	cmpl   $0x8,-0x27c(%ebp)
4064dc:	0f 43 85 70 fd ff ff 	cmovae -0x290(%ebp),%eax
4064e3:	50                   	push   %eax
4064e4:	56                   	push   %esi
4064e5:	ff 15 68 e2 49 00    	call   *0x49e268
4064eb:	8b ce                	mov    %esi,%ecx
4064ed:	83 f8 01             	cmp    $0x1,%eax
4064f0:	0f 94 85 6f fd ff ff 	sete   -0x291(%ebp)
4064f7:	8d 51 02             	lea    0x2(%ecx),%edx
4064fa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
406500:	66 8b 01             	mov    (%ecx),%ax
406503:	83 c1 02             	add    $0x2,%ecx
406506:	66 85 c0             	test   %ax,%ax
406509:	75 f5                	jne    0x406500
40650b:	2b ca                	sub    %edx,%ecx
40650d:	d1 f9                	sar    $1,%ecx
40650f:	51                   	push   %ecx
406510:	56                   	push   %esi
406511:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
406517:	e8 e4 c8 ff ff       	call   0x402e00
40651c:	56                   	push   %esi
40651d:	e8 60 31 07 00       	call   0x479682
406522:	83 c4 04             	add    $0x4,%esp
406525:	80 bd 6f fd ff ff 00 	cmpb   $0x0,-0x291(%ebp)
40652c:	0f 84 23 01 00 00    	je     0x406655
406532:	51                   	push   %ecx
406533:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
406539:	e8 22 0d 02 00       	call   0x427260
40653e:	83 c4 04             	add    $0x4,%esp
406541:	84 c0                	test   %al,%al
406543:	0f 84 0c 01 00 00    	je     0x406655
406549:	6a 17                	push   $0x17
40654b:	68 24 00 4b 00       	push   $0x4b0024
406550:	8d 8d 4c fd ff ff    	lea    -0x2b4(%ebp),%ecx
406556:	c7 85 4c fd ff ff 00 	movl   $0x0,-0x2b4(%ebp)
40655d:	00 00 00
406560:	c7 85 5c fd ff ff 00 	movl   $0x0,-0x2a4(%ebp)
406567:	00 00 00
40656a:	c7 85 60 fd ff ff 00 	movl   $0x0,-0x2a0(%ebp)
406571:	00 00 00
406574:	e8 e7 ba ff ff       	call   0x402060
406579:	c6 45 fc 07          	movb   $0x7,-0x4(%ebp)
40657d:	b8 01 00 00 00       	mov    $0x1,%eax
406582:	8b 8d e0 fd ff ff    	mov    -0x220(%ebp),%ecx
406588:	89 85 64 fd ff ff    	mov    %eax,-0x29c(%ebp)
40658e:	89 85 68 fd ff ff    	mov    %eax,-0x298(%ebp)
406594:	85 c9                	test   %ecx,%ecx
406596:	0f 84 b9 00 00 00    	je     0x406655
40659c:	8b 85 5c fd ff ff    	mov    -0x2a4(%ebp),%eax
4065a2:	85 c0                	test   %eax,%eax
4065a4:	0f 84 ab 00 00 00    	je     0x406655
4065aa:	8d 79 0b             	lea    0xb(%ecx),%edi
4065ad:	ba 02 00 00 00       	mov    $0x2,%edx
4065b2:	03 f8                	add    %eax,%edi
4065b4:	33 c9                	xor    %ecx,%ecx
4065b6:	8b c7                	mov    %edi,%eax
4065b8:	f7 e2                	mul    %edx
4065ba:	0f 90 c1             	seto   %cl
4065bd:	f7 d9                	neg    %ecx
4065bf:	0b c8                	or     %eax,%ecx
4065c1:	51                   	push   %ecx
4065c2:	e8 3a 31 07 00       	call   0x479701
4065c7:	8b f0                	mov    %eax,%esi
4065c9:	83 c4 04             	add    $0x4,%esp
4065cc:	85 f6                	test   %esi,%esi
4065ce:	0f 84 81 00 00 00    	je     0x406655
4065d4:	83 bd e4 fd ff ff 08 	cmpl   $0x8,-0x21c(%ebp)
4065db:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
4065e1:	0f 43 8d d0 fd ff ff 	cmovae -0x230(%ebp),%ecx
4065e8:	51                   	push   %ecx
4065e9:	57                   	push   %edi
4065ea:	56                   	push   %esi
4065eb:	e8 ad 30 07 00       	call   0x47969d
4065f0:	83 c4 0c             	add    $0xc,%esp
4065f3:	8d 85 4c fd ff ff    	lea    -0x2b4(%ebp),%eax
4065f9:	83 bd 60 fd ff ff 08 	cmpl   $0x8,-0x2a0(%ebp)
406600:	0f 43 85 4c fd ff ff 	cmovae -0x2b4(%ebp),%eax
406607:	50                   	push   %eax
406608:	56                   	push   %esi
406609:	ff 15 68 e2 49 00    	call   *0x49e268
40660f:	8b ce                	mov    %esi,%ecx
406611:	83 f8 01             	cmp    $0x1,%eax
406614:	0f 94 85 6f fd ff ff 	sete   -0x291(%ebp)
40661b:	8d 51 02             	lea    0x2(%ecx),%edx
40661e:	66 90                	xchg   %ax,%ax
406620:	66 8b 01             	mov    (%ecx),%ax
406623:	83 c1 02             	add    $0x2,%ecx
406626:	66 85 c0             	test   %ax,%ax
406629:	75 f5                	jne    0x406620
40662b:	2b ca                	sub    %edx,%ecx
40662d:	d1 f9                	sar    $1,%ecx
40662f:	51                   	push   %ecx
406630:	56                   	push   %esi
406631:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
406637:	e8 c4 c7 ff ff       	call   0x402e00
40663c:	56                   	push   %esi
40663d:	e8 40 30 07 00       	call   0x479682
406642:	83 c4 04             	add    $0x4,%esp
406645:	80 bd 6f fd ff ff 00 	cmpb   $0x0,-0x291(%ebp)
40664c:	c6 85 6f fd ff ff 00 	movb   $0x0,-0x291(%ebp)
406653:	75 07                	jne    0x40665c
406655:	c6 85 6f fd ff ff 01 	movb   $0x1,-0x291(%ebp)
40665c:	c7 45 fc 06 00 00 00 	movl   $0x6,-0x4(%ebp)
406663:	8b 85 64 fd ff ff    	mov    -0x29c(%ebp),%eax
406669:	a8 01                	test   $0x1,%al
40666b:	74 66                	je     0x4066d3
40666d:	8b 8d 60 fd ff ff    	mov    -0x2a0(%ebp),%ecx
406673:	83 e0 fe             	and    $0xfffffffe,%eax
406676:	89 85 64 fd ff ff    	mov    %eax,-0x29c(%ebp)
40667c:	83 f9 08             	cmp    $0x8,%ecx
40667f:	72 35                	jb     0x4066b6
406681:	8b 95 4c fd ff ff    	mov    -0x2b4(%ebp),%edx
406687:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40668e:	8b c2                	mov    %edx,%eax
406690:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
406696:	72 14                	jb     0x4066ac
406698:	8b 50 fc             	mov    -0x4(%eax),%edx
40669b:	83 c1 23             	add    $0x23,%ecx
40669e:	2b c2                	sub    %edx,%eax
4066a0:	83 c0 fc             	add    $0xfffffffc,%eax
4066a3:	83 f8 1f             	cmp    $0x1f,%eax
4066a6:	0f 87 d5 09 00 00    	ja     0x407081
4066ac:	51                   	push   %ecx
4066ad:	52                   	push   %edx
4066ae:	e8 55 33 06 00       	call   0x469a08
4066b3:	83 c4 08             	add    $0x8,%esp
4066b6:	33 c0                	xor    %eax,%eax
4066b8:	c7 85 5c fd ff ff 00 	movl   $0x0,-0x2a4(%ebp)
4066bf:	00 00 00
4066c2:	c7 85 60 fd ff ff 07 	movl   $0x7,-0x2a0(%ebp)
4066c9:	00 00 00
4066cc:	66 89 85 4c fd ff ff 	mov    %ax,-0x2b4(%ebp)
4066d3:	80 bd 6f fd ff ff 00 	cmpb   $0x0,-0x291(%ebp)
4066da:	74 65                	je     0x406741
4066dc:	a1 88 8c 4c 00       	mov    0x4c8c88,%eax
4066e1:	85 c0                	test   %eax,%eax
4066e3:	75 36                	jne    0x40671b
4066e5:	68 84 00 00 00       	push   $0x84
4066ea:	e8 e9 32 06 00       	call   0x4699d8
4066ef:	8b f0                	mov    %eax,%esi
4066f1:	89 b5 68 fd ff ff    	mov    %esi,-0x298(%ebp)
4066f7:	68 84 00 00 00       	push   $0x84
4066fc:	6a 00                	push   $0x0
4066fe:	56                   	push   %esi
4066ff:	c6 45 fc 08          	movb   $0x8,-0x4(%ebp)
406703:	e8 a8 54 06 00       	call   0x46bbb0
406708:	83 c4 10             	add    $0x10,%esp
40670b:	8b ce                	mov    %esi,%ecx
40670d:	e8 6e f5 ff ff       	call   0x405c80
406712:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
406716:	a3 88 8c 4c 00       	mov    %eax,0x4c8c88
40671b:	8b 48 04             	mov    0x4(%eax),%ecx
40671e:	83 c0 04             	add    $0x4,%eax
406721:	68 1c 01 4b 00       	push   $0x4b011c
406726:	68 60 ea 4a 00       	push   $0x4aea60
40672b:	50                   	push   %eax
40672c:	8b 71 24             	mov    0x24(%ecx),%esi
40672f:	8b ce                	mov    %esi,%ecx
406731:	ff 15 d4 e2 49 00    	call   *0x49e2d4
406737:	ff d6                	call   *%esi
406739:	83 c4 0c             	add    $0xc,%esp
40673c:	e9 23 08 00 00       	jmp    0x406f64
406741:	51                   	push   %ecx
406742:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
406748:	e8 d3 0b 02 00       	call   0x427320
40674d:	83 c4 04             	add    $0x4,%esp
406750:	84 c0                	test   %al,%al
406752:	75 79                	jne    0x4067cd
406754:	a1 88 8c 4c 00       	mov    0x4c8c88,%eax
406759:	85 c0                	test   %eax,%eax
40675b:	75 36                	jne    0x406793
40675d:	68 84 00 00 00       	push   $0x84
406762:	e8 71 32 06 00       	call   0x4699d8
406767:	8b f0                	mov    %eax,%esi
406769:	89 b5 68 fd ff ff    	mov    %esi,-0x298(%ebp)
40676f:	68 84 00 00 00       	push   $0x84
406774:	6a 00                	push   $0x0
406776:	56                   	push   %esi
406777:	c6 45 fc 09          	movb   $0x9,-0x4(%ebp)
40677b:	e8 30 54 06 00       	call   0x46bbb0
406780:	83 c4 10             	add    $0x10,%esp
406783:	8b ce                	mov    %esi,%ecx
406785:	e8 f6 f4 ff ff       	call   0x405c80
40678a:	c6 45 fc 06          	movb   $0x6,-0x4(%ebp)
40678e:	a3 88 8c 4c 00       	mov    %eax,0x4c8c88
406793:	83 bd e4 fd ff ff 08 	cmpl   $0x8,-0x21c(%ebp)
40679a:	8d 48 04             	lea    0x4(%eax),%ecx
40679d:	8b 31                	mov    (%ecx),%esi
40679f:	8d 85 d0 fd ff ff    	lea    -0x230(%ebp),%eax
4067a5:	0f 43 85 d0 fd ff ff 	cmovae -0x230(%ebp),%eax
4067ac:	50                   	push   %eax
4067ad:	68 5c 01 4b 00       	push   $0x4b015c
4067b2:	8b 76 24             	mov    0x24(%esi),%esi