40e540:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e543:	b2 01                	mov    $0x1,%dl
40e545:	a1 44 e1 40 00       	mov    0x40e144,%eax
40e54a:	e8 19 d0 ff ff       	call   0x40b568
40e54f:	e8 80 54 ff ff       	call   0x4039d4
40e554:	33 c0                	xor    %eax,%eax
40e556:	5a                   	pop    %edx
40e557:	59                   	pop    %ecx
40e558:	59                   	pop    %ecx
40e559:	64 89 10             	mov    %edx,%fs:(%eax)
40e55c:	68 71 e5 40 00       	push   $0x40e571
40e561:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e564:	e8 2f 5a ff ff       	call   0x403f98
40e569:	c3                   	ret
40e56a:	e9 2d 54 ff ff       	jmp    0x40399c
40e56f:	eb f0                	jmp    0x40e561
40e571:	59                   	pop    %ecx
40e572:	5d                   	pop    %ebp
40e573:	c3                   	ret
40e574:	55                   	push   %ebp
40e575:	8b ec                	mov    %esp,%ebp
40e577:	b9 08 00 00 00       	mov    $0x8,%ecx
40e57c:	6a 00                	push   $0x0
40e57e:	6a 00                	push   $0x0
40e580:	49                   	dec    %ecx
40e581:	75 f9                	jne    0x40e57c
40e583:	53                   	push   %ebx
40e584:	8b d8                	mov    %eax,%ebx
40e586:	33 c0                	xor    %eax,%eax
40e588:	55                   	push   %ebp
40e589:	68 b9 e7 40 00       	push   $0x40e7b9
40e58e:	64 ff 30             	push   %fs:(%eax)
40e591:	64 89 20             	mov    %esp,%fs:(%eax)
40e594:	8b c3                	mov    %ebx,%eax
40e596:	3d 0a 00 02 80       	cmp    $0x8002000a,%eax
40e59b:	7f 39                	jg     0x40e5d6
40e59d:	0f 84 9a 00 00 00    	je     0x40e63d
40e5a3:	3d 05 00 02 80       	cmp    $0x80020005,%eax
40e5a8:	7f 1d                	jg     0x40e5c7
40e5aa:	74 57                	je     0x40e603
40e5ac:	2d 01 40 00 80       	sub    $0x80004001,%eax
40e5b1:	0f 84 f8 00 00 00    	je     0x40e6af
40e5b7:	2d fe bf 00 00       	sub    $0xbffe,%eax
40e5bc:	0f 84 5c 01 00 00    	je     0x40e71e
40e5c2:	e9 7a 01 00 00       	jmp    0x40e741
40e5c7:	2d 08 00 02 80       	sub    $0x80020008,%eax
40e5cc:	74 3f                	je     0x40e60d
40e5ce:	48                   	dec    %eax
40e5cf:	74 62                	je     0x40e633
40e5d1:	e9 6b 01 00 00       	jmp    0x40e741
40e5d6:	2d 0b 00 02 80       	sub    $0x8002000b,%eax
40e5db:	0f 84 82 00 00 00    	je     0x40e663
40e5e1:	83 e8 02             	sub    $0x2,%eax
40e5e4:	0f 84 9f 00 00 00    	je     0x40e689
40e5ea:	2d 01 00 05 00       	sub    $0x50001,%eax
40e5ef:	0f 84 e0 00 00 00    	je     0x40e6d5
40e5f5:	83 e8 49             	sub    $0x49,%eax
40e5f8:	0f 84 fd 00 00 00    	je     0x40e6fb
40e5fe:	e9 3e 01 00 00       	jmp    0x40e741
40e603:	e8 38 fd ff ff       	call   0x40e340
40e608:	e9 84 01 00 00       	jmp    0x40e791
40e60d:	8d 55 fc             	lea    -0x4(%ebp),%edx
40e610:	a1 8c dd 46 00       	mov    0x46dd8c,%eax
40e615:	e8 e2 74 ff ff       	call   0x405afc
40e61a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e61d:	b2 01                	mov    $0x1,%dl
40e61f:	a1 14 e0 40 00       	mov    0x40e014,%eax
40e624:	e8 3f cf ff ff       	call   0x40b568
40e629:	e8 a6 53 ff ff       	call   0x4039d4
40e62e:	e9 5e 01 00 00       	jmp    0x40e791
40e633:	e8 f8 fd ff ff       	call   0x40e430
40e638:	e9 54 01 00 00       	jmp    0x40e791
40e63d:	8d 55 f8             	lea    -0x8(%ebp),%edx
40e640:	a1 6c da 46 00       	mov    0x46da6c,%eax
40e645:	e8 b2 74 ff ff       	call   0x405afc
40e64a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40e64d:	b2 01                	mov    $0x1,%dl
40e64f:	a1 4c df 40 00       	mov    0x40df4c,%eax
40e654:	e8 0f cf ff ff       	call   0x40b568
40e659:	e8 76 53 ff ff       	call   0x4039d4
40e65e:	e9 2e 01 00 00       	jmp    0x40e791
40e663:	8d 55 f4             	lea    -0xc(%ebp),%edx
40e666:	a1 08 dd 46 00       	mov    0x46dd08,%eax
40e66b:	e8 8c 74 ff ff       	call   0x405afc
40e670:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40e673:	b2 01                	mov    $0x1,%dl
40e675:	a1 78 e0 40 00       	mov    0x40e078,%eax
40e67a:	e8 e9 ce ff ff       	call   0x40b568
40e67f:	e8 50 53 ff ff       	call   0x4039d4
40e684:	e9 08 01 00 00       	jmp    0x40e791
40e689:	8d 55 f0             	lea    -0x10(%ebp),%edx
40e68c:	a1 f8 dd 46 00       	mov    0x46ddf8,%eax
40e691:	e8 66 74 ff ff       	call   0x405afc
40e696:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40e699:	b2 01                	mov    $0x1,%dl
40e69b:	a1 dc e0 40 00       	mov    0x40e0dc,%eax
40e6a0:	e8 c3 ce ff ff       	call   0x40b568
40e6a5:	e8 2a 53 ff ff       	call   0x4039d4
40e6aa:	e9 e2 00 00 00       	jmp    0x40e791
40e6af:	8d 55 ec             	lea    -0x14(%ebp),%edx
40e6b2:	a1 4c dc 46 00       	mov    0x46dc4c,%eax
40e6b7:	e8 40 74 ff ff       	call   0x405afc
40e6bc:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40e6bf:	b2 01                	mov    $0x1,%dl
40e6c1:	a1 ac e1 40 00       	mov    0x40e1ac,%eax
40e6c6:	e8 9d ce ff ff       	call   0x40b568
40e6cb:	e8 04 53 ff ff       	call   0x4039d4
40e6d0:	e9 bc 00 00 00       	jmp    0x40e791
40e6d5:	8d 55 e8             	lea    -0x18(%ebp),%edx
40e6d8:	a1 bc da 46 00       	mov    0x46dabc,%eax
40e6dd:	e8 1a 74 ff ff       	call   0x405afc
40e6e2:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40e6e5:	b2 01                	mov    $0x1,%dl
40e6e7:	a1 10 e2 40 00       	mov    0x40e210,%eax
40e6ec:	e8 77 ce ff ff       	call   0x40b568
40e6f1:	e8 de 52 ff ff       	call   0x4039d4
40e6f6:	e9 96 00 00 00       	jmp    0x40e791
40e6fb:	8d 55 e4             	lea    -0x1c(%ebp),%edx
40e6fe:	a1 dc da 46 00       	mov    0x46dadc,%eax
40e703:	e8 f4 73 ff ff       	call   0x405afc
40e708:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40e70b:	b2 01                	mov    $0x1,%dl
40e70d:	a1 b0 df 40 00       	mov    0x40dfb0,%eax
40e712:	e8 51 ce ff ff       	call   0x40b568
40e717:	e8 b8 52 ff ff       	call   0x4039d4
40e71c:	eb 73                	jmp    0x40e791
40e71e:	8d 55 e0             	lea    -0x20(%ebp),%edx
40e721:	a1 68 da 46 00       	mov    0x46da68,%eax
40e726:	e8 d1 73 ff ff       	call   0x405afc
40e72b:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40e72e:	b2 01                	mov    $0x1,%dl
40e730:	a1 78 e2 40 00       	mov    0x40e278,%eax
40e735:	e8 2e ce ff ff       	call   0x40b568
40e73a:	e8 95 52 ff ff       	call   0x4039d4
40e73f:	eb 50                	jmp    0x40e791
40e741:	a1 9c dd 46 00       	mov    0x46dd9c,%eax
40e746:	8b 00                	mov    (%eax),%eax
40e748:	89 45 c8             	mov    %eax,-0x38(%ebp)
40e74b:	c6 45 cc 0b          	movb   $0xb,-0x34(%ebp)
40e74f:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40e752:	c6 45 d4 00          	movb   $0x0,-0x2c(%ebp)
40e756:	8d 55 c4             	lea    -0x3c(%ebp),%edx
40e759:	8b c3                	mov    %ebx,%eax
40e75b:	e8 00 c6 ff ff       	call   0x40ad60
40e760:	8b 45 c4             	mov    -0x3c(%ebp),%eax
40e763:	89 45 d8             	mov    %eax,-0x28(%ebp)
40e766:	c6 45 dc 0b          	movb   $0xb,-0x24(%ebp)
40e76a:	8d 45 c8             	lea    -0x38(%ebp),%eax
40e76d:	50                   	push   %eax
40e76e:	6a 02                	push   $0x2
40e770:	8d 55 c0             	lea    -0x40(%ebp),%edx
40e773:	a1 9c db 46 00       	mov    0x46db9c,%eax
40e778:	e8 7f 73 ff ff       	call   0x405afc
40e77d:	8b 4d c0             	mov    -0x40(%ebp),%ecx
40e780:	b2 01                	mov    $0x1,%dl
40e782:	a1 d0 76 40 00       	mov    0x4076d0,%eax
40e787:	e8 18 ce ff ff       	call   0x40b5a4
40e78c:	e8 43 52 ff ff       	call   0x4039d4
40e791:	33 c0                	xor    %eax,%eax
40e793:	5a                   	pop    %edx
40e794:	59                   	pop    %ecx
40e795:	59                   	pop    %ecx
40e796:	64 89 10             	mov    %edx,%fs:(%eax)
40e799:	68 c0 e7 40 00       	push   $0x40e7c0
40e79e:	8d 45 c0             	lea    -0x40(%ebp),%eax
40e7a1:	ba 02 00 00 00       	mov    $0x2,%edx
40e7a6:	e8 11 58 ff ff       	call   0x403fbc
40e7ab:	8d 45 e0             	lea    -0x20(%ebp),%eax
40e7ae:	ba 08 00 00 00       	mov    $0x8,%edx
40e7b3:	e8 04 58 ff ff       	call   0x403fbc
40e7b8:	c3                   	ret
40e7b9:	e9 de 51 ff ff       	jmp    0x40399c
40e7be:	eb de                	jmp    0x40e79e
40e7c0:	5b                   	pop    %ebx
40e7c1:	8b e5                	mov    %ebp,%esp
40e7c3:	5d                   	pop    %ebp
40e7c4:	c3                   	ret
40e7c5:	8d 40 00             	lea    0x0(%eax),%eax
40e7c8:	85 c0                	test   %eax,%eax
40e7ca:	74 05                	je     0x40e7d1
40e7cc:	e8 a3 fd ff ff       	call   0x40e574
40e7d1:	c3                   	ret
40e7d2:	8b c0                	mov    %eax,%eax
40e7d4:	53                   	push   %ebx
40e7d5:	85 c0                	test   %eax,%eax
40e7d7:	74 2c                	je     0x40e805
40e7d9:	8b d8                	mov    %eax,%ebx
40e7db:	81 eb 05 00 02 80    	sub    $0x80020005,%ebx
40e7e1:	74 07                	je     0x40e7ea
40e7e3:	83 eb 05             	sub    $0x5,%ebx
40e7e6:	74 0d                	je     0x40e7f5
40e7e8:	eb 16                	jmp    0x40e800
40e7ea:	8b c2                	mov    %edx,%eax
40e7ec:	8b d1                	mov    %ecx,%edx
40e7ee:	e8 a1 fb ff ff       	call   0x40e394
40e7f3:	eb 10                	jmp    0x40e805
40e7f5:	8b c2                	mov    %edx,%eax
40e7f7:	8b d1                	mov    %ecx,%edx
40e7f9:	e8 86 fc ff ff       	call   0x40e484
40e7fe:	eb 05                	jmp    0x40e805
40e800:	e8 6f fd ff ff       	call   0x40e574
40e805:	5b                   	pop    %ebx
40e806:	c3                   	ret
40e807:	90                   	nop
40e808:	55                   	push   %ebp
40e809:	8b ec                	mov    %esp,%ebp
40e80b:	6a 00                	push   $0x0
40e80d:	33 c0                	xor    %eax,%eax
40e80f:	55                   	push   %ebp
40e810:	68 52 e8 40 00       	push   $0x40e852
40e815:	64 ff 30             	push   %fs:(%eax)
40e818:	64 89 20             	mov    %esp,%fs:(%eax)
40e81b:	8d 55 fc             	lea    -0x4(%ebp),%edx
40e81e:	a1 e8 d9 46 00       	mov    0x46d9e8,%eax
40e823:	e8 d4 72 ff ff       	call   0x405afc
40e828:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40e82b:	b2 01                	mov    $0x1,%dl
40e82d:	a1 dc e2 40 00       	mov    0x40e2dc,%eax
40e832:	e8 31 cd ff ff       	call   0x40b568
40e837:	e8 98 51 ff ff       	call   0x4039d4
40e83c:	33 c0                	xor    %eax,%eax
40e83e:	5a                   	pop    %edx
40e83f:	59                   	pop    %ecx
40e840:	59                   	pop    %ecx
40e841:	64 89 10             	mov    %edx,%fs:(%eax)
40e844:	68 59 e8 40 00       	push   $0x40e859
40e849:	8d 45 fc             	lea    -0x4(%ebp),%eax
40e84c:	e8 47 57 ff ff       	call   0x403f98
40e851:	c3                   	ret
40e852:	e9 45 51 ff ff       	jmp    0x40399c
40e857:	eb f0                	jmp    0x40e849
40e859:	59                   	pop    %ecx
40e85a:	5d                   	pop    %ebp
40e85b:	c3                   	ret
40e85c:	53                   	push   %ebx
40e85d:	8b d8                	mov    %eax,%ebx
40e85f:	8b c3                	mov    %ebx,%eax
40e861:	e8 8e 02 00 00       	call   0x40eaf4
40e866:	66 c7 03 01 00       	movw   $0x1,(%ebx)
40e86b:	5b                   	pop    %ebx
40e86c:	c3                   	ret
40e86d:	8d 40 00             	lea    0x0(%eax),%eax
40e870:	55                   	push   %ebp
40e871:	8b ec                	mov    %esp,%ebp
40e873:	53                   	push   %ebx
40e874:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e877:	81 c1 00 fd ff ff    	add    $0xfffffd00,%ecx
40e87d:	8b 54 c1 04          	mov    0x4(%ecx,%eax,8),%edx
40e881:	03 14 c1             	add    (%ecx,%eax,8),%edx
40e884:	8b 5d 08             	mov    0x8(%ebp),%ebx
40e887:	3b 94 83 00 ff ff ff 	cmp    -0x100(%ebx,%eax,4),%edx
40e88e:	0f 9f c2             	setg   %dl
40e891:	48                   	dec    %eax
40e892:	84 d2                	test   %dl,%dl
40e894:	74 04                	je     0x40e89a
40e896:	85 c0                	test   %eax,%eax
40e898:	7d e3                	jge    0x40e87d
40e89a:	8b c2                	mov    %edx,%eax
40e89c:	5b                   	pop    %ebx
40e89d:	5d                   	pop    %ebp
40e89e:	c3                   	ret
40e89f:	90                   	nop
40e8a0:	55                   	push   %ebp
40e8a1:	8b ec                	mov    %esp,%ebp
40e8a3:	53                   	push   %ebx
40e8a4:	56                   	push   %esi
40e8a5:	b2 01                	mov    $0x1,%dl
40e8a7:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e8aa:	ff 84 81 00 ff ff ff 	incl   -0x100(%ecx,%eax,4)
40e8b1:	8b 4d 08             	mov    0x8(%ebp),%ecx
40e8b4:	8b 8c c1 04 fd ff ff 	mov    -0x2fc(%ecx,%eax,8),%ecx
40e8bb:	8b d9                	mov    %ecx,%ebx
40e8bd:	8b 75 08             	mov    0x8(%ebp),%esi
40e8c0:	03 9c c6 00 fd ff ff 	add    -0x300(%esi,%eax,8),%ebx
40e8c7:	8b 75 08             	mov    0x8(%ebp),%esi
40e8ca:	3b 9c 86 00 ff ff ff 	cmp    -0x100(%esi,%eax,4),%ebx
40e8d1:	7f 22                	jg     0x40e8f5
40e8d3:	85 c0                	test   %eax,%eax
40e8d5:	75 04                	jne    0x40e8db
40e8d7:	33 d2                	xor    %edx,%edx
40e8d9:	eb 1a                	jmp    0x40e8f5
40e8db:	8b 55 08             	mov    0x8(%ebp),%edx
40e8de:	8b 55 08             	mov    0x8(%ebp),%edx
40e8e1:	89 8c 82 00 ff ff ff 	mov    %ecx,-0x100(%edx,%eax,4)
40e8e8:	8b 55 08             	mov    0x8(%ebp),%edx
40e8eb:	52                   	push   %edx
40e8ec:	48                   	dec    %eax
40e8ed:	e8 ae ff ff ff       	call   0x40e8a0
40e8f2:	59                   	pop    %ecx
40e8f3:	8b d0                	mov    %eax,%edx
40e8f5:	8b c2                	mov    %edx,%eax
40e8f7:	5e                   	pop    %esi
40e8f8:	5b                   	pop    %ebx
40e8f9:	5d                   	pop    %ebp
40e8fa:	c3                   	ret
40e8fb:	90                   	nop
40e8fc:	55                   	push   %ebp
40e8fd:	8b ec                	mov    %esp,%ebp
40e8ff:	81 c4 e8 fc ff ff    	add    $0xfffffce8,%esp
40e905:	53                   	push   %ebx
40e906:	56                   	push   %esi
40e907:	57                   	push   %edi
40e908:	89 85 fc fc ff ff    	mov    %eax,-0x304(%ebp)
40e90e:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40e914:	f6 40 01 20          	testb  $0x20,0x1(%eax)
40e918:	75 0a                	jne    0x40e924
40e91a:	b8 57 00 07 80       	mov    $0x80070057,%eax
40e91f:	e8 a4 fe ff ff       	call   0x40e7c8
40e924:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40e92a:	66 8b 00             	mov    (%eax),%ax
40e92d:	8b d0                	mov    %eax,%edx
40e92f:	66 81 e2 ff 0f       	and    $0xfff,%dx
40e934:	66 83 fa 0c          	cmp    $0xc,%dx
40e938:	0f 85 22 01 00 00    	jne    0x40ea60
40e93e:	8b 95 fc fc ff ff    	mov    -0x304(%ebp),%edx
40e944:	f6 c4 40             	test   $0x40,%ah
40e947:	74 13                	je     0x40e95c
40e949:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40e94f:	8b 40 08             	mov    0x8(%eax),%eax
40e952:	8b 00                	mov    (%eax),%eax
40e954:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40e95a:	eb 0f                	jmp    0x40e96b
40e95c:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40e962:	8b 40 08             	mov    0x8(%eax),%eax
40e965:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40e96b:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40e971:	0f b7 00             	movzwl (%eax),%eax
40e974:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40e97a:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40e980:	4b                   	dec    %ebx
40e981:	85 db                	test   %ebx,%ebx
40e983:	7c 6b                	jl     0x40e9f0
40e985:	43                   	inc    %ebx
40e986:	33 ff                	xor    %edi,%edi
40e988:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40e98e:	8b c6                	mov    %esi,%eax
40e990:	89 85 e8 fc ff ff    	mov    %eax,-0x318(%ebp)
40e996:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40e99c:	83 c0 04             	add    $0x4,%eax
40e99f:	50                   	push   %eax
40e9a0:	8d 47 01             	lea    0x1(%edi),%eax
40e9a3:	50                   	push   %eax
40e9a4:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40e9aa:	50                   	push   %eax
40e9ab:	e8 28 f0 ff ff       	call   0x40d9d8
40e9b0:	e8 13 fe ff ff       	call   0x40e7c8
40e9b5:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40e9bb:	50                   	push   %eax
40e9bc:	8d 47 01             	lea    0x1(%edi),%eax
40e9bf:	50                   	push   %eax