40e320:	8b f0                	mov    %eax,%esi
40e322:	85 f6                	test   %esi,%esi
40e324:	0f 88 03 01 00 00    	js     0x40e42d
40e32a:	ff 75 fc             	push   -0x4(%ebp)
40e32d:	ff 75 0c             	push   0xc(%ebp)
40e330:	57                   	push   %edi
40e331:	e8 b8 f6 ff ff       	call   0x40d9ee
40e336:	8b f0                	mov    %eax,%esi
40e338:	85 f6                	test   %esi,%esi
40e33a:	0f 88 65 02 00 00    	js     0x40e5a5
40e340:	ff 75 fc             	push   -0x4(%ebp)
40e343:	57                   	push   %edi
40e344:	e8 90 99 01 00       	call   0x427cd9
40e349:	8b f0                	mov    %eax,%esi
40e34b:	85 f6                	test   %esi,%esi
40e34d:	0f 88 4b 02 00 00    	js     0x40e59e
40e353:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e356:	85 c9                	test   %ecx,%ecx
40e358:	74 0a                	je     0x40e364
40e35a:	8b 01                	mov    (%ecx),%eax
40e35c:	51                   	push   %ecx
40e35d:	ff 50 08             	call   *0x8(%eax)
40e360:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e364:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40e368:	74 0d                	je     0x40e377
40e36a:	ff 75 f8             	push   -0x8(%ebp)
40e36d:	ff 15 20 b3 44 00    	call   *0x44b320
40e373:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40e377:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e37a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40e37d:	40                   	inc    %eax
40e37e:	81 c1 e0 00 00 00    	add    $0xe0,%ecx
40e384:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40e387:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40e38a:	3b 45 ec             	cmp    -0x14(%ebp),%eax
40e38d:	0f 82 6f fc ff ff    	jb     0x40e002
40e393:	8b 75 e8             	mov    -0x18(%ebp),%esi
40e396:	85 f6                	test   %esi,%esi
40e398:	0f 84 e2 01 00 00    	je     0x40e580
40e39e:	8b c6                	mov    %esi,%eax
40e3a0:	6a 01                	push   $0x1
40e3a2:	c1 e0 04             	shl    $0x4,%eax
40e3a5:	50                   	push   %eax
40e3a6:	e8 29 55 ff ff       	call   0x4038d4
40e3ab:	89 43 20             	mov    %eax,0x20(%ebx)
40e3ae:	85 c0                	test   %eax,%eax
40e3b0:	0f 85 81 00 00 00    	jne    0x40e437
40e3b6:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40e3bb:	57                   	push   %edi
40e3bc:	68 fd 00 00 00       	push   $0xfd
40e3c1:	68 98 01 45 00       	push   $0x450198
40e3c6:	8b f7                	mov    %edi,%esi
40e3c8:	e8 06 54 ff ff       	call   0x4037d3
40e3cd:	68 70 07 45 00       	push   $0x450770
40e3d2:	e9 92 00 00 00       	jmp    0x40e469
40e3d7:	68 64 04 45 00       	push   $0x450464
40e3dc:	e9 b3 01 00 00       	jmp    0x40e594
40e3e1:	68 b4 04 45 00       	push   $0x4504b4
40e3e6:	e9 a9 01 00 00       	jmp    0x40e594
40e3eb:	68 00 05 45 00       	push   $0x450500
40e3f0:	e9 9f 01 00 00       	jmp    0x40e594
40e3f5:	ff 75 f4             	push   -0xc(%ebp)
40e3f8:	68 7c 05 45 00       	push   $0x45057c
40e3fd:	e9 e1 01 00 00       	jmp    0x40e5e3
40e402:	68 54 05 45 00       	push   $0x450554
40e407:	e9 88 01 00 00       	jmp    0x40e594
40e40c:	ff 75 f4             	push   -0xc(%ebp)
40e40f:	68 10 06 45 00       	push   $0x450610
40e414:	e9 ca 01 00 00       	jmp    0x40e5e3
40e419:	68 e4 05 45 00       	push   $0x4505e4
40e41e:	e9 71 01 00 00       	jmp    0x40e594
40e423:	68 cc 06 45 00       	push   $0x4506cc
40e428:	e9 67 01 00 00       	jmp    0x40e594
40e42d:	68 04 07 45 00       	push   $0x450704
40e432:	e9 5d 01 00 00       	jmp    0x40e594
40e437:	8b c6                	mov    %esi,%eax
40e439:	6a 01                	push   $0x1
40e43b:	c1 e0 02             	shl    $0x2,%eax
40e43e:	50                   	push   %eax
40e43f:	e8 90 54 ff ff       	call   0x4038d4
40e444:	83 7b 20 00          	cmpl   $0x0,0x20(%ebx)
40e448:	89 43 24             	mov    %eax,0x24(%ebx)
40e44b:	75 22                	jne    0x40e46f
40e44d:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40e452:	57                   	push   %edi
40e453:	68 00 01 00 00       	push   $0x100
40e458:	68 98 01 45 00       	push   $0x450198
40e45d:	8b f7                	mov    %edi,%esi
40e45f:	e8 6f 53 ff ff       	call   0x4037d3
40e464:	68 b0 07 45 00       	push   $0x4507b0
40e469:	57                   	push   %edi
40e46a:	e9 26 01 00 00       	jmp    0x40e595
40e46f:	33 c0                	xor    %eax,%eax
40e471:	89 45 0c             	mov    %eax,0xc(%ebp)
40e474:	39 43 0c             	cmp    %eax,0xc(%ebx)
40e477:	0f 86 03 01 00 00    	jbe    0x40e580
40e47d:	33 ff                	xor    %edi,%edi
40e47f:	89 7d e8             	mov    %edi,-0x18(%ebp)
40e482:	8b 73 08             	mov    0x8(%ebx),%esi
40e485:	03 f7                	add    %edi,%esi
40e487:	89 75 dc             	mov    %esi,-0x24(%ebp)
40e48a:	83 be 8c 00 00 00 03 	cmpl   $0x3,0x8c(%esi)
40e491:	0f 85 d3 00 00 00    	jne    0x40e56a
40e497:	8b 53 28             	mov    0x28(%ebx),%edx
40e49a:	8b 4b 20             	mov    0x20(%ebx),%ecx
40e49d:	03 d2                	add    %edx,%edx
40e49f:	8b 86 94 00 00 00    	mov    0x94(%esi),%eax
40e4a5:	89 04 d1             	mov    %eax,(%ecx,%edx,8)
40e4a8:	8b 4b 28             	mov    0x28(%ebx),%ecx
40e4ab:	8b 43 20             	mov    0x20(%ebx),%eax
40e4ae:	03 c9                	add    %ecx,%ecx
40e4b0:	c7 44 c8 04 02 00 00 	movl   $0x2,0x4(%eax,%ecx,8)
40e4b7:	00
40e4b8:	8b 4b 28             	mov    0x28(%ebx),%ecx
40e4bb:	8b 43 24             	mov    0x24(%ebx),%eax
40e4be:	89 34 88             	mov    %esi,(%eax,%ecx,4)
40e4c1:	33 c9                	xor    %ecx,%ecx
40e4c3:	ff 43 28             	incl   0x28(%ebx)
40e4c6:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40e4c9:	39 4b 0c             	cmp    %ecx,0xc(%ebx)
40e4cc:	0f 86 95 00 00 00    	jbe    0x40e567
40e4d2:	33 c0                	xor    %eax,%eax
40e4d4:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40e4d7:	8b 73 08             	mov    0x8(%ebx),%esi
40e4da:	03 f0                	add    %eax,%esi
40e4dc:	83 be 8c 00 00 00 02 	cmpl   $0x2,0x8c(%esi)
40e4e3:	75 6a                	jne    0x40e54f
40e4e5:	33 ff                	xor    %edi,%edi
40e4e7:	39 be d4 00 00 00    	cmp    %edi,0xd4(%esi)
40e4ed:	76 60                	jbe    0x40e54f
40e4ef:	8b 5d dc             	mov    -0x24(%ebp),%ebx
40e4f2:	8b 86 d0 00 00 00    	mov    0xd0(%esi),%eax
40e4f8:	83 3c b8 00          	cmpl   $0x0,(%eax,%edi,4)
40e4fc:	74 3f                	je     0x40e53d
40e4fe:	6a ff                	push   $0xffffffff
40e500:	ff 34 b8             	push   (%eax,%edi,4)
40e503:	6a ff                	push   $0xffffffff
40e505:	ff 33                	push   (%ebx)
40e507:	6a 00                	push   $0x0
40e509:	6a 7f                	push   $0x7f
40e50b:	ff 15 28 b1 44 00    	call   *0x44b128
40e511:	83 f8 02             	cmp    $0x2,%eax
40e514:	75 27                	jne    0x40e53d
40e516:	8b 86 cc 00 00 00    	mov    0xcc(%esi),%eax
40e51c:	89 1c b8             	mov    %ebx,(%eax,%edi,4)
40e51f:	8b 86 d0 00 00 00    	mov    0xd0(%esi),%eax
40e525:	83 3c b8 00          	cmpl   $0x0,(%eax,%edi,4)
40e529:	74 12                	je     0x40e53d
40e52b:	ff 34 b8             	push   (%eax,%edi,4)
40e52e:	e8 bc 6f 03 00       	call   0x4454ef
40e533:	8b 86 d0 00 00 00    	mov    0xd0(%esi),%eax
40e539:	83 24 b8 00          	andl   $0x0,(%eax,%edi,4)
40e53d:	47                   	inc    %edi
40e53e:	3b be d4 00 00 00    	cmp    0xd4(%esi),%edi
40e544:	72 ac                	jb     0x40e4f2
40e546:	8b 5d 08             	mov    0x8(%ebp),%ebx
40e549:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40e54c:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40e54f:	41                   	inc    %ecx
40e550:	05 e0 00 00 00       	add    $0xe0,%eax
40e555:	89 4d e0             	mov    %ecx,-0x20(%ebp)
40e558:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40e55b:	3b 4b 0c             	cmp    0xc(%ebx),%ecx
40e55e:	0f 82 73 ff ff ff    	jb     0x40e4d7
40e564:	8b 7d e8             	mov    -0x18(%ebp),%edi
40e567:	8b 45 0c             	mov    0xc(%ebp),%eax
40e56a:	40                   	inc    %eax
40e56b:	81 c7 e0 00 00 00    	add    $0xe0,%edi
40e571:	89 45 0c             	mov    %eax,0xc(%ebp)
40e574:	89 7d e8             	mov    %edi,-0x18(%ebp)
40e577:	3b 43 0c             	cmp    0xc(%ebx),%eax
40e57a:	0f 82 02 ff ff ff    	jb     0x40e482
40e580:	ff 75 10             	push   0x10(%ebp)
40e583:	53                   	push   %ebx
40e584:	e8 f5 f2 ff ff       	call   0x40d87e
40e589:	8b f0                	mov    %eax,%esi
40e58b:	85 f6                	test   %esi,%esi
40e58d:	79 74                	jns    0x40e603
40e58f:	68 fc 07 45 00       	push   $0x4507fc
40e594:	56                   	push   %esi
40e595:	e8 95 1b 03 00       	call   0x44012f
40e59a:	59                   	pop    %ecx
40e59b:	59                   	pop    %ecx
40e59c:	eb 67                	jmp    0x40e605
40e59e:	68 48 07 45 00       	push   $0x450748
40e5a3:	eb ef                	jmp    0x40e594
40e5a5:	68 24 07 45 00       	push   $0x450724
40e5aa:	eb e8                	jmp    0x40e594
40e5ac:	68 ec 01 45 00       	push   $0x4501ec
40e5b1:	eb e1                	jmp    0x40e594
40e5b3:	68 28 04 45 00       	push   $0x450428
40e5b8:	eb da                	jmp    0x40e594
40e5ba:	68 f8 03 45 00       	push   $0x4503f8
40e5bf:	eb d3                	jmp    0x40e594
40e5c1:	68 c4 03 45 00       	push   $0x4503c4
40e5c6:	eb cc                	jmp    0x40e594
40e5c8:	68 94 03 45 00       	push   $0x450394
40e5cd:	eb c5                	jmp    0x40e594
40e5cf:	68 70 03 45 00       	push   $0x450370
40e5d4:	eb be                	jmp    0x40e594
40e5d6:	ff 75 f4             	push   -0xc(%ebp)
40e5d9:	be ff ff 00 80       	mov    $0x8000ffff,%esi
40e5de:	68 30 03 45 00       	push   $0x450330
40e5e3:	56                   	push   %esi
40e5e4:	e8 46 1b 03 00       	call   0x44012f
40e5e9:	83 c4 0c             	add    $0xc,%esp
40e5ec:	eb 17                	jmp    0x40e605
40e5ee:	68 48 03 45 00       	push   $0x450348
40e5f3:	eb 9f                	jmp    0x40e594
40e5f5:	68 6c ca 44 00       	push   $0x44ca6c
40e5fa:	eb 98                	jmp    0x40e594
40e5fc:	68 48 ca 44 00       	push   $0x44ca48
40e601:	eb 91                	jmp    0x40e594
40e603:	33 f6                	xor    %esi,%esi
40e605:	5f                   	pop    %edi
40e606:	5b                   	pop    %ebx
40e607:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e60a:	85 c9                	test   %ecx,%ecx
40e60c:	74 06                	je     0x40e614
40e60e:	8b 01                	mov    (%ecx),%eax
40e610:	51                   	push   %ecx
40e611:	ff 50 08             	call   *0x8(%eax)
40e614:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e617:	85 c9                	test   %ecx,%ecx
40e619:	74 06                	je     0x40e621
40e61b:	8b 01                	mov    (%ecx),%eax
40e61d:	51                   	push   %ecx
40e61e:	ff 50 08             	call   *0x8(%eax)
40e621:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
40e625:	74 09                	je     0x40e630
40e627:	ff 75 f8             	push   -0x8(%ebp)
40e62a:	ff 15 20 b3 44 00    	call   *0x44b320
40e630:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
40e634:	74 08                	je     0x40e63e
40e636:	ff 75 f4             	push   -0xc(%ebp)
40e639:	e8 b1 6e 03 00       	call   0x4454ef
40e63e:	8b c6                	mov    %esi,%eax
40e640:	5e                   	pop    %esi
40e641:	8b e5                	mov    %ebp,%esp
40e643:	5d                   	pop    %ebp
40e644:	c2 0c 00             	ret    $0xc
40e647:	55                   	push   %ebp
40e648:	8b ec                	mov    %esp,%ebp
40e64a:	53                   	push   %ebx
40e64b:	56                   	push   %esi
40e64c:	8b 75 08             	mov    0x8(%ebp),%esi
40e64f:	33 db                	xor    %ebx,%ebx
40e651:	57                   	push   %edi
40e652:	39 1e                	cmp    %ebx,(%esi)
40e654:	74 23                	je     0x40e679
40e656:	8b fb                	mov    %ebx,%edi
40e658:	39 5e 04             	cmp    %ebx,0x4(%esi)
40e65b:	76 15                	jbe    0x40e672
40e65d:	8b 06                	mov    (%esi),%eax
40e65f:	39 1c f8             	cmp    %ebx,(%eax,%edi,8)
40e662:	74 08                	je     0x40e66c
40e664:	ff 34 f8             	push   (%eax,%edi,8)
40e667:	e8 83 6e 03 00       	call   0x4454ef
40e66c:	47                   	inc    %edi
40e66d:	3b 7e 04             	cmp    0x4(%esi),%edi
40e670:	72 eb                	jb     0x40e65d
40e672:	ff 36                	push   (%esi)
40e674:	e8 20 53 ff ff       	call   0x403999
40e679:	39 5e 08             	cmp    %ebx,0x8(%esi)
40e67c:	74 28                	je     0x40e6a6
40e67e:	8b fb                	mov    %ebx,%edi
40e680:	39 5e 0c             	cmp    %ebx,0xc(%esi)
40e683:	76 19                	jbe    0x40e69e
40e685:	8b 46 08             	mov    0x8(%esi),%eax
40e688:	03 c3                	add    %ebx,%eax
40e68a:	50                   	push   %eax
40e68b:	e8 b4 f6 ff ff       	call   0x40dd44
40e690:	47                   	inc    %edi
40e691:	81 c3 e0 00 00 00    	add    $0xe0,%ebx
40e697:	3b 7e 0c             	cmp    0xc(%esi),%edi
40e69a:	72 e9                	jb     0x40e685
40e69c:	33 db                	xor    %ebx,%ebx
40e69e:	ff 76 08             	push   0x8(%esi)
40e6a1:	e8 f3 52 ff ff       	call   0x403999
40e6a6:	39 5e 10             	cmp    %ebx,0x10(%esi)
40e6a9:	74 28                	je     0x40e6d3
40e6ab:	8b fb                	mov    %ebx,%edi
40e6ad:	39 5e 14             	cmp    %ebx,0x14(%esi)
40e6b0:	76 19                	jbe    0x40e6cb
40e6b2:	8b 46 10             	mov    0x10(%esi),%eax
40e6b5:	03 c3                	add    %ebx,%eax
40e6b7:	50                   	push   %eax
40e6b8:	e8 87 f6 ff ff       	call   0x40dd44
40e6bd:	47                   	inc    %edi
40e6be:	81 c3 e0 00 00 00    	add    $0xe0,%ebx
40e6c4:	3b 7e 14             	cmp    0x14(%esi),%edi
40e6c7:	72 e9                	jb     0x40e6b2
40e6c9:	33 db                	xor    %ebx,%ebx
40e6cb:	ff 76 10             	push   0x10(%esi)
40e6ce:	e8 c6 52 ff ff       	call   0x403999
40e6d3:	39 5e 18             	cmp    %ebx,0x18(%esi)
40e6d6:	74 26                	je     0x40e6fe
40e6d8:	8b fb                	mov    %ebx,%edi
40e6da:	39 5e 1c             	cmp    %ebx,0x1c(%esi)
40e6dd:	76 17                	jbe    0x40e6f6
40e6df:	8b 46 18             	mov    0x18(%esi),%eax
40e6e2:	83 3c f8 00          	cmpl   $0x0,(%eax,%edi,8)
40e6e6:	74 08                	je     0x40e6f0
40e6e8:	ff 34 f8             	push   (%eax,%edi,8)
40e6eb:	e8 ff 6d 03 00       	call   0x4454ef
40e6f0:	47                   	inc    %edi
40e6f1:	3b 7e 1c             	cmp    0x1c(%esi),%edi
40e6f4:	72 e9                	jb     0x40e6df
40e6f6:	ff 76 18             	push   0x18(%esi)
40e6f9:	e8 9b 52 ff ff       	call   0x403999
40e6fe:	83 7e 20 00          	cmpl   $0x0,0x20(%esi)
40e702:	74 08                	je     0x40e70c
40e704:	ff 76 20             	push   0x20(%esi)
40e707:	e8 8d 52 ff ff       	call   0x403999
40e70c:	83 7e 24 00          	cmpl   $0x0,0x24(%esi)
40e710:	74 08                	je     0x40e71a
40e712:	ff 76 24             	push   0x24(%esi)
40e715:	e8 7f 52 ff ff       	call   0x403999
40e71a:	6a 2c                	push   $0x2c
40e71c:	53                   	push   %ebx
40e71d:	56                   	push   %esi
40e71e:	e8 4d 0f 02 00       	call   0x42f670
40e723:	83 c4 0c             	add    $0xc,%esp
40e726:	5f                   	pop    %edi
40e727:	5e                   	pop    %esi
40e728:	5b                   	pop    %ebx
40e729:	5d                   	pop    %ebp
40e72a:	c2 04 00             	ret    $0x4
40e72d:	55                   	push   %ebp
40e72e:	8b ec                	mov    %esp,%ebp
40e730:	51                   	push   %ecx
40e731:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e735:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e738:	56                   	push   %esi
40e739:	50                   	push   %eax
40e73a:	68 08 0a 45 00       	push   $0x450a08
40e73f:	ff 75 0c             	push   0xc(%ebp)
40e742:	e8 43 51 03 00       	call   0x44388a
40e747:	8b f0                	mov    %eax,%esi
40e749:	83 fe 01             	cmp    $0x1,%esi
40e74c:	75 04                	jne    0x40e752
40e74e:	33 f6                	xor    %esi,%esi
40e750:	eb 32                	jmp    0x40e784
40e752:	85 f6                	test   %esi,%esi
40e754:	79 07                	jns    0x40e75d
40e756:	68 18 0a 45 00       	push   $0x450a18
40e75b:	eb 1f                	jmp    0x40e77c
40e75d:	8b 45 08             	mov    0x8(%ebp),%eax
40e760:	83 c0 04             	add    $0x4,%eax
40e763:	50                   	push   %eax