40f2dd:	8b ec                	mov    %esp,%ebp
40f2df:	83 ec 10             	sub    $0x10,%esp
40f2e2:	56                   	push   %esi
40f2e3:	33 c0                	xor    %eax,%eax
40f2e5:	57                   	push   %edi
40f2e6:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f2e9:	8b f0                	mov    %eax,%esi
40f2eb:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f2ee:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f2f1:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f2f4:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f2f7:	39 47 04             	cmp    %eax,0x4(%edi)
40f2fa:	0f 86 06 01 00 00    	jbe    0x40f406
40f300:	8b c8                	mov    %eax,%ecx
40f302:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40f305:	53                   	push   %ebx
40f306:	8b 1f                	mov    (%edi),%ebx
40f308:	50                   	push   %eax
40f309:	03 d9                	add    %ecx,%ebx
40f30b:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f30e:	50                   	push   %eax
40f30f:	ff 73 08             	push   0x8(%ebx)
40f312:	ff 75 08             	push   0x8(%ebp)
40f315:	e8 b5 7e ff ff       	call   0x4071cf
40f31a:	8b f0                	mov    %eax,%esi
40f31c:	85 f6                	test   %esi,%esi
40f31e:	0f 88 aa 00 00 00    	js     0x40f3ce
40f324:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f327:	50                   	push   %eax
40f328:	68 ac 0f 45 00       	push   $0x450fac
40f32d:	ff 75 f4             	push   -0xc(%ebp)
40f330:	e8 44 3a ff ff       	call   0x402d79
40f335:	8b f0                	mov    %eax,%esi
40f337:	85 f6                	test   %esi,%esi
40f339:	0f 88 88 00 00 00    	js     0x40f3c7
40f33f:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f342:	50                   	push   %eax
40f343:	ff 33                	push   (%ebx)
40f345:	ff 75 fc             	push   -0x4(%ebp)
40f348:	e8 2c 3a ff ff       	call   0x402d79
40f34d:	8b f0                	mov    %eax,%esi
40f34f:	85 f6                	test   %esi,%esi
40f351:	78 6d                	js     0x40f3c0
40f353:	6a 00                	push   $0x0
40f355:	ff 75 fc             	push   -0x4(%ebp)
40f358:	e8 b6 4c ff ff       	call   0x404013
40f35d:	8b f0                	mov    %eax,%esi
40f35f:	85 f6                	test   %esi,%esi
40f361:	78 4a                	js     0x40f3ad
40f363:	6a 00                	push   $0x0
40f365:	ff 73 0c             	push   0xc(%ebx)
40f368:	ff 15 f4 b0 44 00    	call   *0x44b0f4
40f36e:	50                   	push   %eax
40f36f:	ff 73 0c             	push   0xc(%ebx)
40f372:	68 80 00 00 00       	push   $0x80
40f377:	ff 75 f8             	push   -0x8(%ebp)
40f37a:	e8 e8 58 03 00       	call   0x444c67
40f37f:	8b f0                	mov    %eax,%esi
40f381:	85 f6                	test   %esi,%esi
40f383:	78 1e                	js     0x40f3a3
40f385:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f388:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40f38b:	40                   	inc    %eax
40f38c:	83 c1 10             	add    $0x10,%ecx
40f38f:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f392:	3b 47 04             	cmp    0x4(%edi),%eax
40f395:	6a 00                	push   $0x0
40f397:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40f39a:	58                   	pop    %eax
40f39b:	0f 82 65 ff ff ff    	jb     0x40f306
40f3a1:	eb 38                	jmp    0x40f3db
40f3a3:	ff 75 f8             	push   -0x8(%ebp)
40f3a6:	68 c8 1f 45 00       	push   $0x451fc8
40f3ab:	eb 08                	jmp    0x40f3b5
40f3ad:	ff 75 fc             	push   -0x4(%ebp)
40f3b0:	68 a4 1f 45 00       	push   $0x451fa4
40f3b5:	56                   	push   %esi
40f3b6:	e8 74 0d 03 00       	call   0x44012f
40f3bb:	83 c4 0c             	add    $0xc,%esp
40f3be:	eb 1b                	jmp    0x40f3db
40f3c0:	68 80 1f 45 00       	push   $0x451f80
40f3c5:	eb 0c                	jmp    0x40f3d3
40f3c7:	68 58 1f 45 00       	push   $0x451f58
40f3cc:	eb 05                	jmp    0x40f3d3
40f3ce:	68 34 1f 45 00       	push   $0x451f34
40f3d3:	56                   	push   %esi
40f3d4:	e8 56 0d 03 00       	call   0x44012f
40f3d9:	59                   	pop    %ecx
40f3da:	59                   	pop    %ecx
40f3db:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40f3df:	5b                   	pop    %ebx
40f3e0:	74 08                	je     0x40f3ea
40f3e2:	ff 75 f8             	push   -0x8(%ebp)
40f3e5:	e8 05 61 03 00       	call   0x4454ef
40f3ea:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40f3ee:	74 08                	je     0x40f3f8
40f3f0:	ff 75 fc             	push   -0x4(%ebp)
40f3f3:	e8 f7 60 03 00       	call   0x4454ef
40f3f8:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
40f3fc:	74 08                	je     0x40f406
40f3fe:	ff 75 f4             	push   -0xc(%ebp)
40f401:	e8 e9 60 03 00       	call   0x4454ef
40f406:	5f                   	pop    %edi
40f407:	8b c6                	mov    %esi,%eax
40f409:	5e                   	pop    %esi
40f40a:	8b e5                	mov    %ebp,%esp
40f40c:	5d                   	pop    %ebp
40f40d:	c2 08 00             	ret    $0x8
40f410:	55                   	push   %ebp
40f411:	8b ec                	mov    %esp,%ebp
40f413:	51                   	push   %ecx
40f414:	51                   	push   %ecx
40f415:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40f419:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f41c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f420:	56                   	push   %esi
40f421:	57                   	push   %edi
40f422:	8b 7d 08             	mov    0x8(%ebp),%edi
40f425:	50                   	push   %eax
40f426:	57                   	push   %edi
40f427:	e8 a1 f3 ff ff       	call   0x40e7cd
40f42c:	8b f0                	mov    %eax,%esi
40f42e:	85 f6                	test   %esi,%esi
40f430:	79 12                	jns    0x40f444
40f432:	68 f0 1f 45 00       	push   $0x451ff0
40f437:	56                   	push   %esi
40f438:	e8 f2 0c 03 00       	call   0x44012f
40f43d:	59                   	pop    %ecx
40f43e:	59                   	pop    %ecx
40f43f:	e9 71 01 00 00       	jmp    0x40f5b5
40f444:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f447:	50                   	push   %eax
40f448:	68 06 00 02 00       	push   $0x20006
40f44d:	ff 75 f8             	push   -0x8(%ebp)
40f450:	ff 77 4c             	push   0x4c(%edi)
40f453:	e8 30 16 03 00       	call   0x440a88
40f458:	8b f0                	mov    %eax,%esi
40f45a:	85 f6                	test   %esi,%esi
40f45c:	79 07                	jns    0x40f465
40f45e:	68 30 20 45 00       	push   $0x452030
40f463:	eb d2                	jmp    0x40f437
40f465:	68 64 20 45 00       	push   $0x452064
40f46a:	68 68 20 45 00       	push   $0x452068
40f46f:	ff 75 fc             	push   -0x4(%ebp)
40f472:	e8 1b 1f 03 00       	call   0x441392
40f477:	8b f0                	mov    %eax,%esi
40f479:	85 f6                	test   %esi,%esi
40f47b:	79 0a                	jns    0x40f487
40f47d:	68 68 20 45 00       	push   $0x452068
40f482:	e9 20 01 00 00       	jmp    0x40f5a7
40f487:	ff 77 60             	push   0x60(%edi)
40f48a:	68 94 20 45 00       	push   $0x452094
40f48f:	ff 75 fc             	push   -0x4(%ebp)
40f492:	e8 fb 1e 03 00       	call   0x441392
40f497:	8b f0                	mov    %eax,%esi
40f499:	85 f6                	test   %esi,%esi
40f49b:	79 0a                	jns    0x40f4a7
40f49d:	68 94 20 45 00       	push   $0x452094
40f4a2:	e9 00 01 00 00       	jmp    0x40f5a7
40f4a7:	ff 77 64             	push   0x64(%edi)
40f4aa:	68 ac 20 45 00       	push   $0x4520ac
40f4af:	ff 75 fc             	push   -0x4(%ebp)
40f4b2:	e8 db 1e 03 00       	call   0x441392
40f4b7:	8b f0                	mov    %eax,%esi
40f4b9:	85 f6                	test   %esi,%esi
40f4bb:	79 0a                	jns    0x40f4c7
40f4bd:	68 ac 20 45 00       	push   $0x4520ac
40f4c2:	e9 e0 00 00 00       	jmp    0x40f5a7
40f4c7:	ff 77 68             	push   0x68(%edi)
40f4ca:	68 cc 0d 45 00       	push   $0x450dcc
40f4cf:	ff 75 fc             	push   -0x4(%ebp)
40f4d2:	e8 bb 1e 03 00       	call   0x441392
40f4d7:	8b f0                	mov    %eax,%esi
40f4d9:	85 f6                	test   %esi,%esi
40f4db:	79 0a                	jns    0x40f4e7
40f4dd:	68 cc 0d 45 00       	push   $0x450dcc
40f4e2:	e9 c0 00 00 00       	jmp    0x40f5a7
40f4e7:	8b 87 a4 00 00 00    	mov    0xa4(%edi),%eax
40f4ed:	85 c0                	test   %eax,%eax
40f4ef:	74 1e                	je     0x40f50f
40f4f1:	50                   	push   %eax
40f4f2:	68 cc 20 45 00       	push   $0x4520cc
40f4f7:	ff 75 fc             	push   -0x4(%ebp)
40f4fa:	e8 93 1e 03 00       	call   0x441392
40f4ff:	8b f0                	mov    %eax,%esi
40f501:	85 f6                	test   %esi,%esi
40f503:	79 0a                	jns    0x40f50f
40f505:	68 cc 20 45 00       	push   $0x4520cc
40f50a:	e9 98 00 00 00       	jmp    0x40f5a7
40f50f:	ff b7 b0 00 00 00    	push   0xb0(%edi)
40f515:	bf ec 20 45 00       	mov    $0x4520ec,%edi
40f51a:	57                   	push   %edi
40f51b:	ff 75 fc             	push   -0x4(%ebp)
40f51e:	e8 6f 1e 03 00       	call   0x441392
40f523:	8b f0                	mov    %eax,%esi
40f525:	85 f6                	test   %esi,%esi
40f527:	79 03                	jns    0x40f52c
40f529:	57                   	push   %edi
40f52a:	eb 7b                	jmp    0x40f5a7
40f52c:	8b 7d 0c             	mov    0xc(%ebp),%edi
40f52f:	68 04 21 45 00       	push   $0x452104
40f534:	68 44 c1 44 00       	push   $0x44c144
40f539:	57                   	push   %edi
40f53a:	ff 75 fc             	push   -0x4(%ebp)
40f53d:	e8 6f f8 ff ff       	call   0x40edb1
40f542:	8b f0                	mov    %eax,%esi
40f544:	85 f6                	test   %esi,%esi
40f546:	79 07                	jns    0x40f54f
40f548:	68 04 21 45 00       	push   $0x452104
40f54d:	eb 58                	jmp    0x40f5a7
40f54f:	68 1c 21 45 00       	push   $0x45211c
40f554:	68 38 c1 44 00       	push   $0x44c138
40f559:	57                   	push   %edi
40f55a:	ff 75 fc             	push   -0x4(%ebp)
40f55d:	e8 4f f8 ff ff       	call   0x40edb1
40f562:	8b f0                	mov    %eax,%esi
40f564:	85 f6                	test   %esi,%esi
40f566:	79 07                	jns    0x40f56f
40f568:	68 1c 21 45 00       	push   $0x45211c
40f56d:	eb 38                	jmp    0x40f5a7
40f56f:	b8 58 c1 44 00       	mov    $0x44c158,%eax
40f574:	50                   	push   %eax
40f575:	50                   	push   %eax
40f576:	57                   	push   %edi
40f577:	ff 75 fc             	push   -0x4(%ebp)
40f57a:	e8 32 f8 ff ff       	call   0x40edb1
40f57f:	8b f0                	mov    %eax,%esi
40f581:	85 f6                	test   %esi,%esi
40f583:	79 07                	jns    0x40f58c
40f585:	68 58 c1 44 00       	push   $0x44c158
40f58a:	eb 1b                	jmp    0x40f5a7
40f58c:	b8 74 c1 44 00       	mov    $0x44c174,%eax
40f591:	50                   	push   %eax
40f592:	50                   	push   %eax
40f593:	57                   	push   %edi
40f594:	ff 75 fc             	push   -0x4(%ebp)
40f597:	e8 15 f8 ff ff       	call   0x40edb1
40f59c:	8b f0                	mov    %eax,%esi
40f59e:	85 f6                	test   %esi,%esi
40f5a0:	79 13                	jns    0x40f5b5
40f5a2:	68 74 c1 44 00       	push   $0x44c174
40f5a7:	68 44 17 45 00       	push   $0x451744
40f5ac:	56                   	push   %esi
40f5ad:	e8 7d 0b 03 00       	call   0x44012f
40f5b2:	83 c4 0c             	add    $0xc,%esp
40f5b5:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40f5b9:	74 0d                	je     0x40f5c8
40f5bb:	ff 75 fc             	push   -0x4(%ebp)
40f5be:	ff 15 00 b0 44 00    	call   *0x44b000
40f5c4:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f5c8:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40f5cc:	74 08                	je     0x40f5d6
40f5ce:	ff 75 f8             	push   -0x8(%ebp)
40f5d1:	e8 19 5f 03 00       	call   0x4454ef
40f5d6:	5f                   	pop    %edi
40f5d7:	8b c6                	mov    %esi,%eax
40f5d9:	5e                   	pop    %esi
40f5da:	8b e5                	mov    %ebp,%esp
40f5dc:	5d                   	pop    %ebp
40f5dd:	c2 08 00             	ret    $0x8
40f5e0:	55                   	push   %ebp
40f5e1:	8b ec                	mov    %esp,%ebp
40f5e3:	51                   	push   %ecx
40f5e4:	51                   	push   %ecx
40f5e5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f5e9:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f5ec:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40f5f0:	56                   	push   %esi
40f5f1:	50                   	push   %eax
40f5f2:	8b 45 08             	mov    0x8(%ebp),%eax
40f5f5:	6a 01                	push   $0x1
40f5f7:	ff 70 50             	push   0x50(%eax)
40f5fa:	ff 70 4c             	push   0x4c(%eax)
40f5fd:	e8 3d 18 03 00       	call   0x440e3f
40f602:	8b f0                	mov    %eax,%esi
40f604:	85 f6                	test   %esi,%esi
40f606:	78 13                	js     0x40f61b
40f608:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f60b:	50                   	push   %eax
40f60c:	68 64 0d 45 00       	push   $0x450d64
40f611:	ff 75 fc             	push   -0x4(%ebp)
40f614:	e8 d3 18 03 00       	call   0x440eec
40f619:	8b f0                	mov    %eax,%esi
40f61b:	81 fe 02 00 07 80    	cmp    $0x80070002,%esi
40f621:	74 08                	je     0x40f62b
40f623:	81 fe 03 00 07 80    	cmp    $0x80070003,%esi
40f629:	75 02                	jne    0x40f62d
40f62b:	33 f6                	xor    %esi,%esi
40f62d:	8b 45 0c             	mov    0xc(%ebp),%eax
40f630:	33 c9                	xor    %ecx,%ecx
40f632:	83 7d f8 01          	cmpl   $0x1,-0x8(%ebp)
40f636:	0f 94 c1             	sete   %cl
40f639:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40f63d:	89 08                	mov    %ecx,(%eax)
40f63f:	74 09                	je     0x40f64a
40f641:	ff 75 fc             	push   -0x4(%ebp)
40f644:	ff 15 00 b0 44 00    	call   *0x44b000
40f64a:	8b c6                	mov    %esi,%eax
40f64c:	5e                   	pop    %esi
40f64d:	8b e5                	mov    %ebp,%esp
40f64f:	5d                   	pop    %ebp
40f650:	c2 08 00             	ret    $0x8
40f653:	55                   	push   %ebp
40f654:	8b ec                	mov    %esp,%ebp
40f656:	53                   	push   %ebx
40f657:	56                   	push   %esi
40f658:	57                   	push   %edi
40f659:	8b 7d 08             	mov    0x8(%ebp),%edi
40f65c:	8d 9f b4 00 00 00    	lea    0xb4(%edi),%ebx
40f662:	53                   	push   %ebx
40f663:	57                   	push   %edi
40f664:	6a 01                	push   $0x1
40f666:	e8 08 95 01 00       	call   0x428b73
40f66b:	8b f0                	mov    %eax,%esi
40f66d:	85 f6                	test   %esi,%esi
40f66f:	79 07                	jns    0x40f678
40f671:	68 94 16 45 00       	push   $0x451694
40f676:	eb 14                	jmp    0x40f68c
40f678:	53                   	push   %ebx
40f679:	57                   	push   %edi
40f67a:	6a 00                	push   $0x0
40f67c:	e8 f2 94 01 00       	call   0x428b73
40f681:	8b f0                	mov    %eax,%esi
40f683:	85 f6                	test   %esi,%esi
40f685:	79 0d                	jns    0x40f694
40f687:	68 c8 16 45 00       	push   $0x4516c8
40f68c:	56                   	push   %esi
40f68d:	e8 9d 0a 03 00       	call   0x44012f
40f692:	59                   	pop    %ecx
40f693:	59                   	pop    %ecx
40f694:	5f                   	pop    %edi
40f695:	8b c6                	mov    %esi,%eax
40f697:	5e                   	pop    %esi
40f698:	5b                   	pop    %ebx
40f699:	5d                   	pop    %ebp
40f69a:	c2 04 00             	ret    $0x4
40f69d:	55                   	push   %ebp
40f69e:	8b ec                	mov    %esp,%ebp
40f6a0:	83 ec 10             	sub    $0x10,%esp
40f6a3:	53                   	push   %ebx
40f6a4:	56                   	push   %esi
40f6a5:	57                   	push   %edi
40f6a6:	8b 7d 08             	mov    0x8(%ebp),%edi
40f6a9:	8d 45 f4             	lea    -0xc(%ebp),%eax
40f6ac:	33 db                	xor    %ebx,%ebx
40f6ae:	89 5d f4             	mov    %ebx,-0xc(%ebp)
40f6b1:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40f6b4:	ff 77 50             	push   0x50(%edi)
40f6b7:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40f6ba:	68 3c 0d 45 00       	push   $0x450d3c