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
40f6bf:	50                   	push   %eax
40f6c0:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40f6c3:	e8 58 28 ff ff       	call   0x401f20
40f6c8:	8b f0                	mov    %eax,%esi
40f6ca:	83 c4 0c             	add    $0xc,%esp
40f6cd:	85 f6                	test   %esi,%esi
40f6cf:	79 12                	jns    0x40f6e3
40f6d1:	68 08 16 45 00       	push   $0x451608
40f6d6:	56                   	push   %esi
40f6d7:	e8 53 0a 03 00       	call   0x44012f
40f6dc:	59                   	pop    %ecx
40f6dd:	59                   	pop    %ecx
40f6de:	e9 dc 00 00 00       	jmp    0x40f7bf
40f6e3:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f6e6:	50                   	push   %eax
40f6e7:	6a 01                	push   $0x1
40f6e9:	ff 75 f4             	push   -0xc(%ebp)
40f6ec:	ff 77 4c             	push   0x4c(%edi)
40f6ef:	e8 4b 17 03 00       	call   0x440e3f
40f6f4:	85 c0                	test   %eax,%eax
40f6f6:	78 0e                	js     0x40f706
40f6f8:	8b 45 0c             	mov    0xc(%ebp),%eax
40f6fb:	c7 00 03 00 00 00    	movl   $0x3,(%eax)
40f701:	e9 b7 00 00 00       	jmp    0x40f7bd
40f706:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f709:	50                   	push   %eax
40f70a:	6a 01                	push   $0x1
40f70c:	ff 77 50             	push   0x50(%edi)
40f70f:	ff 77 4c             	push   0x4c(%edi)
40f712:	e8 28 17 03 00       	call   0x440e3f
40f717:	8b f0                	mov    %eax,%esi
40f719:	bf 02 00 07 80       	mov    $0x80070002,%edi
40f71e:	3b f7                	cmp    %edi,%esi
40f720:	0f 84 92 00 00 00    	je     0x40f7b8
40f726:	81 fe 03 00 07 80    	cmp    $0x80070003,%esi
40f72c:	0f 84 86 00 00 00    	je     0x40f7b8
40f732:	85 f6                	test   %esi,%esi
40f734:	79 07                	jns    0x40f73d
40f736:	68 40 16 45 00       	push   $0x451640
40f73b:	eb 99                	jmp    0x40f6d6
40f73d:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f740:	50                   	push   %eax
40f741:	68 64 16 45 00       	push   $0x451664
40f746:	ff 75 fc             	push   -0x4(%ebp)
40f749:	e8 9e 17 03 00       	call   0x440eec
40f74e:	8b f0                	mov    %eax,%esi
40f750:	3b f7                	cmp    %edi,%esi
40f752:	75 0b                	jne    0x40f75f
40f754:	8b 45 0c             	mov    0xc(%ebp),%eax
40f757:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40f75d:	eb 5e                	jmp    0x40f7bd
40f75f:	85 f6                	test   %esi,%esi
40f761:	79 0a                	jns    0x40f76d
40f763:	68 74 16 45 00       	push   $0x451674
40f768:	e9 69 ff ff ff       	jmp    0x40f6d6
40f76d:	8b 45 f0             	mov    -0x10(%ebp),%eax
40f770:	83 e8 01             	sub    $0x1,%eax
40f773:	74 38                	je     0x40f7ad
40f775:	83 e8 01             	sub    $0x1,%eax
40f778:	74 28                	je     0x40f7a2
40f77a:	83 e8 01             	sub    $0x1,%eax
40f77d:	74 18                	je     0x40f797
40f77f:	83 e8 01             	sub    $0x1,%eax
40f782:	8b 45 0c             	mov    0xc(%ebp),%eax
40f785:	74 08                	je     0x40f78f
40f787:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40f78d:	eb 30                	jmp    0x40f7bf
40f78f:	c7 00 04 00 00 00    	movl   $0x4,(%eax)
40f795:	eb 28                	jmp    0x40f7bf
40f797:	8b 45 0c             	mov    0xc(%ebp),%eax
40f79a:	c7 00 06 00 00 00    	movl   $0x6,(%eax)
40f7a0:	eb 1d                	jmp    0x40f7bf
40f7a2:	8b 45 0c             	mov    0xc(%ebp),%eax
40f7a5:	c7 00 05 00 00 00    	movl   $0x5,(%eax)
40f7ab:	eb 12                	jmp    0x40f7bf
40f7ad:	8b 45 0c             	mov    0xc(%ebp),%eax
40f7b0:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
40f7b6:	eb 07                	jmp    0x40f7bf
40f7b8:	8b 45 0c             	mov    0xc(%ebp),%eax
40f7bb:	89 18                	mov    %ebx,(%eax)
40f7bd:	8b f3                	mov    %ebx,%esi
40f7bf:	8b 3d 00 b0 44 00    	mov    0x44b000,%edi
40f7c5:	39 5d fc             	cmp    %ebx,-0x4(%ebp)
40f7c8:	74 08                	je     0x40f7d2
40f7ca:	ff 75 fc             	push   -0x4(%ebp)
40f7cd:	ff d7                	call   *%edi
40f7cf:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40f7d2:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
40f7d5:	74 08                	je     0x40f7df
40f7d7:	ff 75 f8             	push   -0x8(%ebp)
40f7da:	ff d7                	call   *%edi
40f7dc:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40f7df:	39 5d f4             	cmp    %ebx,-0xc(%ebp)
40f7e2:	74 08                	je     0x40f7ec
40f7e4:	ff 75 f4             	push   -0xc(%ebp)
40f7e7:	e8 03 5d 03 00       	call   0x4454ef
40f7ec:	5f                   	pop    %edi
40f7ed:	8b c6                	mov    %esi,%eax
40f7ef:	5e                   	pop    %esi
40f7f0:	5b                   	pop    %ebx
40f7f1:	8b e5                	mov    %ebp,%esp
40f7f3:	5d                   	pop    %ebp
40f7f4:	c2 08 00             	ret    $0x8
40f7f7:	55                   	push   %ebp
40f7f8:	8b ec                	mov    %esp,%ebp
40f7fa:	51                   	push   %ecx
40f7fb:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40f7ff:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f802:	56                   	push   %esi
40f803:	50                   	push   %eax
40f804:	8b 45 08             	mov    0x8(%ebp),%eax
40f807:	6a 01                	push   $0x1
40f809:	ff 70 50             	push   0x50(%eax)
40f80c:	ff 70 4c             	push   0x4c(%eax)
40f80f:	e8 2b 16 03 00       	call   0x440e3f
40f814:	8b f0                	mov    %eax,%esi
40f816:	85 f6                	test   %esi,%esi
40f818:	78 12                	js     0x40f82c
40f81a:	ff 75 0c             	push   0xc(%ebp)
40f81d:	68 7c 0f 45 00       	push   $0x450f7c
40f822:	ff 75 fc             	push   -0x4(%ebp)
40f825:	e8 44 17 03 00       	call   0x440f6e
40f82a:	8b f0                	mov    %eax,%esi
40f82c:	81 fe 02 00 07 80    	cmp    $0x80070002,%esi
40f832:	74 08                	je     0x40f83c
40f834:	81 fe 03 00 07 80    	cmp    $0x80070003,%esi
40f83a:	75 02                	jne    0x40f83e
40f83c:	33 f6                	xor    %esi,%esi
40f83e:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
40f842:	74 09                	je     0x40f84d
40f844:	ff 75 fc             	push   -0x4(%ebp)
40f847:	ff 15 00 b0 44 00    	call   *0x44b000
40f84d:	8b c6                	mov    %esi,%eax
40f84f:	5e                   	pop    %esi
40f850:	8b e5                	mov    %ebp,%esp
40f852:	5d                   	pop    %ebp
40f853:	c2 08 00             	ret    $0x8
40f856:	55                   	push   %ebp
40f857:	8b ec                	mov    %esp,%ebp
40f859:	8b 45 08             	mov    0x8(%ebp),%eax
40f85c:	ff 70 5c             	push   0x5c(%eax)
40f85f:	ff 75 10             	push   0x10(%ebp)
40f862:	ff 75 0c             	push   0xc(%ebp)
40f865:	e8 20 4b 03 00       	call   0x44438a
40f86a:	5d                   	pop    %ebp
40f86b:	c2 0c 00             	ret    $0xc
40f86e:	55                   	push   %ebp
40f86f:	8b ec                	mov    %esp,%ebp
40f871:	83 ec 10             	sub    $0x10,%esp
40f874:	33 c0                	xor    %eax,%eax
40f876:	53                   	push   %ebx
40f877:	56                   	push   %esi
40f878:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f87b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f87e:	89 45 f0             	mov    %eax,-0x10(%ebp)
40f881:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f884:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f887:	50                   	push   %eax
40f888:	68 bc 0f 45 00       	push   $0x450fbc
40f88d:	ff 75 0c             	push   0xc(%ebp)
40f890:	e8 f5 3f 03 00       	call   0x44388a
40f895:	8b f0                	mov    %eax,%esi
40f897:	bb 90 04 07 80       	mov    $0x80070490,%ebx
40f89c:	83 fe 01             	cmp    $0x1,%esi
40f89f:	0f 44 f3             	cmove  %ebx,%esi
40f8a2:	85 f6                	test   %esi,%esi
40f8a4:	79 12                	jns    0x40f8b8
40f8a6:	68 d8 0f 45 00       	push   $0x450fd8
40f8ab:	56                   	push   %esi
40f8ac:	e8 7e 08 03 00       	call   0x44012f
40f8b1:	59                   	pop    %ecx
40f8b2:	59                   	pop    %ecx
40f8b3:	e9 e8 04 00 00       	jmp    0x40fda0
40f8b8:	57                   	push   %edi
40f8b9:	8b 7d 08             	mov    0x8(%ebp),%edi