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
40f8c4:	74 2e                	je     0x40f8f4
40f8c6:	83 7a 18 ff          	cmpl   $0xffffffff,0x18(%edx)
40f8ca:	75 28                	jne    0x40f8f4
40f8cc:	b8 01 00 00 00       	mov    $0x1,%eax
40f8d1:	8d 4a 20             	lea    0x20(%edx),%ecx
40f8d4:	83 39 ff             	cmpl   $0xffffffff,(%ecx)
40f8d7:	75 0b                	jne    0x40f8e4
40f8d9:	40                   	inc    %eax
40f8da:	83 c1 08             	add    $0x8,%ecx
40f8dd:	3d 00 04 00 00       	cmp    $0x400,%eax
40f8e2:	7c f0                	jl     0x40f8d4
40f8e4:	3d 00 04 00 00       	cmp    $0x400,%eax
40f8e9:	75 09                	jne    0x40f8f4
40f8eb:	52                   	push   %edx
40f8ec:	e8 ef fe ff ff       	call   0x40f7e0
40f8f1:	83 c4 04             	add    $0x4,%esp
40f8f4:	3b 3d 64 1f 43 00    	cmp    0x431f64,%edi
40f8fa:	74 0c                	je     0x40f908
40f8fc:	8b 44 24 14          	mov    0x14(%esp),%eax
40f900:	85 c0                	test   %eax,%eax
40f902:	0f 8f 42 ff ff ff    	jg     0x40f84a
40f908:	5f                   	pop    %edi
40f909:	5e                   	pop    %esi
40f90a:	5d                   	pop    %ebp
40f90b:	5b                   	pop    %ebx
40f90c:	c3                   	ret
40f90d:	90                   	nop
40f90e:	90                   	nop
40f90f:	90                   	nop
40f910:	8b 4c 24 04          	mov    0x4(%esp),%ecx
40f914:	b8 60 1f 43 00       	mov    $0x431f60,%eax
40f919:	3b 48 10             	cmp    0x10(%eax),%ecx
40f91c:	76 05                	jbe    0x40f923
40f91e:	3b 48 14             	cmp    0x14(%eax),%ecx
40f921:	72 0b                	jb     0x40f92e
40f923:	8b 00                	mov    (%eax),%eax
40f925:	3d 60 1f 43 00       	cmp    $0x431f60,%eax
40f92a:	74 3a                	je     0x40f966
40f92c:	eb eb                	jmp    0x40f919
40f92e:	f6 c1 0f             	test   $0xf,%cl
40f931:	75 33                	jne    0x40f966
40f933:	8b d1                	mov    %ecx,%edx
40f935:	81 e2 ff 0f 00 00    	and    $0xfff,%edx
40f93b:	81 fa 00 01 00 00    	cmp    $0x100,%edx
40f941:	72 23                	jb     0x40f966
40f943:	8b 54 24 08          	mov    0x8(%esp),%edx
40f947:	89 02                	mov    %eax,(%edx)
40f949:	8b 54 24 0c          	mov    0xc(%esp),%edx
40f94d:	8b c1                	mov    %ecx,%eax
40f94f:	25 00 f0 ff ff       	and    $0xfffff000,%eax
40f954:	2b c8                	sub    %eax,%ecx
40f956:	89 02                	mov    %eax,(%edx)
40f958:	81 e9 00 01 00 00    	sub    $0x100,%ecx
40f95e:	c1 f9 04             	sar    $0x4,%ecx
40f961:	8d 44 01 08          	lea    0x8(%ecx,%eax,1),%eax
40f965:	c3                   	ret
40f966:	33 c0                	xor    %eax,%eax
40f968:	c3                   	ret
40f969:	90                   	nop
40f96a:	90                   	nop
40f96b:	90                   	nop
40f96c:	90                   	nop
40f96d:	90                   	nop
40f96e:	90                   	nop
40f96f:	90                   	nop
40f970:	8b 44 24 04          	mov    0x4(%esp),%eax
40f974:	8b 4c 24 08          	mov    0x8(%esp),%ecx
40f978:	56                   	push   %esi
40f979:	33 d2                	xor    %edx,%edx
40f97b:	2b 48 10             	sub    0x10(%eax),%ecx
40f97e:	c1 f9 0c             	sar    $0xc,%ecx
40f981:	8b 74 c8 18          	mov    0x18(%eax,%ecx,8),%esi
40f985:	8d 44 c8 18          	lea    0x18(%eax,%ecx,8),%eax
40f989:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f98d:	8a 11                	mov    (%ecx),%dl
40f98f:	03 f2                	add    %edx,%esi
40f991:	89 30                	mov    %esi,(%eax)
40f993:	c6 01 00             	movb   $0x0,(%ecx)
40f996:	8b 08                	mov    (%eax),%ecx
40f998:	c7 40 04 f1 00 00 00 	movl   $0xf1,0x4(%eax)
40f99f:	81 f9 f0 00 00 00    	cmp    $0xf0,%ecx
40f9a5:	75 1a                	jne    0x40f9c1
40f9a7:	a1 5c 73 43 00       	mov    0x43735c,%eax
40f9ac:	40                   	inc    %eax
40f9ad:	83 f8 20             	cmp    $0x20,%eax
40f9b0:	a3 5c 73 43 00       	mov    %eax,0x43735c
40f9b5:	75 0a                	jne    0x40f9c1
40f9b7:	6a 10                	push   $0x10
40f9b9:	e8 82 fe ff ff       	call   0x40f840
40f9be:	83 c4 04             	add    $0x4,%esp
40f9c1:	5e                   	pop    %esi
40f9c2:	c3                   	ret
40f9c3:	90                   	nop
40f9c4:	90                   	nop
40f9c5:	90                   	nop
40f9c6:	90                   	nop
40f9c7:	90                   	nop
40f9c8:	90                   	nop
40f9c9:	90                   	nop
40f9ca:	90                   	nop
40f9cb:	90                   	nop
40f9cc:	90                   	nop
40f9cd:	90                   	nop
40f9ce:	90                   	nop
40f9cf:	90                   	nop
40f9d0:	51                   	push   %ecx
40f9d1:	8b 0d 80 3f 43 00    	mov    0x433f80,%ecx
40f9d7:	53                   	push   %ebx
40f9d8:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
40f9dc:	55                   	push   %ebp
40f9dd:	56                   	push   %esi
40f9de:	57                   	push   %edi
40f9df:	89 4c 24 10          	mov    %ecx,0x10(%esp)
40f9e3:	8b 41 10             	mov    0x10(%ecx),%eax
40f9e6:	83 f8 ff             	cmp    $0xffffffff,%eax
40f9e9:	0f 84 85 00 00 00    	je     0x40fa74
40f9ef:	8b 79 08             	mov    0x8(%ecx),%edi
40f9f2:	8d a9 18 20 00 00    	lea    0x2018(%ecx),%ebp
40f9f8:	8b f7                	mov    %edi,%esi
40f9fa:	2b f1                	sub    %ecx,%esi
40f9fc:	83 ee 18             	sub    $0x18,%esi
40f9ff:	c1 fe 03             	sar    $0x3,%esi
40fa02:	c1 e6 0c             	shl    $0xc,%esi
40fa05:	03 f0                	add    %eax,%esi
40fa07:	3b fd                	cmp    %ebp,%edi
40fa09:	73 2e                	jae    0x40fa39
40fa0b:	8b 07                	mov    (%edi),%eax
40fa0d:	3b c3                	cmp    %ebx,%eax
40fa0f:	7c 1b                	jl     0x40fa2c
40fa11:	39 5f 04             	cmp    %ebx,0x4(%edi)
40fa14:	76 16                	jbe    0x40fa2c
40fa16:	53                   	push   %ebx
40fa17:	50                   	push   %eax
40fa18:	56                   	push   %esi
40fa19:	e8 f2 01 00 00       	call   0x40fc10
40fa1e:	83 c4 0c             	add    $0xc,%esp
40fa21:	85 c0                	test   %eax,%eax
40fa23:	75 63                	jne    0x40fa88
40fa25:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40fa29:	89 5f 04             	mov    %ebx,0x4(%edi)
40fa2c:	83 c7 08             	add    $0x8,%edi
40fa2f:	81 c6 00 10 00 00    	add    $0x1000,%esi
40fa35:	3b fd                	cmp    %ebp,%edi
40fa37:	72 d2                	jb     0x40fa0b
40fa39:	8b 69 08             	mov    0x8(%ecx),%ebp
40fa3c:	8b 79 10             	mov    0x10(%ecx),%edi
40fa3f:	8d 71 18             	lea    0x18(%ecx),%esi
40fa42:	3b f5                	cmp    %ebp,%esi
40fa44:	73 2e                	jae    0x40fa74
40fa46:	8b 06                	mov    (%esi),%eax
40fa48:	3b c3                	cmp    %ebx,%eax
40fa4a:	7c 1b                	jl     0x40fa67
40fa4c:	39 5e 04             	cmp    %ebx,0x4(%esi)
40fa4f:	76 16                	jbe    0x40fa67
40fa51:	53                   	push   %ebx
40fa52:	50                   	push   %eax
40fa53:	57                   	push   %edi
40fa54:	e8 b7 01 00 00       	call   0x40fc10
40fa59:	83 c4 0c             	add    $0xc,%esp
40fa5c:	85 c0                	test   %eax,%eax
40fa5e:	75 41                	jne    0x40faa1
40fa60:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40fa64:	89 5e 04             	mov    %ebx,0x4(%esi)
40fa67:	83 c6 08             	add    $0x8,%esi
40fa6a:	81 c7 00 10 00 00    	add    $0x1000,%edi
40fa70:	3b f5                	cmp    %ebp,%esi
40fa72:	72 d2                	jb     0x40fa46
40fa74:	8b 09                	mov    (%ecx),%ecx
40fa76:	a1 80 3f 43 00       	mov    0x433f80,%eax
40fa7b:	3b c8                	cmp    %eax,%ecx
40fa7d:	89 4c 24 10          	mov    %ecx,0x10(%esp)
40fa81:	74 37                	je     0x40faba
40fa83:	e9 5b ff ff ff       	jmp    0x40f9e3
40fa88:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40fa8c:	89 0d 80 3f 43 00    	mov    %ecx,0x433f80