408292:	83 7f 08 00          	cmpl   $0x0,0x8(%edi)
408296:	8b 1d 70 a0 40 00    	mov    0x40a070,%ebx
40829c:	75 15                	jne    0x4082b3
40829e:	8d 45 10             	lea    0x10(%ebp),%eax
4082a1:	6a 00                	push   $0x0
4082a3:	50                   	push   %eax
4082a4:	6a 02                	push   $0x2
4082a6:	68 98 d0 40 00       	push   $0x40d098
4082ab:	ff b6 e4 01 00 00    	push   0x1e4(%esi)
4082b1:	ff d3                	call   *%ebx
4082b3:	8d 45 10             	lea    0x10(%ebp),%eax
4082b6:	6a 00                	push   $0x0
4082b8:	50                   	push   %eax
4082b9:	ff 77 14             	push   0x14(%edi)
4082bc:	e8 8d 0d 00 00       	call   0x40904e
4082c1:	59                   	pop    %ecx
4082c2:	50                   	push   %eax
4082c3:	ff 77 14             	push   0x14(%edi)
4082c6:	ff b6 e4 01 00 00    	push   0x1e4(%esi)
4082cc:	ff d3                	call   *%ebx
4082ce:	8d 45 10             	lea    0x10(%ebp),%eax
4082d1:	6a 00                	push   $0x0
4082d3:	50                   	push   %eax
4082d4:	6a 03                	push   $0x3
4082d6:	68 94 d0 40 00       	push   $0x40d094
4082db:	eb 9d                	jmp    0x40827a
4082dd:	83 f8 03             	cmp    $0x3,%eax
4082e0:	0f 85 21 01 00 00    	jne    0x408407
4082e6:	6a 28                	push   $0x28
4082e8:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4082eb:	ff 75 14             	push   0x14(%ebp)
4082ee:	50                   	push   %eax
4082ef:	e8 60 0d 00 00       	call   0x409054
4082f4:	33 ff                	xor    %edi,%edi
4082f6:	83 c4 0c             	add    $0xc,%esp
4082f9:	39 7d dc             	cmp    %edi,-0x24(%ebp)
4082fc:	0f 85 e0 00 00 00    	jne    0x4083e2
408302:	ff 75 e8             	push   -0x18(%ebp)
408305:	e8 44 0d 00 00       	call   0x40904e
40830a:	59                   	pop    %ecx
40830b:	50                   	push   %eax
40830c:	ff 75 e8             	push   -0x18(%ebp)
40830f:	ff 15 5c a2 40 00    	call   *0x40a25c
408315:	84 5d d4             	test   %bl,-0x2c(%ebp)
408318:	0f 84 bc 00 00 00    	je     0x4083da
40831e:	f6 45 d4 04          	testb  $0x4,-0x2c(%ebp)
408322:	0f 84 b2 00 00 00    	je     0x4083da
408328:	8d 86 d8 00 00 00    	lea    0xd8(%esi),%eax
40832e:	50                   	push   %eax
40832f:	ff 75 e8             	push   -0x18(%ebp)
408332:	ff 15 80 a1 40 00    	call   *0x40a180
408338:	59                   	pop    %ecx
408339:	85 c0                	test   %eax,%eax
40833b:	59                   	pop    %ecx
40833c:	0f 84 98 00 00 00    	je     0x4083da
408342:	ff 75 f4             	push   -0xc(%ebp)
408345:	8b 8e e8 01 00 00    	mov    0x1e8(%esi),%ecx
40834b:	8d 85 48 fd ff ff    	lea    -0x2b8(%ebp),%eax
408351:	50                   	push   %eax
408352:	e8 3f e7 ff ff       	call   0x406a96
408357:	3b c3                	cmp    %ebx,%eax
408359:	0f 85 a8 00 00 00    	jne    0x408407
40835f:	8d 85 50 fd ff ff    	lea    -0x2b0(%ebp),%eax
408365:	89 9e dc 01 00 00    	mov    %ebx,0x1dc(%esi)
40836b:	89 45 c0             	mov    %eax,-0x40(%ebp)
40836e:	8d 45 ac             	lea    -0x54(%ebp),%eax
408371:	50                   	push   %eax
408372:	8b 35 dc a2 40 00    	mov    0x40a2dc,%esi
408378:	ff 75 10             	push   0x10(%ebp)
40837b:	89 5d ac             	mov    %ebx,-0x54(%ebp)
40837e:	89 7d b4             	mov    %edi,-0x4c(%ebp)
408381:	89 7d b0             	mov    %edi,-0x50(%ebp)
408384:	68 07 10 00 00       	push   $0x1007
408389:	ff 75 08             	push   0x8(%ebp)
40838c:	ff d6                	call   *%esi
40838e:	6a 14                	push   $0x14
408390:	8d 45 98             	lea    -0x68(%ebp),%eax
408393:	ff b5 48 fd ff ff    	push   -0x2b8(%ebp)
408399:	50                   	push   %eax
40839a:	e8 27 05 00 00       	call   0x4088c6
40839f:	8d 45 98             	lea    -0x68(%ebp),%eax
4083a2:	83 c4 0c             	add    $0xc,%esp
4083a5:	89 45 c0             	mov    %eax,-0x40(%ebp)
4083a8:	8d 45 ac             	lea    -0x54(%ebp),%eax
4083ab:	50                   	push   %eax
4083ac:	bf 06 10 00 00       	mov    $0x1006,%edi
4083b1:	ff 75 10             	push   0x10(%ebp)
4083b4:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
4083b7:	57                   	push   %edi
4083b8:	ff 75 08             	push   0x8(%ebp)
4083bb:	ff d6                	call   *%esi
4083bd:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4083c0:	83 65 d8 00          	andl   $0x0,-0x28(%ebp)
4083c4:	50                   	push   %eax
4083c5:	c7 45 dc 02 00 00 00 	movl   $0x2,-0x24(%ebp)
4083cc:	ff 75 10             	push   0x10(%ebp)
4083cf:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
4083d2:	57                   	push   %edi
4083d3:	ff 75 08             	push   0x8(%ebp)
4083d6:	ff d6                	call   *%esi
4083d8:	eb 2a                	jmp    0x408404
4083da:	89 be dc 01 00 00    	mov    %edi,0x1dc(%esi)
4083e0:	eb 25                	jmp    0x408407
4083e2:	39 be dc 01 00 00    	cmp    %edi,0x1dc(%esi)
4083e8:	74 1d                	je     0x408407
4083ea:	83 45 dc 02          	addl   $0x2,-0x24(%ebp)
4083ee:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4083f1:	89 7d d8             	mov    %edi,-0x28(%ebp)
4083f4:	50                   	push   %eax
4083f5:	ff 75 10             	push   0x10(%ebp)
4083f8:	ff 75 0c             	push   0xc(%ebp)
4083fb:	ff 75 08             	push   0x8(%ebp)
4083fe:	ff 15 dc a2 40 00    	call   *0x40a2dc
408404:	89 45 fc             	mov    %eax,-0x4(%ebp)
408407:	8b 45 fc             	mov    -0x4(%ebp),%eax
40840a:	5f                   	pop    %edi
40840b:	5e                   	pop    %esi
40840c:	5b                   	pop    %ebx
40840d:	c9                   	leave
40840e:	c2 10 00             	ret    $0x10
408411:	55                   	push   %ebp
408412:	8b ec                	mov    %esp,%ebp
408414:	81 ec 50 01 00 00    	sub    $0x150,%esp
40841a:	53                   	push   %ebx
40841b:	56                   	push   %esi
40841c:	57                   	push   %edi
40841d:	6a 4c                	push   $0x4c
40841f:	5f                   	pop    %edi
408420:	33 db                	xor    %ebx,%ebx
408422:	57                   	push   %edi
408423:	8d 45 b4             	lea    -0x4c(%ebp),%eax
408426:	53                   	push   %ebx
408427:	8b f1                	mov    %ecx,%esi
408429:	50                   	push   %eax
40842a:	e8 0d 0b 00 00       	call   0x408f3c
40842f:	8b 86 f0 01 00 00    	mov    0x1f0(%esi),%eax
408435:	83 c4 0c             	add    $0xc,%esp
408438:	89 45 b8             	mov    %eax,-0x48(%ebp)
40843b:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
408441:	89 45 d0             	mov    %eax,-0x30(%ebp)
408444:	8d 45 b4             	lea    -0x4c(%ebp),%eax
408447:	50                   	push   %eax
408448:	88 9d b0 fe ff ff    	mov    %bl,-0x150(%ebp)
40844e:	89 7d b4             	mov    %edi,-0x4c(%ebp)
408451:	c7 45 c0 b8 d0 40 00 	movl   $0x40d0b8,-0x40(%ebp)
408458:	c7 45 d4 04 01 00 00 	movl   $0x104,-0x2c(%ebp)
40845f:	c7 45 e8 00 00 08 00 	movl   $0x80000,-0x18(%ebp)
408466:	c7 45 f0 b4 d0 40 00 	movl   $0x40d0b4,-0x10(%ebp)
40846d:	e8 6c 0a 00 00       	call   0x408ede
408472:	85 c0                	test   %eax,%eax
408474:	0f 84 8c 00 00 00    	je     0x408506
40847a:	53                   	push   %ebx
40847b:	68 80 00 00 00       	push   $0x80
408480:	6a 02                	push   $0x2
408482:	53                   	push   %ebx
408483:	6a 01                	push   $0x1
408485:	8d 85 b0 fe ff ff    	lea    -0x150(%ebp),%eax
40848b:	5f                   	pop    %edi
40848c:	57                   	push   %edi
40848d:	68 00 00 00 40       	push   $0x40000000
408492:	50                   	push   %eax
408493:	ff 15 bc a0 40 00    	call   *0x40a0bc
408499:	3b c3                	cmp    %ebx,%eax
40849b:	89 86 e4 01 00 00    	mov    %eax,0x1e4(%esi)
4084a1:	75 0f                	jne    0x4084b2
4084a3:	68 9c d0 40 00       	push   $0x40d09c
4084a8:	53                   	push   %ebx
4084a9:	e8 57 01 00 00       	call   0x408605
4084ae:	59                   	pop    %ecx
4084af:	59                   	pop    %ecx
4084b0:	eb 54                	jmp    0x408506
4084b2:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
4084b6:	89 be e0 01 00 00    	mov    %edi,0x1e0(%esi)
4084bc:	75 28                	jne    0x4084e6
4084be:	53                   	push   %ebx
4084bf:	53                   	push   %ebx
4084c0:	68 04 10 00 00       	push   $0x1004
4084c5:	ff b6 ec 01 00 00    	push   0x1ec(%esi)
4084cb:	ff 15 dc a2 40 00    	call   *0x40a2dc
4084d1:	8b f8                	mov    %eax,%edi
4084d3:	3b fb                	cmp    %ebx,%edi
4084d5:	7e 19                	jle    0x4084f0
4084d7:	53                   	push   %ebx
4084d8:	8b ce                	mov    %esi,%ecx
4084da:	e8 2e 00 00 00       	call   0x40850d
4084df:	43                   	inc    %ebx
4084e0:	3b df                	cmp    %edi,%ebx
4084e2:	7c f3                	jl     0x4084d7
4084e4:	eb 0a                	jmp    0x4084f0
4084e6:	ff 75 08             	push   0x8(%ebp)
4084e9:	8b ce                	mov    %esi,%ecx
4084eb:	e8 1d 00 00 00       	call   0x40850d
4084f0:	ff b6 e4 01 00 00    	push   0x1e4(%esi)
4084f6:	ff 15 dc a0 40 00    	call   *0x40a0dc
4084fc:	c7 86 e0 01 00 00 02 	movl   $0x2,0x1e0(%esi)
408503:	00 00 00
408506:	5f                   	pop    %edi
408507:	5e                   	pop    %esi
408508:	5b                   	pop    %ebx
408509:	c9                   	leave
40850a:	c2 04 00             	ret    $0x4
40850d:	b8 36 95 40 00       	mov    $0x409536,%eax
408512:	e8 19 0a 00 00       	call   0x408f30
408517:	51                   	push   %ecx
408518:	51                   	push   %ecx
408519:	53                   	push   %ebx
40851a:	56                   	push   %esi
40851b:	57                   	push   %edi
40851c:	8b d9                	mov    %ecx,%ebx
40851e:	68 a8 02 00 00       	push   $0x2a8
408523:	e8 26 0a 00 00       	call   0x408f4e
408528:	59                   	pop    %ecx
408529:	89 45 f0             	mov    %eax,-0x10(%ebp)
40852c:	33 ff                	xor    %edi,%edi
40852e:	3b c7                	cmp    %edi,%eax
408530:	89 7d fc             	mov    %edi,-0x4(%ebp)
408533:	74 0c                	je     0x408541
408535:	53                   	push   %ebx
408536:	8b c8                	mov    %eax,%ecx
408538:	e8 cc be ff ff       	call   0x404409
40853d:	8b f0                	mov    %eax,%esi
40853f:	eb 02                	jmp    0x408543
408541:	33 f6                	xor    %esi,%esi
408543:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
408547:	8d 45 ec             	lea    -0x14(%ebp),%eax
40854a:	57                   	push   %edi
40854b:	50                   	push   %eax
40854c:	6a 06                	push   $0x6
40854e:	68 e8 d0 40 00       	push   $0x40d0e8
408553:	ff b3 e4 01 00 00    	push   0x1e4(%ebx)
408559:	ff 15 70 a0 40 00    	call   *0x40a070
40855f:	3b f7                	cmp    %edi,%esi
408561:	74 11                	je     0x408574
408563:	ff 75 08             	push   0x8(%ebp)
408566:	8b ce                	mov    %esi,%ecx
408568:	e8 da c9 ff ff       	call   0x404f47
40856d:	56                   	push   %esi
40856e:	e8 d5 09 00 00       	call   0x408f48
408573:	59                   	pop    %ecx
408574:	be 68 02 00 00       	mov    $0x268,%esi
408579:	56                   	push   %esi
40857a:	e8 cf 09 00 00       	call   0x408f4e
40857f:	59                   	pop    %ecx
408580:	89 45 f0             	mov    %eax,-0x10(%ebp)
408583:	3b c7                	cmp    %edi,%eax
408585:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40858c:	74 0a                	je     0x408598
40858e:	53                   	push   %ebx
40858f:	8b c8                	mov    %eax,%ecx
408591:	e8 12 ae ff ff       	call   0x4033a8
408596:	8b f8                	mov    %eax,%edi
408598:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40859c:	85 ff                	test   %edi,%edi
40859e:	74 11                	je     0x4085b1
4085a0:	ff 75 08             	push   0x8(%ebp)
4085a3:	8b cf                	mov    %edi,%ecx
4085a5:	e8 14 b4 ff ff       	call   0x4039be
4085aa:	57                   	push   %edi
4085ab:	e8 98 09 00 00       	call   0x408f48
4085b0:	59                   	pop    %ecx
4085b1:	56                   	push   %esi
4085b2:	e8 97 09 00 00       	call   0x408f4e
4085b7:	59                   	pop    %ecx
4085b8:	89 45 f0             	mov    %eax,-0x10(%ebp)
4085bb:	85 c0                	test   %eax,%eax
4085bd:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4085c4:	74 0c                	je     0x4085d2
4085c6:	53                   	push   %ebx
4085c7:	8b c8                	mov    %eax,%ecx
4085c9:	e8 b9 a0 ff ff       	call   0x402687
4085ce:	8b f0                	mov    %eax,%esi
4085d0:	eb 02                	jmp    0x4085d4
4085d2:	33 f6                	xor    %esi,%esi
4085d4:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
4085d8:	85 f6                	test   %esi,%esi
4085da:	74 18                	je     0x4085f4
4085dc:	ff 75 08             	push   0x8(%ebp)
4085df:	8b ce                	mov    %esi,%ecx
4085e1:	e8 c3 a2 ff ff       	call   0x4028a9
4085e6:	8b ce                	mov    %esi,%ecx
4085e8:	e8 f2 0d 00 00       	call   0x4093df
4085ed:	56                   	push   %esi
4085ee:	e8 55 09 00 00       	call   0x408f48
4085f3:	59                   	pop    %ecx
4085f4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4085f7:	5f                   	pop    %edi
4085f8:	5e                   	pop    %esi
4085f9:	5b                   	pop    %ebx
4085fa:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
408601:	c9                   	leave
408602:	c2 04 00             	ret    $0x4
408605:	55                   	push   %ebp
408606:	8b ec                	mov    %esp,%ebp
408608:	81 ec 00 02 00 00    	sub    $0x200,%esp
40860e:	8d 45 10             	lea    0x10(%ebp),%eax
408611:	50                   	push   %eax
408612:	8d 85 00 fe ff ff    	lea    -0x200(%ebp),%eax
408618:	ff 75 0c             	push   0xc(%ebp)
40861b:	50                   	push   %eax
40861c:	ff 15 58 a2 40 00    	call   *0x40a258
408622:	6a 00                	push   $0x0
408624:	8d 85 00 fe ff ff    	lea    -0x200(%ebp),%eax
40862a:	68 a0 a3 40 00       	push   $0x40a3a0
40862f:	50                   	push   %eax
408630:	ff 75 08             	push   0x8(%ebp)
408633:	ff 15 f0 a1 40 00    	call   *0x40a1f0
408639:	c9                   	leave
40863a:	c3                   	ret
40863b:	55                   	push   %ebp
40863c:	8b ec                	mov    %esp,%ebp
40863e:	83 ec 0c             	sub    $0xc,%esp
408641:	56                   	push   %esi
408642:	ff 75 0c             	push   0xc(%ebp)
408645:	ff 75 08             	push   0x8(%ebp)
408648:	ff 15 50 a0 40 00    	call   *0x40a050
40864e:	8b f0                	mov    %eax,%esi
408650:	85 f6                	test   %esi,%esi
408652:	74 5c                	je     0x4086b0
408654:	80 3e e9             	cmpb   $0xe9,(%esi)
408657:	74 06                	je     0x40865f
408659:	80 7e 01 e9          	cmpb   $0xe9,0x1(%esi)
40865d:	75 51                	jne    0x4086b0
40865f:	83 3d f4 d7 40 00 00 	cmpl   $0x0,0x40d7f4
408666:	74 48                	je     0x4086b0
408668:	8d 45 f4             	lea    -0xc(%ebp),%eax
40866b:	6a 0c                	push   $0xc
40866d:	50                   	push   %eax
40866e:	ff 75 08             	push   0x8(%ebp)
408671:	ff 15 d8 a0 40 00    	call   *0x40a0d8
408677:	50                   	push   %eax
408678:	ff 15 f4 d7 40 00    	call   *0x40d7f4
40867e:	84 c0                	test   %al,%al
408680:	74 2e                	je     0x4086b0
408682:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408685:	8b 55 f8             	mov    -0x8(%ebp),%edx
408688:	8b 46 01             	mov    0x1(%esi),%eax
40868b:	03 d1                	add    %ecx,%edx
40868d:	3b d0                	cmp    %eax,%edx
40868f:	7c 04                	jl     0x408695
408691:	3b c8                	cmp    %eax,%ecx
408693:	7e 1b                	jle    0x4086b0
408695:	0f b6 46 01          	movzbl 0x1(%esi),%eax
408699:	50                   	push   %eax
40869a:	0f b6 06             	movzbl (%esi),%eax
40869d:	50                   	push   %eax
40869e:	ff 75 0c             	push   0xc(%ebp)
4086a1:	68 8c d1 40 00       	push   $0x40d18c
4086a6:	6a 00                	push   $0x0
4086a8:	e8 58 ff ff ff       	call   0x408605
4086ad:	83 c4 14             	add    $0x14,%esp