40e4de:	8b 10                	mov    (%eax),%edx
40e4e0:	23 d6                	and    %esi,%edx
40e4e2:	3b d3                	cmp    %ebx,%edx
40e4e4:	72 0a                	jb     0x40e4f0
40e4e6:	f6 40 20 01          	testb  $0x1,0x20(%eax)
40e4ea:	0f 85 93 00 00 00    	jne    0x40e583
40e4f0:	f6 41 04 66          	testb  $0x66,0x4(%ecx)
40e4f4:	74 23                	je     0x40e519
40e4f6:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
40e4fa:	0f 84 83 00 00 00    	je     0x40e583
40e500:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
40e504:	75 7d                	jne    0x40e583
40e506:	6a ff                	push   $0xffffffff
40e508:	50                   	push   %eax
40e509:	ff 75 14             	push   0x14(%ebp)
40e50c:	ff 75 0c             	push   0xc(%ebp)
40e50f:	e8 b6 f4 ff ff       	call   0x40d9ca
40e514:	83 c4 10             	add    $0x10,%esp
40e517:	eb 6a                	jmp    0x40e583
40e519:	83 78 0c 00          	cmpl   $0x0,0xc(%eax)
40e51d:	75 12                	jne    0x40e531
40e51f:	8b 10                	mov    (%eax),%edx
40e521:	23 d6                	and    %esi,%edx
40e523:	81 fa 21 05 93 19    	cmp    $0x19930521,%edx
40e529:	72 58                	jb     0x40e583
40e52b:	83 78 1c 00          	cmpl   $0x0,0x1c(%eax)
40e52f:	74 52                	je     0x40e583
40e531:	39 39                	cmp    %edi,(%ecx)
40e533:	75 32                	jne    0x40e567
40e535:	83 79 10 03          	cmpl   $0x3,0x10(%ecx)
40e539:	72 2c                	jb     0x40e567
40e53b:	39 59 14             	cmp    %ebx,0x14(%ecx)
40e53e:	76 27                	jbe    0x40e567
40e540:	8b 51 1c             	mov    0x1c(%ecx),%edx
40e543:	8b 52 08             	mov    0x8(%edx),%edx
40e546:	85 d2                	test   %edx,%edx
40e548:	74 1d                	je     0x40e567
40e54a:	0f b6 75 24          	movzbl 0x24(%ebp),%esi
40e54e:	56                   	push   %esi
40e54f:	ff 75 20             	push   0x20(%ebp)
40e552:	ff 75 1c             	push   0x1c(%ebp)
40e555:	50                   	push   %eax
40e556:	ff 75 14             	push   0x14(%ebp)
40e559:	ff 75 10             	push   0x10(%ebp)
40e55c:	ff 75 0c             	push   0xc(%ebp)
40e55f:	51                   	push   %ecx
40e560:	ff d2                	call   *%edx
40e562:	83 c4 20             	add    $0x20,%esp
40e565:	eb 1f                	jmp    0x40e586
40e567:	ff 75 20             	push   0x20(%ebp)
40e56a:	ff 75 1c             	push   0x1c(%ebp)
40e56d:	ff 75 24             	push   0x24(%ebp)
40e570:	50                   	push   %eax
40e571:	ff 75 14             	push   0x14(%ebp)
40e574:	ff 75 10             	push   0x10(%ebp)
40e577:	ff 75 0c             	push   0xc(%ebp)
40e57a:	51                   	push   %ecx
40e57b:	e8 c1 fb ff ff       	call   0x40e141
40e580:	83 c4 20             	add    $0x20,%esp
40e583:	33 c0                	xor    %eax,%eax
40e585:	40                   	inc    %eax
40e586:	5f                   	pop    %edi
40e587:	5e                   	pop    %esi
40e588:	5b                   	pop    %ebx
40e589:	5d                   	pop    %ebp
40e58a:	c3                   	ret
40e58b:	6a 08                	push   $0x8
40e58d:	68 50 99 42 00       	push   $0x429950
40e592:	e8 45 be ff ff       	call   0x40a3dc
40e597:	e8 a5 c4 ff ff       	call   0x40aa41
40e59c:	8b 40 78             	mov    0x78(%eax),%eax
40e59f:	85 c0                	test   %eax,%eax
40e5a1:	74 16                	je     0x40e5b9
40e5a3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e5a7:	ff d0                	call   *%eax
40e5a9:	eb 07                	jmp    0x40e5b2
40e5ab:	33 c0                	xor    %eax,%eax
40e5ad:	40                   	inc    %eax
40e5ae:	c3                   	ret
40e5af:	8b 65 e8             	mov    -0x18(%ebp),%esp
40e5b2:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e5b9:	e8 2d 7a ff ff       	call   0x405feb
40e5be:	e8 5e be ff ff       	call   0x40a421
40e5c3:	c3                   	ret
40e5c4:	e8 78 c4 ff ff       	call   0x40aa41
40e5c9:	8b 40 7c             	mov    0x7c(%eax),%eax
40e5cc:	85 c0                	test   %eax,%eax
40e5ce:	74 02                	je     0x40e5d2
40e5d0:	ff d0                	call   *%eax
40e5d2:	e9 b4 ff ff ff       	jmp    0x40e58b
40e5d7:	6a 08                	push   $0x8
40e5d9:	68 70 99 42 00       	push   $0x429970
40e5de:	e8 f9 bd ff ff       	call   0x40a3dc
40e5e3:	ff 35 28 0e 43 00    	push   0x430e28
40e5e9:	e8 07 c2 ff ff       	call   0x40a7f5
40e5ee:	59                   	pop    %ecx
40e5ef:	85 c0                	test   %eax,%eax
40e5f1:	74 16                	je     0x40e609
40e5f3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40e5f7:	ff d0                	call   *%eax
40e5f9:	eb 07                	jmp    0x40e602
40e5fb:	33 c0                	xor    %eax,%eax
40e5fd:	40                   	inc    %eax
40e5fe:	c3                   	ret
40e5ff:	8b 65 e8             	mov    -0x18(%ebp),%esp
40e602:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40e609:	e8 7d ff ff ff       	call   0x40e58b
40e60e:	cc                   	int3
40e60f:	68 8b e5 40 00       	push   $0x40e58b
40e614:	e8 61 c1 ff ff       	call   0x40a77a
40e619:	59                   	pop    %ecx
40e61a:	a3 28 0e 43 00       	mov    %eax,0x430e28
40e61f:	c3                   	ret
40e620:	55                   	push   %ebp
40e621:	8b ec                	mov    %esp,%ebp
40e623:	83 ec 04             	sub    $0x4,%esp
40e626:	53                   	push   %ebx
40e627:	51                   	push   %ecx
40e628:	8b 45 0c             	mov    0xc(%ebp),%eax
40e62b:	83 c0 0c             	add    $0xc,%eax
40e62e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40e631:	8b 45 08             	mov    0x8(%ebp),%eax
40e634:	55                   	push   %ebp
40e635:	ff 75 10             	push   0x10(%ebp)
40e638:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e63b:	8b 6d fc             	mov    -0x4(%ebp),%ebp
40e63e:	e8 31 5a 00 00       	call   0x414074
40e643:	56                   	push   %esi
40e644:	57                   	push   %edi
40e645:	ff d0                	call   *%eax
40e647:	5f                   	pop    %edi
40e648:	5e                   	pop    %esi
40e649:	8b dd                	mov    %ebp,%ebx
40e64b:	5d                   	pop    %ebp
40e64c:	8b 4d 10             	mov    0x10(%ebp),%ecx
40e64f:	55                   	push   %ebp
40e650:	8b eb                	mov    %ebx,%ebp
40e652:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
40e658:	75 05                	jne    0x40e65f
40e65a:	b9 02 00 00 00       	mov    $0x2,%ecx
40e65f:	51                   	push   %ecx
40e660:	e8 0f 5a 00 00       	call   0x414074
40e665:	5d                   	pop    %ebp
40e666:	59                   	pop    %ecx
40e667:	5b                   	pop    %ebx
40e668:	c9                   	leave
40e669:	c2 0c 00             	ret    $0xc
40e66c:	8b ff                	mov    %edi,%edi
40e66e:	55                   	push   %ebp
40e66f:	8b ec                	mov    %esp,%ebp
40e671:	81 ec 28 03 00 00    	sub    $0x328,%esp
40e677:	a3 38 0f 43 00       	mov    %eax,0x430f38
40e67c:	89 0d 34 0f 43 00    	mov    %ecx,0x430f34
40e682:	89 15 30 0f 43 00    	mov    %edx,0x430f30
40e688:	89 1d 2c 0f 43 00    	mov    %ebx,0x430f2c
40e68e:	89 35 28 0f 43 00    	mov    %esi,0x430f28
40e694:	89 3d 24 0f 43 00    	mov    %edi,0x430f24
40e69a:	66 8c 15 50 0f 43 00 	data16 mov %ss,0x430f50
40e6a1:	66 8c 0d 44 0f 43 00 	data16 mov %cs,0x430f44
40e6a8:	66 8c 1d 20 0f 43 00 	data16 mov %ds,0x430f20
40e6af:	66 8c 05 1c 0f 43 00 	data16 mov %es,0x430f1c
40e6b6:	66 8c 25 18 0f 43 00 	data16 mov %fs,0x430f18
40e6bd:	66 8c 2d 14 0f 43 00 	data16 mov %gs,0x430f14
40e6c4:	9c                   	pushf
40e6c5:	8f 05 48 0f 43 00    	pop    0x430f48
40e6cb:	8b 45 00             	mov    0x0(%ebp),%eax
40e6ce:	a3 3c 0f 43 00       	mov    %eax,0x430f3c
40e6d3:	8b 45 04             	mov    0x4(%ebp),%eax
40e6d6:	a3 40 0f 43 00       	mov    %eax,0x430f40
40e6db:	8d 45 08             	lea    0x8(%ebp),%eax
40e6de:	a3 4c 0f 43 00       	mov    %eax,0x430f4c
40e6e3:	8b 85 e0 fc ff ff    	mov    -0x320(%ebp),%eax
40e6e9:	c7 05 88 0e 43 00 01 	movl   $0x10001,0x430e88
40e6f0:	00 01 00
40e6f3:	a1 40 0f 43 00       	mov    0x430f40,%eax
40e6f8:	a3 3c 0e 43 00       	mov    %eax,0x430e3c
40e6fd:	c7 05 30 0e 43 00 09 	movl   $0xc0000409,0x430e30
40e704:	04 00 c0
40e707:	c7 05 34 0e 43 00 01 	movl   $0x1,0x430e34
40e70e:	00 00 00
40e711:	a1 68 b2 42 00       	mov    0x42b268,%eax
40e716:	89 85 d8 fc ff ff    	mov    %eax,-0x328(%ebp)
40e71c:	a1 6c b2 42 00       	mov    0x42b26c,%eax
40e721:	89 85 dc fc ff ff    	mov    %eax,-0x324(%ebp)
40e727:	ff 15 b0 a0 41 00    	call   *0x41a0b0
40e72d:	a3 80 0e 43 00       	mov    %eax,0x430e80
40e732:	6a 01                	push   $0x1
40e734:	e8 b1 bf ff ff       	call   0x40a6ea
40e739:	59                   	pop    %ecx
40e73a:	6a 00                	push   $0x0
40e73c:	ff 15 ac a0 41 00    	call   *0x41a0ac
40e742:	68 f8 cb 41 00       	push   $0x41cbf8
40e747:	ff 15 a8 a0 41 00    	call   *0x41a0a8
40e74d:	83 3d 80 0e 43 00 00 	cmpl   $0x0,0x430e80
40e754:	75 08                	jne    0x40e75e
40e756:	6a 01                	push   $0x1
40e758:	e8 8d bf ff ff       	call   0x40a6ea
40e75d:	59                   	pop    %ecx
40e75e:	68 09 04 00 c0       	push   $0xc0000409
40e763:	ff 15 a4 a0 41 00    	call   *0x41a0a4
40e769:	50                   	push   %eax
40e76a:	ff 15 a0 a0 41 00    	call   *0x41a0a0
40e770:	c9                   	leave
40e771:	c3                   	ret
40e772:	8b ff                	mov    %edi,%edi
40e774:	55                   	push   %ebp
40e775:	8b ec                	mov    %esp,%ebp
40e777:	83 ec 10             	sub    $0x10,%esp
40e77a:	0f b7 48 42          	movzwl 0x42(%eax),%ecx
40e77e:	0f b7 50 44          	movzwl 0x44(%eax),%edx
40e782:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40e785:	89 55 f8             	mov    %edx,-0x8(%ebp)
40e788:	85 f6                	test   %esi,%esi
40e78a:	75 05                	jne    0x40e791
40e78c:	83 c8 ff             	or     $0xffffffff,%eax
40e78f:	c9                   	leave
40e790:	c3                   	ret
40e791:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
40e795:	53                   	push   %ebx
40e796:	57                   	push   %edi
40e797:	89 45 f0             	mov    %eax,-0x10(%ebp)
40e79a:	8d 46 04             	lea    0x4(%esi),%eax
40e79d:	50                   	push   %eax
40e79e:	6a 31                	push   $0x31
40e7a0:	51                   	push   %ecx
40e7a1:	33 db                	xor    %ebx,%ebx
40e7a3:	43                   	inc    %ebx
40e7a4:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e7a7:	53                   	push   %ebx
40e7a8:	50                   	push   %eax
40e7a9:	e8 e1 ec ff ff       	call   0x40d48f
40e7ae:	8b f8                	mov    %eax,%edi
40e7b0:	8d 46 08             	lea    0x8(%esi),%eax
40e7b3:	50                   	push   %eax
40e7b4:	6a 32                	push   $0x32
40e7b6:	ff 75 fc             	push   -0x4(%ebp)
40e7b9:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e7bc:	53                   	push   %ebx
40e7bd:	50                   	push   %eax
40e7be:	e8 cc ec ff ff       	call   0x40d48f
40e7c3:	0b f8                	or     %eax,%edi
40e7c5:	8d 46 0c             	lea    0xc(%esi),%eax
40e7c8:	50                   	push   %eax
40e7c9:	6a 33                	push   $0x33
40e7cb:	ff 75 fc             	push   -0x4(%ebp)
40e7ce:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e7d1:	53                   	push   %ebx
40e7d2:	50                   	push   %eax
40e7d3:	e8 b7 ec ff ff       	call   0x40d48f
40e7d8:	0b f8                	or     %eax,%edi
40e7da:	8d 46 10             	lea    0x10(%esi),%eax
40e7dd:	50                   	push   %eax
40e7de:	6a 34                	push   $0x34
40e7e0:	ff 75 fc             	push   -0x4(%ebp)
40e7e3:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e7e6:	53                   	push   %ebx
40e7e7:	50                   	push   %eax
40e7e8:	e8 a2 ec ff ff       	call   0x40d48f
40e7ed:	83 c4 50             	add    $0x50,%esp
40e7f0:	0b f8                	or     %eax,%edi
40e7f2:	8d 46 14             	lea    0x14(%esi),%eax
40e7f5:	50                   	push   %eax
40e7f6:	6a 35                	push   $0x35
40e7f8:	ff 75 fc             	push   -0x4(%ebp)
40e7fb:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e7fe:	53                   	push   %ebx
40e7ff:	50                   	push   %eax
40e800:	e8 8a ec ff ff       	call   0x40d48f
40e805:	0b f8                	or     %eax,%edi
40e807:	8d 46 18             	lea    0x18(%esi),%eax
40e80a:	50                   	push   %eax
40e80b:	6a 36                	push   $0x36
40e80d:	ff 75 fc             	push   -0x4(%ebp)
40e810:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e813:	53                   	push   %ebx
40e814:	50                   	push   %eax
40e815:	e8 75 ec ff ff       	call   0x40d48f
40e81a:	56                   	push   %esi
40e81b:	6a 37                	push   $0x37
40e81d:	ff 75 fc             	push   -0x4(%ebp)
40e820:	0b f8                	or     %eax,%edi
40e822:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e825:	53                   	push   %ebx
40e826:	50                   	push   %eax
40e827:	e8 63 ec ff ff       	call   0x40d48f
40e82c:	0b f8                	or     %eax,%edi
40e82e:	8d 46 20             	lea    0x20(%esi),%eax
40e831:	50                   	push   %eax
40e832:	6a 2a                	push   $0x2a
40e834:	ff 75 fc             	push   -0x4(%ebp)
40e837:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e83a:	53                   	push   %ebx
40e83b:	50                   	push   %eax
40e83c:	e8 4e ec ff ff       	call   0x40d48f
40e841:	83 c4 50             	add    $0x50,%esp
40e844:	0b f8                	or     %eax,%edi
40e846:	8d 46 24             	lea    0x24(%esi),%eax
40e849:	50                   	push   %eax
40e84a:	6a 2b                	push   $0x2b
40e84c:	ff 75 fc             	push   -0x4(%ebp)
40e84f:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e852:	53                   	push   %ebx
40e853:	50                   	push   %eax
40e854:	e8 36 ec ff ff       	call   0x40d48f
40e859:	0b f8                	or     %eax,%edi
40e85b:	8d 46 28             	lea    0x28(%esi),%eax
40e85e:	50                   	push   %eax
40e85f:	6a 2c                	push   $0x2c
40e861:	ff 75 fc             	push   -0x4(%ebp)
40e864:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e867:	53                   	push   %ebx
40e868:	50                   	push   %eax
40e869:	e8 21 ec ff ff       	call   0x40d48f
40e86e:	0b f8                	or     %eax,%edi
40e870:	8d 46 2c             	lea    0x2c(%esi),%eax
40e873:	50                   	push   %eax
40e874:	6a 2d                	push   $0x2d
40e876:	ff 75 fc             	push   -0x4(%ebp)
40e879:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e87c:	53                   	push   %ebx
40e87d:	50                   	push   %eax
40e87e:	e8 0c ec ff ff       	call   0x40d48f
40e883:	0b f8                	or     %eax,%edi
40e885:	8d 46 30             	lea    0x30(%esi),%eax
40e888:	50                   	push   %eax
40e889:	6a 2e                	push   $0x2e
40e88b:	ff 75 fc             	push   -0x4(%ebp)
40e88e:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e891:	53                   	push   %ebx
40e892:	50                   	push   %eax
40e893:	e8 f7 eb ff ff       	call   0x40d48f
40e898:	83 c4 50             	add    $0x50,%esp
40e89b:	0b f8                	or     %eax,%edi
40e89d:	8d 46 34             	lea    0x34(%esi),%eax
40e8a0:	50                   	push   %eax
40e8a1:	6a 2f                	push   $0x2f
40e8a3:	ff 75 fc             	push   -0x4(%ebp)
40e8a6:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e8a9:	53                   	push   %ebx
40e8aa:	50                   	push   %eax
40e8ab:	e8 df eb ff ff       	call   0x40d48f
40e8b0:	0b f8                	or     %eax,%edi
40e8b2:	8d 46 1c             	lea    0x1c(%esi),%eax
40e8b5:	50                   	push   %eax
40e8b6:	6a 30                	push   $0x30
40e8b8:	ff 75 fc             	push   -0x4(%ebp)
40e8bb:	8d 45 f0             	lea    -0x10(%ebp),%eax
40e8be:	53                   	push   %ebx
40e8bf:	50                   	push   %eax
40e8c0:	e8 ca eb ff ff       	call   0x40d48f