4091bd:	8b 7d 08             	mov    0x8(%ebp),%edi
4091c0:	8b 47 04             	mov    0x4(%edi),%eax
4091c3:	8b 30                	mov    (%eax),%esi
4091c5:	8b ce                	mov    %esi,%ecx
4091c7:	e8 a0 01 00 00       	call   0x40936c
4091cc:	8b 46 08             	mov    0x8(%esi),%eax
4091cf:	8b 00                	mov    (%eax),%eax
4091d1:	89 44 24 10          	mov    %eax,0x10(%esp)
4091d5:	8b 47 04             	mov    0x4(%edi),%eax
4091d8:	8b 30                	mov    (%eax),%esi
4091da:	8b ce                	mov    %esi,%ecx
4091dc:	e8 8b 01 00 00       	call   0x40936c
4091e1:	8b 46 08             	mov    0x8(%esi),%eax
4091e4:	8b 74 24 18          	mov    0x18(%esp),%esi
4091e8:	8b 78 04             	mov    0x4(%eax),%edi
4091eb:	85 f6                	test   %esi,%esi
4091ed:	0f 8e 51 39 07 00    	jle    0x47cb44
4091f3:	8d 46 01             	lea    0x1(%esi),%eax
4091f6:	33 f6                	xor    %esi,%esi
4091f8:	46                   	inc    %esi
4091f9:	80 7c 24 0f 00       	cmpb   $0x0,0xf(%esp)
4091fe:	89 44 24 30          	mov    %eax,0x30(%esp)
409202:	0f 84 67 38 07 00    	je     0x47ca6f
409208:	50                   	push   %eax
409209:	56                   	push   %esi
40920a:	ff 75 0c             	push   0xc(%ebp)
40920d:	e8 3e 2e 01 00       	call   0x41c050
409212:	83 c4 0c             	add    $0xc,%esp
409215:	89 5c 24 18          	mov    %ebx,0x18(%esp)
409219:	8d 4c 24 38          	lea    0x38(%esp),%ecx
40921d:	89 5c 24 24          	mov    %ebx,0x24(%esp)
409221:	89 5c 24 28          	mov    %ebx,0x28(%esp)
409225:	e8 a4 2a 00 00       	call   0x40bcce
40922a:	83 7c 24 30 00       	cmpl   $0x0,0x30(%esp)
40922f:	0f 8e d0 00 00 00    	jle    0x409305
409235:	8b 44 24 2c          	mov    0x2c(%esp),%eax
409239:	2b c3                	sub    %ebx,%eax
40923b:	0f 84 84 38 07 00    	je     0x47cac5
409241:	48                   	dec    %eax
409242:	0f 85 af 00 00 00    	jne    0x4092f7
409248:	8b 44 24 10          	mov    0x10(%esp),%eax
40924c:	89 44 24 34          	mov    %eax,0x34(%esp)
409250:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
409254:	57                   	push   %edi
409255:	66 8b 11             	mov    (%ecx),%dx
409258:	8b c8                	mov    %eax,%ecx
40925a:	e8 f0 00 00 00       	call   0x40934f
40925f:	8b d0                	mov    %eax,%edx
409261:	59                   	pop    %ecx
409262:	89 54 24 20          	mov    %edx,0x20(%esp)
409266:	85 d2                	test   %edx,%edx
409268:	0f 84 b2 00 00 00    	je     0x409320
40926e:	8b 44 24 14          	mov    0x14(%esp),%eax
409272:	8b ca                	mov    %edx,%ecx
409274:	2b 4c 24 10          	sub    0x10(%esp),%ecx
409278:	d1 f9                	sar    $1,%ecx
40927a:	03 c8                	add    %eax,%ecx
40927c:	2b f9                	sub    %ecx,%edi
40927e:	0f 88 c4 00 00 00    	js     0x409348
409284:	50                   	push   %eax
409285:	ff 74 24 20          	push   0x20(%esp)
409289:	52                   	push   %edx
40928a:	e8 cc 85 01 00       	call   0x42185b
40928f:	83 c4 0c             	add    $0xc,%esp
409292:	85 c0                	test   %eax,%eax
409294:	0f 85 14 38 07 00    	jne    0x47caae
40929a:	8b 54 24 20          	mov    0x20(%esp),%edx
40929e:	8b 4c 24 34          	mov    0x34(%esp),%ecx
4092a2:	8b c2                	mov    %edx,%eax
4092a4:	2b c1                	sub    %ecx,%eax
4092a6:	d1 f8                	sar    $1,%eax
4092a8:	50                   	push   %eax
4092a9:	53                   	push   %ebx
4092aa:	51                   	push   %ecx
4092ab:	8d 4c 24 44          	lea    0x44(%esp),%ecx
4092af:	e8 9b 2f 00 00       	call   0x40c24f
4092b4:	8d 44 24 38          	lea    0x38(%esp),%eax
4092b8:	50                   	push   %eax
4092b9:	8d 4c 24 4c          	lea    0x4c(%esp),%ecx
4092bd:	e8 86 fd ff ff       	call   0x409048
4092c2:	ff 74 24 18          	push   0x18(%esp)
4092c6:	8d 44 24 4c          	lea    0x4c(%esp),%eax
4092ca:	56                   	push   %esi
4092cb:	50                   	push   %eax
4092cc:	ff 75 0c             	push   0xc(%ebp)
4092cf:	e8 fc 96 00 00       	call   0x4129d0
4092d4:	83 c4 10             	add    $0x10,%esp
4092d7:	ff 44 24 18          	incl   0x18(%esp)
4092db:	8d 4c 24 48          	lea    0x48(%esp),%ecx
4092df:	e8 3c 99 00 00       	call   0x412c20
4092e4:	8b 44 24 14          	mov    0x14(%esp),%eax
4092e8:	8b 4c 24 20          	mov    0x20(%esp),%ecx
4092ec:	ff 44 24 24          	incl   0x24(%esp)
4092f0:	8d 04 41             	lea    (%ecx,%eax,2),%eax
4092f3:	89 44 24 10          	mov    %eax,0x10(%esp)
4092f7:	8b 44 24 24          	mov    0x24(%esp),%eax
4092fb:	3b 44 24 30          	cmp    0x30(%esp),%eax
4092ff:	0f 8c 30 ff ff ff    	jl     0x409235
409305:	8d 4c 24 38          	lea    0x38(%esp),%ecx
409309:	e8 29 38 00 00       	call   0x40cb37
40930e:	5f                   	pop    %edi
40930f:	5e                   	pop    %esi
409310:	33 c0                	xor    %eax,%eax
409312:	5b                   	pop    %ebx
409313:	8b e5                	mov    %ebp,%esp
409315:	5d                   	pop    %ebp
409316:	c2 08 00             	ret    $0x8
409319:	8b fb                	mov    %ebx,%edi
40931b:	e9 99 fe ff ff       	jmp    0x4091b9
409320:	8b 44 24 10          	mov    0x10(%esp),%eax
409324:	8d 14 78             	lea    (%eax,%edi,2),%edx
409327:	89 54 24 20          	mov    %edx,0x20(%esp)
40932b:	e9 6e ff ff ff       	jmp    0x40929e
409330:	8a d3                	mov    %bl,%dl
409332:	e9 08 fe ff ff       	jmp    0x40913f
409337:	8b c3                	mov    %ebx,%eax
409339:	e9 01 fe ff ff       	jmp    0x40913f
40933e:	83 4c 24 18 ff       	orl    $0xffffffff,0x18(%esp)
409343:	e9 fc 37 07 00       	jmp    0x47cb44
409348:	03 c7                	add    %edi,%eax
40934a:	8d 14 42             	lea    (%edx,%eax,2),%edx
40934d:	eb d8                	jmp    0x409327
40934f:	55                   	push   %ebp
409350:	8b ec                	mov    %esp,%ebp
409352:	8b 45 08             	mov    0x8(%ebp),%eax
409355:	85 c0                	test   %eax,%eax
409357:	74 0b                	je     0x409364
409359:	66 39 11             	cmp    %dx,(%ecx)
40935c:	74 0a                	je     0x409368
40935e:	83 c1 02             	add    $0x2,%ecx
409361:	48                   	dec    %eax
409362:	75 f5                	jne    0x409359
409364:	33 c0                	xor    %eax,%eax
409366:	5d                   	pop    %ebp
409367:	c3                   	ret
409368:	8b c1                	mov    %ecx,%eax
40936a:	5d                   	pop    %ebp
40936b:	c3                   	ret
40936c:	55                   	push   %ebp
40936d:	8b ec                	mov    %esp,%ebp
40936f:	81 ec 94 00 00 00    	sub    $0x94,%esp
409375:	56                   	push   %esi
409376:	57                   	push   %edi
409377:	8b f1                	mov    %ecx,%esi
409379:	33 ff                	xor    %edi,%edi
40937b:	39 7e 08             	cmp    %edi,0x8(%esi)
40937e:	74 04                	je     0x409384
409380:	5f                   	pop    %edi
409381:	5e                   	pop    %esi
409382:	c9                   	leave
409383:	c3                   	ret
409384:	8b 46 0c             	mov    0xc(%esi),%eax
409387:	48                   	dec    %eax
409388:	74 4a                	je     0x4093d4
40938a:	48                   	dec    %eax
40938b:	0f 84 2c b9 06 00    	je     0x474cbd
409391:	48                   	dec    %eax
409392:	0f 85 27 b8 06 00    	jne    0x474bbf
409398:	dd 06                	fldl   (%esi)
40939a:	51                   	push   %ecx
40939b:	51                   	push   %ecx
40939c:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
4093a2:	dd 1c 24             	fstpl  (%esp)
4093a5:	68 e4 ee 4a 00       	push   $0x4aeee4
4093aa:	50                   	push   %eax
4093ab:	e8 7b 83 01 00       	call   0x42172b
4093b0:	83 c4 10             	add    $0x10,%esp
4093b3:	6a 10                	push   $0x10
4093b5:	e8 30 61 01 00       	call   0x41f4ea
4093ba:	59                   	pop    %ecx
4093bb:	85 c0                	test   %eax,%eax
4093bd:	74 10                	je     0x4093cf
4093bf:	8d 8d 6c ff ff ff    	lea    -0x94(%ebp),%ecx
4093c5:	51                   	push   %ecx
4093c6:	8b c8                	mov    %eax,%ecx
4093c8:	e8 4c 3a 00 00       	call   0x40ce19
4093cd:	8b f8                	mov    %eax,%edi
4093cf:	89 7e 08             	mov    %edi,0x8(%esi)
4093d2:	eb ac                	jmp    0x409380
4093d4:	6a 0a                	push   $0xa
4093d6:	8d 85 6c ff ff ff    	lea    -0x94(%ebp),%eax
4093dc:	50                   	push   %eax
4093dd:	ff 36                	push   (%esi)
4093df:	e8 73 81 01 00       	call   0x421557
4093e4:	83 c4 0c             	add    $0xc,%esp
4093e7:	eb ca                	jmp    0x4093b3
4093e9:	cc                   	int3
4093ea:	cc                   	int3
4093eb:	cc                   	int3
4093ec:	cc                   	int3
4093ed:	cc                   	int3
4093ee:	cc                   	int3
4093ef:	cc                   	int3
4093f0:	55                   	push   %ebp
4093f1:	8b ec                	mov    %esp,%ebp
4093f3:	83 ec 68             	sub    $0x68,%esp
4093f6:	53                   	push   %ebx
4093f7:	56                   	push   %esi
4093f8:	8b f1                	mov    %ecx,%esi
4093fa:	57                   	push   %edi
4093fb:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
4093ff:	89 75 ec             	mov    %esi,-0x14(%ebp)
409402:	0f 84 56 95 06 00    	je     0x47295e
409408:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40940c:	0f 84 4c 95 06 00    	je     0x47295e
409412:	8b 7d 10             	mov    0x10(%ebp),%edi
409415:	33 c0                	xor    %eax,%eax
409417:	6a ff                	push   $0xffffffff
409419:	50                   	push   %eax
40941a:	8b cf                	mov    %edi,%ecx
40941c:	c6 45 fb 00          	movb   $0x0,-0x5(%ebp)
409420:	89 45 e8             	mov    %eax,-0x18(%ebp)
409423:	e8 63 1d 00 00       	call   0x40b18b
409428:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
40942c:	75 04                	jne    0x409432
40942e:	c6 45 fb 01          	movb   $0x1,-0x5(%ebp)
409432:	8d 4d bc             	lea    -0x44(%ebp),%ecx
409435:	e8 bd 43 00 00       	call   0x40d7f7
40943a:	8d 4d cc             	lea    -0x34(%ebp),%ecx
40943d:	e8 b5 43 00 00       	call   0x40d7f7
409442:	33 d2                	xor    %edx,%edx
409444:	33 db                	xor    %ebx,%ebx
409446:	89 55 f0             	mov    %edx,-0x10(%ebp)
409449:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40944c:	8d 64 24 00          	lea    0x0(%esp),%esp
409450:	80 7d fb 00          	cmpb   $0x0,-0x5(%ebp)
409454:	0f 84 5d 91 06 00    	je     0x4725b7
40945a:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
40945e:	0f 84 10 02 00 00    	je     0x409674
409464:	80 7e 10 00          	cmpb   $0x0,0x10(%esi)
409468:	0f 84 06 02 00 00    	je     0x409674
40946e:	83 fa ff             	cmp    $0xffffffff,%edx
409471:	0f 84 fd 01 00 00    	je     0x409674
409477:	8b 4e 28             	mov    0x28(%esi),%ecx
40947a:	3b d1                	cmp    %ecx,%edx
40947c:	0f 8f f2 01 00 00    	jg     0x409674
409482:	ff 76 30             	push   0x30(%esi)
409485:	8b 46 40             	mov    0x40(%esi),%eax
409488:	ff 76 2c             	push   0x2c(%esi)
40948b:	0b 46 38             	or     0x38(%esi),%eax
40948e:	50                   	push   %eax
40948f:	52                   	push   %edx
409490:	51                   	push   %ecx
409491:	ff 36                	push   (%esi)
409493:	8b 4e 24             	mov    0x24(%esi),%ecx
409496:	e8 c5 06 00 00       	call   0x409b60
40949b:	8b c8                	mov    %eax,%ecx
40949d:	83 c4 18             	add    $0x18,%esp
4094a0:	89 4e 34             	mov    %ecx,0x34(%esi)
4094a3:	85 c9                	test   %ecx,%ecx
4094a5:	0f 8e ba 01 00 00    	jle    0x409665
4094ab:	8b 46 2c             	mov    0x2c(%esi),%eax
4094ae:	8b 50 04             	mov    0x4(%eax),%edx
4094b1:	c7 46 38 00 00 00 00 	movl   $0x0,0x38(%esi)
4094b8:	8b 38                	mov    (%eax),%edi
4094ba:	3b 78 04             	cmp    0x4(%eax),%edi
4094bd:	89 7d e0             	mov    %edi,-0x20(%ebp)
4094c0:	8b 7d 10             	mov    0x10(%ebp),%edi
4094c3:	0f 84 fd 90 06 00    	je     0x4725c6
4094c9:	89 55 f0             	mov    %edx,-0x10(%ebp)
4094cc:	85 c9                	test   %ecx,%ecx
4094ce:	0f 84 a0 01 00 00    	je     0x409674
4094d4:	8b 46 2c             	mov    0x2c(%esi),%eax
4094d7:	8b 18                	mov    (%eax),%ebx
4094d9:	8b 45 f4             	mov    -0xc(%ebp),%eax
4094dc:	2b d8                	sub    %eax,%ebx
4094de:	0f 84 2a 01 00 00    	je     0x40960e
4094e4:	8b 4e 04             	mov    0x4(%esi),%ecx
4094e7:	3b c1                	cmp    %ecx,%eax
4094e9:	0f 83 1f 01 00 00    	jae    0x40960e
4094ef:	83 fb ff             	cmp    $0xffffffff,%ebx
4094f2:	0f 84 b6 01 00 00    	je     0x4096ae
4094f8:	03 c3                	add    %ebx,%eax
4094fa:	3b c1                	cmp    %ecx,%eax
4094fc:	0f 87 a9 01 00 00    	ja     0x4096ab
409502:	8b 4d d8             	mov    -0x28(%ebp),%ecx
409505:	8b 01                	mov    (%ecx),%eax
409507:	83 f8 01             	cmp    $0x1,%eax
40950a:	0f 8f f0 90 06 00    	jg     0x472600
409510:	8d 43 01             	lea    0x1(%ebx),%eax
409513:	39 45 d4             	cmp    %eax,-0x2c(%ebp)
409516:	0f 82 06 01 00 00    	jb     0x409622
40951c:	8b 45 ec             	mov    -0x14(%ebp),%eax
40951f:	8b 4d f4             	mov    -0xc(%ebp),%ecx
409522:	8b 00                	mov    (%eax),%eax
409524:	8d 34 1b             	lea    (%ebx,%ebx,1),%esi
409527:	56                   	push   %esi
409528:	8d 04 48             	lea    (%eax,%ecx,2),%eax
40952b:	50                   	push   %eax
40952c:	ff 75 cc             	push   -0x34(%ebp)
40952f:	89 5d d0             	mov    %ebx,-0x30(%ebp)
409532:	e8 49 59 01 00       	call   0x41ee80
409537:	8b 45 cc             	mov    -0x34(%ebp),%eax
40953a:	83 c4 0c             	add    $0xc,%esp
40953d:	33 c9                	xor    %ecx,%ecx
40953f:	66 89 0c 06          	mov    %cx,(%esi,%eax,1)
409543:	8b 75 ec             	mov    -0x14(%ebp),%esi
409546:	8d 45 cc             	lea    -0x34(%ebp),%eax
409549:	3b f8                	cmp    %eax,%edi
40954b:	0f 84 e4 90 06 00    	je     0x472635
409551:	85 db                	test   %ebx,%ebx
409553:	74 43                	je     0x409598
409555:	8b 4f 0c             	mov    0xc(%edi),%ecx
409558:	8b 01                	mov    (%ecx),%eax
40955a:	83 f8 01             	cmp    $0x1,%eax
40955d:	0f 8f f3 90 06 00    	jg     0x472656
409563:	8b 47 04             	mov    0x4(%edi),%eax
409566:	40                   	inc    %eax
409567:	03 c3                	add    %ebx,%eax
409569:	39 47 08             	cmp    %eax,0x8(%edi)
40956c:	0f 82 38 91 06 00    	jb     0x4726aa
409572:	8b 4f 04             	mov    0x4(%edi),%ecx
409575:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
409578:	50                   	push   %eax
409579:	8b 07                	mov    (%edi),%eax
40957b:	ff 75 cc             	push   -0x34(%ebp)
40957e:	8d 04 48             	lea    (%eax,%ecx,2),%eax
409581:	50                   	push   %eax
409582:	e8 f9 58 01 00       	call   0x41ee80
409587:	01 5f 04             	add    %ebx,0x4(%edi)
40958a:	8b 4f 04             	mov    0x4(%edi),%ecx
40958d:	8b 07                	mov    (%edi),%eax
40958f:	83 c4 0c             	add    $0xc,%esp
409592:	33 d2                	xor    %edx,%edx
409594:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
409598:	8d 45 bc             	lea    -0x44(%ebp),%eax
40959b:	50                   	push   %eax
40959c:	ff 75 08             	push   0x8(%ebp)
40959f:	8b ce                	mov    %esi,%ecx
4095a1:	e8 aa 19 00 00       	call   0x40af50
4095a6:	01 45 e8             	add    %eax,-0x18(%ebp)
4095a9:	8d 45 bc             	lea    -0x44(%ebp),%eax
4095ac:	3b f8                	cmp    %eax,%edi
4095ae:	0f 84 17 92 06 00    	je     0x4727cb
4095b4:	8b 5d c0             	mov    -0x40(%ebp),%ebx
4095b7:	85 db                	test   %ebx,%ebx
4095b9:	74 43                	je     0x4095fe
4095bb:	8b 4f 0c             	mov    0xc(%edi),%ecx
4095be:	8b 01                	mov    (%ecx),%eax
4095c0:	83 f8 01             	cmp    $0x1,%eax
4095c3:	0f 8f 23 92 06 00    	jg     0x4727ec
4095c9:	8b 47 04             	mov    0x4(%edi),%eax
4095cc:	40                   	inc    %eax
4095cd:	03 c3                	add    %ebx,%eax
4095cf:	39 47 08             	cmp    %eax,0x8(%edi)
4095d2:	0f 82 68 92 06 00    	jb     0x472840
4095d8:	8b 4f 04             	mov    0x4(%edi),%ecx
4095db:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
4095de:	50                   	push   %eax
4095df:	8b 07                	mov    (%edi),%eax