40f53f:	50                   	push   %eax
40f540:	ff 15 c4 96 43 00    	call   *0x4396c4
40f546:	5d                   	pop    %ebp
40f547:	c3                   	ret
40f548:	90                   	nop
40f549:	90                   	nop
40f54a:	90                   	nop
40f54b:	90                   	nop
40f54c:	90                   	nop
40f54d:	90                   	nop
40f54e:	90                   	nop
40f54f:	90                   	nop
40f550:	55                   	push   %ebp
40f551:	8b ec                	mov    %esp,%ebp
40f553:	8b 45 08             	mov    0x8(%ebp),%eax
40f556:	3d 30 42 43 00       	cmp    $0x434230,%eax
40f55b:	72 1d                	jb     0x40f57a
40f55d:	3d 90 44 43 00       	cmp    $0x434490,%eax
40f562:	77 16                	ja     0x40f57a
40f564:	2d 30 42 43 00       	sub    $0x434230,%eax
40f569:	c1 f8 05             	sar    $0x5,%eax
40f56c:	83 c0 1c             	add    $0x1c,%eax
40f56f:	50                   	push   %eax
40f570:	e8 4b ff ff ff       	call   0x40f4c0
40f575:	83 c4 04             	add    $0x4,%esp
40f578:	5d                   	pop    %ebp
40f579:	c3                   	ret
40f57a:	83 c0 20             	add    $0x20,%eax
40f57d:	50                   	push   %eax
40f57e:	ff 15 cc 96 43 00    	call   *0x4396cc
40f584:	5d                   	pop    %ebp
40f585:	c3                   	ret
40f586:	90                   	nop
40f587:	90                   	nop
40f588:	90                   	nop
40f589:	90                   	nop
40f58a:	90                   	nop
40f58b:	90                   	nop
40f58c:	90                   	nop
40f58d:	90                   	nop
40f58e:	90                   	nop
40f58f:	90                   	nop
40f590:	55                   	push   %ebp
40f591:	8b ec                	mov    %esp,%ebp
40f593:	8b 45 08             	mov    0x8(%ebp),%eax
40f596:	83 f8 14             	cmp    $0x14,%eax
40f599:	7d 0e                	jge    0x40f5a9
40f59b:	83 c0 1c             	add    $0x1c,%eax
40f59e:	50                   	push   %eax
40f59f:	e8 1c ff ff ff       	call   0x40f4c0
40f5a4:	83 c4 04             	add    $0x4,%esp
40f5a7:	5d                   	pop    %ebp
40f5a8:	c3                   	ret
40f5a9:	8b 45 0c             	mov    0xc(%ebp),%eax
40f5ac:	83 c0 20             	add    $0x20,%eax
40f5af:	50                   	push   %eax
40f5b0:	ff 15 cc 96 43 00    	call   *0x4396cc
40f5b6:	5d                   	pop    %ebp
40f5b7:	c3                   	ret
40f5b8:	90                   	nop
40f5b9:	90                   	nop
40f5ba:	90                   	nop
40f5bb:	90                   	nop
40f5bc:	90                   	nop
40f5bd:	90                   	nop
40f5be:	90                   	nop
40f5bf:	90                   	nop
40f5c0:	56                   	push   %esi
40f5c1:	8b 74 24 08          	mov    0x8(%esp),%esi
40f5c5:	8b 06                	mov    (%esi),%eax
40f5c7:	81 38 63 73 6d e0    	cmpl   $0xe06d7363,(%eax)
40f5cd:	75 1d                	jne    0x40f5ec
40f5cf:	83 78 10 03          	cmpl   $0x3,0x10(%eax)
40f5d3:	75 17                	jne    0x40f5ec
40f5d5:	81 78 14 20 05 93 19 	cmpl   $0x19930520,0x14(%eax)
40f5dc:	75 0e                	jne    0x40f5ec
40f5de:	e8 7d ed ff ff       	call   0x40e360
40f5e3:	b8 01 00 00 00       	mov    $0x1,%eax
40f5e8:	5e                   	pop    %esi
40f5e9:	c2 04 00             	ret    $0x4
40f5ec:	a1 50 73 43 00       	mov    0x437350,%eax
40f5f1:	85 c0                	test   %eax,%eax
40f5f3:	74 18                	je     0x40f60d
40f5f5:	50                   	push   %eax
40f5f6:	e8 65 14 00 00       	call   0x410a60
40f5fb:	83 c4 04             	add    $0x4,%esp
40f5fe:	85 c0                	test   %eax,%eax
40f600:	74 0b                	je     0x40f60d
40f602:	56                   	push   %esi
40f603:	ff 15 50 73 43 00    	call   *0x437350
40f609:	5e                   	pop    %esi
40f60a:	c2 04 00             	ret    $0x4
40f60d:	33 c0                	xor    %eax,%eax
40f60f:	5e                   	pop    %esi
40f610:	c2 04 00             	ret    $0x4
40f613:	90                   	nop
40f614:	90                   	nop
40f615:	90                   	nop
40f616:	90                   	nop
40f617:	90                   	nop
40f618:	90                   	nop
40f619:	90                   	nop
40f61a:	90                   	nop
40f61b:	90                   	nop
40f61c:	90                   	nop
40f61d:	90                   	nop
40f61e:	90                   	nop
40f61f:	90                   	nop
40f620:	68 c0 f5 40 00       	push   $0x40f5c0
40f625:	ff 15 78 97 43 00    	call   *0x439778
40f62b:	a3 50 73 43 00       	mov    %eax,0x437350
40f630:	c3                   	ret
40f631:	90                   	nop
40f632:	90                   	nop
40f633:	90                   	nop
40f634:	90                   	nop
40f635:	90                   	nop
40f636:	90                   	nop
40f637:	90                   	nop
40f638:	90                   	nop
40f639:	90                   	nop
40f63a:	90                   	nop
40f63b:	90                   	nop
40f63c:	90                   	nop
40f63d:	90                   	nop
40f63e:	90                   	nop
40f63f:	90                   	nop
40f640:	a1 50 73 43 00       	mov    0x437350,%eax
40f645:	50                   	push   %eax
40f646:	ff 15 78 97 43 00    	call   *0x439778
40f64c:	c3                   	ret
40f64d:	90                   	nop
40f64e:	90                   	nop
40f64f:	90                   	nop
40f650:	a1 58 73 43 00       	mov    0x437358,%eax
40f655:	85 c0                	test   %eax,%eax
40f657:	74 14                	je     0x40f66d
40f659:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40f65d:	51                   	push   %ecx
40f65e:	ff d0                	call   *%eax
40f660:	83 c4 04             	add    $0x4,%esp
40f663:	85 c0                	test   %eax,%eax
40f665:	74 06                	je     0x40f66d
40f667:	b8 01 00 00 00       	mov    $0x1,%eax
40f66c:	c3                   	ret
40f66d:	33 c0                	xor    %eax,%eax
40f66f:	c3                   	ret
40f670:	a1 70 1f 43 00       	mov    0x431f70,%eax
40f675:	55                   	push   %ebp
40f676:	56                   	push   %esi
40f677:	83 f8 ff             	cmp    $0xffffffff,%eax
40f67a:	57                   	push   %edi
40f67b:	75 07                	jne    0x40f684
40f67d:	bd 60 1f 43 00       	mov    $0x431f60,%ebp
40f682:	eb 1d                	jmp    0x40f6a1
40f684:	a1 8c 89 43 00       	mov    0x43898c,%eax
40f689:	68 20 20 00 00       	push   $0x2020
40f68e:	6a 00                	push   $0x0
40f690:	50                   	push   %eax
40f691:	ff 15 58 96 43 00    	call   *0x439658
40f697:	8b e8                	mov    %eax,%ebp
40f699:	85 ed                	test   %ebp,%ebp
40f69b:	0f 84 2b 01 00 00    	je     0x40f7cc
40f6a1:	8b 3d 20 96 43 00    	mov    0x439620,%edi
40f6a7:	6a 04                	push   $0x4
40f6a9:	68 00 20 00 00       	push   $0x2000
40f6ae:	68 00 00 40 00       	push   $0x400000
40f6b3:	6a 00                	push   $0x0
40f6b5:	ff d7                	call   *%edi
40f6b7:	8b f0                	mov    %eax,%esi
40f6b9:	85 f6                	test   %esi,%esi
40f6bb:	0f 84 f4 00 00 00    	je     0x40f7b5
40f6c1:	6a 04                	push   $0x4
40f6c3:	68 00 10 00 00       	push   $0x1000
40f6c8:	68 00 00 01 00       	push   $0x10000
40f6cd:	56                   	push   %esi
40f6ce:	ff d7                	call   *%edi
40f6d0:	85 c0                	test   %eax,%eax
40f6d2:	0f 84 cf 00 00 00    	je     0x40f7a7
40f6d8:	81 fd 60 1f 43 00    	cmp    $0x431f60,%ebp
40f6de:	75 28                	jne    0x40f708
40f6e0:	a1 60 1f 43 00       	mov    0x431f60,%eax
40f6e5:	85 c0                	test   %eax,%eax
40f6e7:	75 0a                	jne    0x40f6f3
40f6e9:	c7 05 60 1f 43 00 60 	movl   $0x431f60,0x431f60
40f6f0:	1f 43 00
40f6f3:	a1 64 1f 43 00       	mov    0x431f64,%eax
40f6f8:	85 c0                	test   %eax,%eax
40f6fa:	75 27                	jne    0x40f723
40f6fc:	c7 05 64 1f 43 00 60 	movl   $0x431f60,0x431f64
40f703:	1f 43 00
40f706:	eb 1b                	jmp    0x40f723
40f708:	c7 45 00 60 1f 43 00 	movl   $0x431f60,0x0(%ebp)
40f70f:	8b 0d 64 1f 43 00    	mov    0x431f64,%ecx
40f715:	89 4d 04             	mov    %ecx,0x4(%ebp)
40f718:	89 2d 64 1f 43 00    	mov    %ebp,0x431f64
40f71e:	8b 55 04             	mov    0x4(%ebp),%edx
40f721:	89 2a                	mov    %ebp,(%edx)
40f723:	8d 86 00 00 40 00    	lea    0x400000(%esi),%eax
40f729:	8d 4d 18             	lea    0x18(%ebp),%ecx
40f72c:	8d 95 98 00 00 00    	lea    0x98(%ebp),%edx
40f732:	89 45 14             	mov    %eax,0x14(%ebp)
40f735:	89 75 10             	mov    %esi,0x10(%ebp)
40f738:	89 4d 08             	mov    %ecx,0x8(%ebp)
40f73b:	89 55 0c             	mov    %edx,0xc(%ebp)
40f73e:	33 c0                	xor    %eax,%eax
40f740:	bf f1 00 00 00       	mov    $0xf1,%edi
40f745:	33 d2                	xor    %edx,%edx
40f747:	83 f8 10             	cmp    $0x10,%eax
40f74a:	0f 9d c2             	setge  %dl
40f74d:	4a                   	dec    %edx
40f74e:	83 c1 08             	add    $0x8,%ecx
40f751:	23 d7                	and    %edi,%edx
40f753:	4a                   	dec    %edx
40f754:	40                   	inc    %eax
40f755:	89 51 f8             	mov    %edx,-0x8(%ecx)
40f758:	89 79 fc             	mov    %edi,-0x4(%ecx)
40f75b:	3d 00 04 00 00       	cmp    $0x400,%eax
40f760:	7c e3                	jl     0x40f745
40f762:	b9 00 40 00 00       	mov    $0x4000,%ecx
40f767:	33 c0                	xor    %eax,%eax
40f769:	8b fe                	mov    %esi,%edi
40f76b:	f3 ab                	rep stos %eax,%es:(%edi)
40f76d:	8b 45 10             	mov    0x10(%ebp),%eax
40f770:	05 00 00 01 00       	add    $0x10000,%eax
40f775:	3b f0                	cmp    %eax,%esi
40f777:	73 28                	jae    0x40f7a1
40f779:	b9 f0 00 00 00       	mov    $0xf0,%ecx
40f77e:	b0 ff                	mov    $0xff,%al
40f780:	8d 56 08             	lea    0x8(%esi),%edx
40f783:	89 4e 04             	mov    %ecx,0x4(%esi)
40f786:	89 16                	mov    %edx,(%esi)
40f788:	88 86 f8 00 00 00    	mov    %al,0xf8(%esi)
40f78e:	8b 55 10             	mov    0x10(%ebp),%edx
40f791:	81 c6 00 10 00 00    	add    $0x1000,%esi
40f797:	81 c2 00 00 01 00    	add    $0x10000,%edx
40f79d:	3b f2                	cmp    %edx,%esi
40f79f:	72 df                	jb     0x40f780
40f7a1:	8b c5                	mov    %ebp,%eax
40f7a3:	5f                   	pop    %edi
40f7a4:	5e                   	pop    %esi
40f7a5:	5d                   	pop    %ebp
40f7a6:	c3                   	ret
40f7a7:	68 00 80 00 00       	push   $0x8000
40f7ac:	6a 00                	push   $0x0
40f7ae:	56                   	push   %esi
40f7af:	ff 15 18 96 43 00    	call   *0x439618
40f7b5:	81 fd 60 1f 43 00    	cmp    $0x431f60,%ebp
40f7bb:	74 0f                	je     0x40f7cc
40f7bd:	a1 8c 89 43 00       	mov    0x43898c,%eax
40f7c2:	55                   	push   %ebp
40f7c3:	6a 00                	push   $0x0
40f7c5:	50                   	push   %eax
40f7c6:	ff 15 54 96 43 00    	call   *0x439654
40f7cc:	5f                   	pop    %edi
40f7cd:	5e                   	pop    %esi
40f7ce:	33 c0                	xor    %eax,%eax
40f7d0:	5d                   	pop    %ebp
40f7d1:	c3                   	ret
40f7d2:	90                   	nop
40f7d3:	90                   	nop
40f7d4:	90                   	nop
40f7d5:	90                   	nop
40f7d6:	90                   	nop
40f7d7:	90                   	nop
40f7d8:	90                   	nop
40f7d9:	90                   	nop
40f7da:	90                   	nop
40f7db:	90                   	nop
40f7dc:	90                   	nop
40f7dd:	90                   	nop
40f7de:	90                   	nop
40f7df:	90                   	nop
40f7e0:	56                   	push   %esi
40f7e1:	8b 74 24 08          	mov    0x8(%esp),%esi
40f7e5:	68 00 80 00 00       	push   $0x8000
40f7ea:	6a 00                	push   $0x0
40f7ec:	8b 46 10             	mov    0x10(%esi),%eax
40f7ef:	50                   	push   %eax
40f7f0:	ff 15 18 96 43 00    	call   *0x439618
40f7f6:	39 35 80 3f 43 00    	cmp    %esi,0x433f80
40f7fc:	75 09                	jne    0x40f807
40f7fe:	8b 4e 04             	mov    0x4(%esi),%ecx
40f801:	89 0d 80 3f 43 00    	mov    %ecx,0x433f80
40f807:	81 fe 60 1f 43 00    	cmp    $0x431f60,%esi
40f80d:	74 20                	je     0x40f82f
40f80f:	8b 56 04             	mov    0x4(%esi),%edx
40f812:	8b 06                	mov    (%esi),%eax
40f814:	56                   	push   %esi
40f815:	6a 00                	push   $0x0
40f817:	89 02                	mov    %eax,(%edx)
40f819:	8b 0e                	mov    (%esi),%ecx
40f81b:	8b 56 04             	mov    0x4(%esi),%edx
40f81e:	89 51 04             	mov    %edx,0x4(%ecx)
40f821:	a1 8c 89 43 00       	mov    0x43898c,%eax
40f826:	50                   	push   %eax
40f827:	ff 15 54 96 43 00    	call   *0x439654
40f82d:	5e                   	pop    %esi
40f82e:	c3                   	ret
40f82f:	c7 05 70 1f 43 00 ff 	movl   $0xffffffff,0x431f70
40f836:	ff ff ff
40f839:	5e                   	pop    %esi
40f83a:	c3                   	ret
40f83b:	90                   	nop
40f83c:	90                   	nop
40f83d:	90                   	nop
40f83e:	90                   	nop
40f83f:	90                   	nop
40f840:	53                   	push   %ebx
40f841:	55                   	push   %ebp
40f842:	56                   	push   %esi
40f843:	57                   	push   %edi
40f844:	8b 3d 64 1f 43 00    	mov    0x431f64,%edi
40f84a:	83 7f 10 ff          	cmpl   $0xffffffff,0x10(%edi)
40f84e:	0f 84 a0 00 00 00    	je     0x40f8f4
40f854:	33 ed                	xor    %ebp,%ebp
40f856:	8d b7 10 20 00 00    	lea    0x2010(%edi),%esi
40f85c:	bb 00 f0 3f 00       	mov    $0x3ff000,%ebx
40f861:	81 3e f0 00 00 00    	cmpl   $0xf0,(%esi)
40f867:	75 47                	jne    0x40f8b0
40f869:	8b 47 10             	mov    0x10(%edi),%eax
40f86c:	68 00 40 00 00       	push   $0x4000
40f871:	03 c3                	add    %ebx,%eax
40f873:	68 00 10 00 00       	push   $0x1000
40f878:	50                   	push   %eax
40f879:	ff 15 18 96 43 00    	call   *0x439618
40f87f:	85 c0                	test   %eax,%eax
40f881:	74 2d                	je     0x40f8b0
40f883:	c7 06 ff ff ff ff    	movl   $0xffffffff,(%esi)
40f889:	8b 15 5c 73 43 00    	mov    0x43735c,%edx
40f88f:	4a                   	dec    %edx
40f890:	89 15 5c 73 43 00    	mov    %edx,0x43735c
40f896:	8b 47 0c             	mov    0xc(%edi),%eax
40f899:	85 c0                	test   %eax,%eax
40f89b:	74 04                	je     0x40f8a1
40f89d:	3b c6                	cmp    %esi,%eax
40f89f:	76 03                	jbe    0x40f8a4
40f8a1:	89 77 0c             	mov    %esi,0xc(%edi)
40f8a4:	8b 44 24 14          	mov    0x14(%esp),%eax
40f8a8:	45                   	inc    %ebp
40f8a9:	48                   	dec    %eax
40f8aa:	89 44 24 14          	mov    %eax,0x14(%esp)
40f8ae:	74 0d                	je     0x40f8bd
40f8b0:	81 eb 00 10 00 00    	sub    $0x1000,%ebx
40f8b6:	83 ee 08             	sub    $0x8,%esi
40f8b9:	85 db                	test   %ebx,%ebx
40f8bb:	7d a4                	jge    0x40f861
40f8bd:	8b d7                	mov    %edi,%edx
40f8bf:	8b 7f 04             	mov    0x4(%edi),%edi
40f8c2:	85 ed                	test   %ebp,%ebp