40f535:	e9 4e 4b ff ff       	jmp    0x404088
40f53a:	eb de                	jmp    0x40f51a
40f53c:	5b                   	pop    %ebx
40f53d:	8b e5                	mov    %ebp,%esp
40f53f:	5d                   	pop    %ebp
40f540:	c3                   	ret
40f541:	8d 40 00             	lea    0x0(%eax),%eax
40f544:	85 c0                	test   %eax,%eax
40f546:	74 05                	je     0x40f54d
40f548:	e8 a3 fd ff ff       	call   0x40f2f0
40f54d:	c3                   	ret
40f54e:	8b c0                	mov    %eax,%eax
40f550:	53                   	push   %ebx
40f551:	85 c0                	test   %eax,%eax
40f553:	74 2c                	je     0x40f581
40f555:	8b d8                	mov    %eax,%ebx
40f557:	81 eb 05 00 02 80    	sub    $0x80020005,%ebx
40f55d:	74 07                	je     0x40f566
40f55f:	83 eb 05             	sub    $0x5,%ebx
40f562:	74 0d                	je     0x40f571
40f564:	eb 16                	jmp    0x40f57c
40f566:	8b c2                	mov    %edx,%eax
40f568:	8b d1                	mov    %ecx,%edx
40f56a:	e8 a1 fb ff ff       	call   0x40f110
40f56f:	eb 10                	jmp    0x40f581
40f571:	8b c2                	mov    %edx,%eax
40f573:	8b d1                	mov    %ecx,%edx
40f575:	e8 86 fc ff ff       	call   0x40f200
40f57a:	eb 05                	jmp    0x40f581
40f57c:	e8 6f fd ff ff       	call   0x40f2f0
40f581:	5b                   	pop    %ebx
40f582:	c3                   	ret
40f583:	90                   	nop
40f584:	53                   	push   %ebx
40f585:	56                   	push   %esi
40f586:	8b f2                	mov    %edx,%esi
40f588:	8b d8                	mov    %eax,%ebx
40f58a:	e8 e1 37 ff ff       	call   0x402d70
40f58f:	8b 15 20 7d 40 00    	mov    0x407d20,%edx
40f595:	e8 e6 44 ff ff       	call   0x403a80
40f59a:	84 c0                	test   %al,%al
40f59c:	74 11                	je     0x40f5af
40f59e:	8b ce                	mov    %esi,%ecx
40f5a0:	8b d3                	mov    %ebx,%edx
40f5a2:	b8 0a 00 02 80       	mov    $0x8002000a,%eax
40f5a7:	e8 a4 ff ff ff       	call   0x40f550
40f5ac:	5e                   	pop    %esi
40f5ad:	5b                   	pop    %ebx
40f5ae:	c3                   	ret
40f5af:	e8 bc 37 ff ff       	call   0x402d70
40f5b4:	8b 15 dc 7e 40 00    	mov    0x407edc,%edx
40f5ba:	e8 c1 44 ff ff       	call   0x403a80
40f5bf:	84 c0                	test   %al,%al
40f5c1:	74 10                	je     0x40f5d3
40f5c3:	8b ce                	mov    %esi,%ecx
40f5c5:	8b d3                	mov    %ebx,%edx
40f5c7:	b8 0a 00 02 80       	mov    $0x8002000a,%eax
40f5cc:	e8 7f ff ff ff       	call   0x40f550
40f5d1:	eb 32                	jmp    0x40f605
40f5d3:	e8 98 37 ff ff       	call   0x402d70
40f5d8:	8b 15 44 80 40 00    	mov    0x408044,%edx
40f5de:	e8 9d 44 ff ff       	call   0x403a80
40f5e3:	84 c0                	test   %al,%al
40f5e5:	74 10                	je     0x40f5f7
40f5e7:	8b ce                	mov    %esi,%ecx
40f5e9:	8b d3                	mov    %ebx,%edx
40f5eb:	b8 05 00 02 80       	mov    $0x80020005,%eax
40f5f0:	e8 5b ff ff ff       	call   0x40f550
40f5f5:	eb 0e                	jmp    0x40f605
40f5f7:	e8 b4 37 ff ff       	call   0x402db0
40f5fc:	8b d0                	mov    %eax,%edx
40f5fe:	8b c2                	mov    %edx,%eax
40f600:	e8 63 4b ff ff       	call   0x404168
40f605:	5e                   	pop    %esi
40f606:	5b                   	pop    %ebx
40f607:	c3                   	ret
40f608:	55                   	push   %ebp
40f609:	8b ec                	mov    %esp,%ebp
40f60b:	6a 00                	push   $0x0
40f60d:	33 c0                	xor    %eax,%eax
40f60f:	55                   	push   %ebp
40f610:	68 52 f6 40 00       	push   $0x40f652
40f615:	64 ff 30             	push   %fs:(%eax)
40f618:	64 89 20             	mov    %esp,%fs:(%eax)
40f61b:	8d 55 fc             	lea    -0x4(%ebp),%edx
40f61e:	a1 a0 d3 46 00       	mov    0x46d3a0,%eax
40f623:	e8 dc 6f ff ff       	call   0x406604
40f628:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f62b:	b2 01                	mov    $0x1,%dl
40f62d:	a1 58 f0 40 00       	mov    0x40f058,%eax
40f632:	e8 05 cc ff ff       	call   0x40c23c
40f637:	e8 2c 4b ff ff       	call   0x404168
40f63c:	33 c0                	xor    %eax,%eax
40f63e:	5a                   	pop    %edx
40f63f:	59                   	pop    %ecx
40f640:	59                   	pop    %ecx
40f641:	64 89 10             	mov    %edx,%fs:(%eax)
40f644:	68 59 f6 40 00       	push   $0x40f659
40f649:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f64c:	e8 cf 50 ff ff       	call   0x404720
40f651:	c3                   	ret
40f652:	e9 31 4a ff ff       	jmp    0x404088
40f657:	eb f0                	jmp    0x40f649
40f659:	59                   	pop    %ecx
40f65a:	5d                   	pop    %ebp
40f65b:	c3                   	ret
40f65c:	53                   	push   %ebx
40f65d:	8b d8                	mov    %eax,%ebx
40f65f:	8b c3                	mov    %ebx,%eax
40f661:	e8 8e 02 00 00       	call   0x40f8f4
40f666:	66 c7 03 01 00       	movw   $0x1,(%ebx)
40f66b:	5b                   	pop    %ebx
40f66c:	c3                   	ret
40f66d:	8d 40 00             	lea    0x0(%eax),%eax
40f670:	55                   	push   %ebp
40f671:	8b ec                	mov    %esp,%ebp
40f673:	53                   	push   %ebx
40f674:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f677:	81 c1 00 fd ff ff    	add    $0xfffffd00,%ecx
40f67d:	8b 54 c1 04          	mov    0x4(%ecx,%eax,8),%edx
40f681:	03 14 c1             	add    (%ecx,%eax,8),%edx
40f684:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f687:	3b 94 83 00 ff ff ff 	cmp    -0x100(%ebx,%eax,4),%edx
40f68e:	0f 9f c2             	setg   %dl
40f691:	48                   	dec    %eax
40f692:	84 d2                	test   %dl,%dl
40f694:	74 04                	je     0x40f69a
40f696:	85 c0                	test   %eax,%eax
40f698:	7d e3                	jge    0x40f67d
40f69a:	8b c2                	mov    %edx,%eax
40f69c:	5b                   	pop    %ebx
40f69d:	5d                   	pop    %ebp
40f69e:	c3                   	ret
40f69f:	90                   	nop
40f6a0:	55                   	push   %ebp
40f6a1:	8b ec                	mov    %esp,%ebp
40f6a3:	53                   	push   %ebx
40f6a4:	56                   	push   %esi
40f6a5:	b2 01                	mov    $0x1,%dl
40f6a7:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f6aa:	ff 84 81 00 ff ff ff 	incl   -0x100(%ecx,%eax,4)
40f6b1:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f6b4:	8b 8c c1 04 fd ff ff 	mov    -0x2fc(%ecx,%eax,8),%ecx
40f6bb:	8b d9                	mov    %ecx,%ebx
40f6bd:	8b 75 08             	mov    0x8(%ebp),%esi
40f6c0:	03 9c c6 00 fd ff ff 	add    -0x300(%esi,%eax,8),%ebx
40f6c7:	8b 75 08             	mov    0x8(%ebp),%esi
40f6ca:	3b 9c 86 00 ff ff ff 	cmp    -0x100(%esi,%eax,4),%ebx
40f6d1:	7f 22                	jg     0x40f6f5
40f6d3:	85 c0                	test   %eax,%eax
40f6d5:	75 04                	jne    0x40f6db
40f6d7:	33 d2                	xor    %edx,%edx
40f6d9:	eb 1a                	jmp    0x40f6f5
40f6db:	8b 55 08             	mov    0x8(%ebp),%edx
40f6de:	8b 55 08             	mov    0x8(%ebp),%edx
40f6e1:	89 8c 82 00 ff ff ff 	mov    %ecx,-0x100(%edx,%eax,4)
40f6e8:	8b 55 08             	mov    0x8(%ebp),%edx
40f6eb:	52                   	push   %edx
40f6ec:	48                   	dec    %eax
40f6ed:	e8 ae ff ff ff       	call   0x40f6a0
40f6f2:	59                   	pop    %ecx
40f6f3:	8b d0                	mov    %eax,%edx
40f6f5:	8b c2                	mov    %edx,%eax
40f6f7:	5e                   	pop    %esi
40f6f8:	5b                   	pop    %ebx
40f6f9:	5d                   	pop    %ebp
40f6fa:	c3                   	ret
40f6fb:	90                   	nop
40f6fc:	55                   	push   %ebp
40f6fd:	8b ec                	mov    %esp,%ebp
40f6ff:	81 c4 e8 fc ff ff    	add    $0xfffffce8,%esp
40f705:	53                   	push   %ebx
40f706:	56                   	push   %esi
40f707:	57                   	push   %edi
40f708:	89 85 fc fc ff ff    	mov    %eax,-0x304(%ebp)
40f70e:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f714:	f6 40 01 20          	testb  $0x20,0x1(%eax)
40f718:	75 0a                	jne    0x40f724
40f71a:	b8 57 00 07 80       	mov    $0x80070057,%eax
40f71f:	e8 20 fe ff ff       	call   0x40f544
40f724:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f72a:	0f b7 00             	movzwl (%eax),%eax
40f72d:	8b d0                	mov    %eax,%edx
40f72f:	66 81 e2 ff 0f       	and    $0xfff,%dx
40f734:	66 83 fa 0c          	cmp    $0xc,%dx
40f738:	0f 85 22 01 00 00    	jne    0x40f860
40f73e:	8b 95 fc fc ff ff    	mov    -0x304(%ebp),%edx
40f744:	f6 c4 40             	test   $0x40,%ah
40f747:	74 13                	je     0x40f75c
40f749:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f74f:	8b 40 08             	mov    0x8(%eax),%eax
40f752:	8b 00                	mov    (%eax),%eax
40f754:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40f75a:	eb 0f                	jmp    0x40f76b
40f75c:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f762:	8b 40 08             	mov    0x8(%eax),%eax
40f765:	89 85 f8 fc ff ff    	mov    %eax,-0x308(%ebp)
40f76b:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40f771:	0f b7 00             	movzwl (%eax),%eax
40f774:	89 85 f0 fc ff ff    	mov    %eax,-0x310(%ebp)
40f77a:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f780:	4b                   	dec    %ebx
40f781:	85 db                	test   %ebx,%ebx
40f783:	7c 6b                	jl     0x40f7f0
40f785:	43                   	inc    %ebx
40f786:	33 ff                	xor    %edi,%edi
40f788:	8d b5 00 fd ff ff    	lea    -0x300(%ebp),%esi
40f78e:	8b c6                	mov    %esi,%eax
40f790:	89 85 e8 fc ff ff    	mov    %eax,-0x318(%ebp)
40f796:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f79c:	83 c0 04             	add    $0x4,%eax
40f79f:	50                   	push   %eax
40f7a0:	8d 47 01             	lea    0x1(%edi),%eax
40f7a3:	50                   	push   %eax
40f7a4:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40f7aa:	50                   	push   %eax
40f7ab:	e8 b4 ef ff ff       	call   0x40e764
40f7b0:	e8 8f fd ff ff       	call   0x40f544
40f7b5:	8d 85 f4 fc ff ff    	lea    -0x30c(%ebp),%eax
40f7bb:	50                   	push   %eax
40f7bc:	8d 47 01             	lea    0x1(%edi),%eax
40f7bf:	50                   	push   %eax
40f7c0:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40f7c6:	50                   	push   %eax
40f7c7:	e8 a0 ef ff ff       	call   0x40e76c
40f7cc:	e8 73 fd ff ff       	call   0x40f544
40f7d1:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f7d7:	8b 95 f4 fc ff ff    	mov    -0x30c(%ebp),%edx
40f7dd:	2b 50 04             	sub    0x4(%eax),%edx
40f7e0:	42                   	inc    %edx
40f7e1:	8b 85 e8 fc ff ff    	mov    -0x318(%ebp),%eax
40f7e7:	89 10                	mov    %edx,(%eax)
40f7e9:	47                   	inc    %edi
40f7ea:	83 c6 08             	add    $0x8,%esi
40f7ed:	4b                   	dec    %ebx
40f7ee:	75 9e                	jne    0x40f78e
40f7f0:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f7f6:	4b                   	dec    %ebx
40f7f7:	85 db                	test   %ebx,%ebx
40f7f9:	7c 1a                	jl     0x40f815
40f7fb:	43                   	inc    %ebx
40f7fc:	8d 85 04 fd ff ff    	lea    -0x2fc(%ebp),%eax
40f802:	8d 95 00 ff ff ff    	lea    -0x100(%ebp),%edx
40f808:	8b 08                	mov    (%eax),%ecx
40f80a:	89 0a                	mov    %ecx,(%edx)
40f80c:	83 c2 04             	add    $0x4,%edx
40f80f:	83 c0 08             	add    $0x8,%eax
40f812:	4b                   	dec    %ebx
40f813:	75 f3                	jne    0x40f808
40f815:	55                   	push   %ebp
40f816:	8b 9d f0 fc ff ff    	mov    -0x310(%ebp),%ebx
40f81c:	4b                   	dec    %ebx
40f81d:	8b c3                	mov    %ebx,%eax
40f81f:	e8 4c fe ff ff       	call   0x40f670
40f824:	59                   	pop    %ecx
40f825:	84 c0                	test   %al,%al
40f827:	74 2a                	je     0x40f853
40f829:	8d 85 ec fc ff ff    	lea    -0x314(%ebp),%eax
40f82f:	50                   	push   %eax
40f830:	8d 85 00 ff ff ff    	lea    -0x100(%ebp),%eax
40f836:	50                   	push   %eax
40f837:	8b 85 f8 fc ff ff    	mov    -0x308(%ebp),%eax
40f83d:	50                   	push   %eax
40f83e:	e8 31 ef ff ff       	call   0x40e774
40f843:	e8 fc fc ff ff       	call   0x40f544
40f848:	8b 85 ec fc ff ff    	mov    -0x314(%ebp),%eax
40f84e:	e8 a1 00 00 00       	call   0x40f8f4
40f853:	55                   	push   %ebp
40f854:	8b c3                	mov    %ebx,%eax
40f856:	e8 45 fe ff ff       	call   0x40f6a0
40f85b:	59                   	pop    %ecx
40f85c:	84 c0                	test   %al,%al
40f85e:	75 b5                	jne    0x40f815
40f860:	8b 85 fc fc ff ff    	mov    -0x304(%ebp),%eax
40f866:	50                   	push   %eax
40f867:	e8 90 ea ff ff       	call   0x40e2fc
40f86c:	e8 d3 fc ff ff       	call   0x40f544
40f871:	5f                   	pop    %edi
40f872:	5e                   	pop    %esi
40f873:	5b                   	pop    %ebx
40f874:	8b e5                	mov    %ebp,%esp
40f876:	5d                   	pop    %ebp
40f877:	c3                   	ret
40f878:	53                   	push   %ebx
40f879:	56                   	push   %esi
40f87a:	51                   	push   %ecx
40f87b:	8b d8                	mov    %eax,%ebx
40f87d:	0f b7 33             	movzwl (%ebx),%esi
40f880:	66 83 fe 14          	cmp    $0x14,%si
40f884:	73 0d                	jae    0x40f893
40f886:	53                   	push   %ebx
40f887:	e8 70 ea ff ff       	call   0x40e2fc
40f88c:	e8 b3 fc ff ff       	call   0x40f544
40f891:	eb 5c                	jmp    0x40f8ef
40f893:	66 81 fe 00 01       	cmp    $0x100,%si
40f898:	75 0f                	jne    0x40f8a9
40f89a:	66 c7 03 00 00       	movw   $0x0,(%ebx)
40f89f:	8d 43 08             	lea    0x8(%ebx),%eax
40f8a2:	e8 79 4e ff ff       	call   0x404720
40f8a7:	eb 46                	jmp    0x40f8ef
40f8a9:	66 81 fe 01 01       	cmp    $0x101,%si
40f8ae:	75 0a                	jne    0x40f8ba
40f8b0:	8b c3                	mov    %ebx,%eax
40f8b2:	ff 15 98 12 47 00    	call   *0x471298
40f8b8:	eb 35                	jmp    0x40f8ef
40f8ba:	66 f7 c6 00 20       	test   $0x2000,%si
40f8bf:	74 09                	je     0x40f8ca
40f8c1:	8b c3                	mov    %ebx,%eax
40f8c3:	e8 34 fe ff ff       	call   0x40f6fc
40f8c8:	eb 25                	jmp    0x40f8ef
40f8ca:	8b d4                	mov    %esp,%edx
40f8cc:	8b c6                	mov    %esi,%eax
40f8ce:	e8 81 4c 00 00       	call   0x414554
40f8d3:	84 c0                	test   %al,%al
40f8d5:	74 0c                	je     0x40f8e3
40f8d7:	8b d3                	mov    %ebx,%edx
40f8d9:	8b 04 24             	mov    (%esp),%eax
40f8dc:	8b 08                	mov    (%eax),%ecx
40f8de:	ff 51 24             	call   *0x24(%ecx)
40f8e1:	eb 0c                	jmp    0x40f8ef
40f8e3:	53                   	push   %ebx
40f8e4:	e8 13 ea ff ff       	call   0x40e2fc
40f8e9:	53                   	push   %ebx
40f8ea:	e8 05 ea ff ff       	call   0x40e2f4
40f8ef:	5a                   	pop    %edx
40f8f0:	5e                   	pop    %esi
40f8f1:	5b                   	pop    %ebx
40f8f2:	c3                   	ret
40f8f3:	90                   	nop
40f8f4:	66 f7 00 e8 bf       	testw  $0xbfe8,(%eax)
40f8f9:	75 06                	jne    0x40f901
40f8fb:	66 c7 00 00 00       	movw   $0x0,(%eax)
40f900:	c3                   	ret
40f901:	e8 72 ff ff ff       	call   0x40f878
40f906:	c3                   	ret
40f907:	90                   	nop
40f908:	50                   	push   %eax
40f909:	e8 e6 ff ff ff       	call   0x40f8f4
40f90e:	58                   	pop    %eax
40f90f:	c3                   	ret
40f910:	55                   	push   %ebp
40f911:	8b ec                	mov    %esp,%ebp
40f913:	53                   	push   %ebx
40f914:	8b 4d 08             	mov    0x8(%ebp),%ecx
40f917:	81 c1 00 fd ff ff    	add    $0xfffffd00,%ecx
40f91d:	8b 54 c1 04          	mov    0x4(%ecx,%eax,8),%edx
40f921:	03 14 c1             	add    (%ecx,%eax,8),%edx
40f924:	8b 5d 08             	mov    0x8(%ebp),%ebx
40f927:	3b 94 83 00 ff ff ff 	cmp    -0x100(%ebx,%eax,4),%edx
40f92e:	0f 9f c2             	setg   %dl