40f542:	74 4f                	je     0x40f593
40f544:	53                   	push   %ebx
40f545:	8d 56 48             	lea    0x48(%esi),%edx
40f548:	52                   	push   %edx
40f549:	6a 01                	push   $0x1
40f54b:	6a 00                	push   $0x0
40f54d:	57                   	push   %edi
40f54e:	e8 5d f5 ff ff       	call   0x40eab0
40f553:	83 c4 14             	add    $0x14,%esp
40f556:	85 c0                	test   %eax,%eax
40f558:	75 42                	jne    0x40f59c
40f55a:	81 fb 24 10 00 00    	cmp    $0x1024,%ebx
40f560:	75 1d                	jne    0x40f57f
40f562:	56                   	push   %esi
40f563:	57                   	push   %edi
40f564:	c7 87 fc 09 00 00 01 	movl   $0x1,0x9fc(%edi)
40f56b:	00 00 00
40f56e:	e8 cd 8d 00 00       	call   0x418340
40f573:	83 c4 08             	add    $0x8,%esp
40f576:	5e                   	pop    %esi
40f577:	5f                   	pop    %edi
40f578:	33 c0                	xor    %eax,%eax
40f57a:	5b                   	pop    %ebx
40f57b:	8b e5                	mov    %ebp,%esp
40f57d:	5d                   	pop    %ebp
40f57e:	c3                   	ret
40f57f:	56                   	push   %esi
40f580:	57                   	push   %edi
40f581:	c7 87 00 0a 00 00 01 	movl   $0x1,0xa00(%edi)
40f588:	00 00 00
40f58b:	e8 b0 8d 00 00       	call   0x418340
40f590:	83 c4 08             	add    $0x8,%esp
40f593:	5e                   	pop    %esi
40f594:	5f                   	pop    %edi
40f595:	33 c0                	xor    %eax,%eax
40f597:	5b                   	pop    %ebx
40f598:	8b e5                	mov    %ebp,%esp
40f59a:	5d                   	pop    %ebp
40f59b:	c3                   	ret
40f59c:	6a 00                	push   $0x0
40f59e:	6a 04                	push   $0x4
40f5a0:	8d 9e f4 01 00 00    	lea    0x1f4(%esi),%ebx
40f5a6:	53                   	push   %ebx
40f5a7:	57                   	push   %edi
40f5a8:	e8 c3 91 ff ff       	call   0x408770
40f5ad:	6a 00                	push   $0x0
40f5af:	8d 46 28             	lea    0x28(%esi),%eax
40f5b2:	50                   	push   %eax
40f5b3:	53                   	push   %ebx
40f5b4:	e8 07 92 00 00       	call   0x4187c0
40f5b9:	53                   	push   %ebx
40f5ba:	8d 8d f0 fb ff ff    	lea    -0x410(%ebp),%ecx
40f5c0:	51                   	push   %ecx
40f5c1:	57                   	push   %edi
40f5c2:	e8 49 f1 ff ff       	call   0x40e710
40f5c7:	8d 95 f0 fb ff ff    	lea    -0x410(%ebp),%edx
40f5cd:	53                   	push   %ebx
40f5ce:	52                   	push   %edx
40f5cf:	e8 2c 94 00 00       	call   0x418a00
40f5d4:	8b 96 b4 01 00 00    	mov    0x1b4(%esi),%edx
40f5da:	83 c4 30             	add    $0x30,%esp
40f5dd:	8d 45 f0             	lea    -0x10(%ebp),%eax
40f5e0:	50                   	push   %eax
40f5e1:	8d 8d f0 fb ff ff    	lea    -0x410(%ebp),%ecx
40f5e7:	51                   	push   %ecx
40f5e8:	ff d2                	call   *%edx
40f5ea:	85 c0                	test   %eax,%eax
40f5ec:	0f 85 bd 00 00 00    	jne    0x40f6af
40f5f2:	8b 55 f0             	mov    -0x10(%ebp),%edx
40f5f5:	50                   	push   %eax
40f5f6:	8d 45 fc             	lea    -0x4(%ebp),%eax
40f5f9:	50                   	push   %eax
40f5fa:	8b 86 bc 01 00 00    	mov    0x1bc(%esi),%eax
40f600:	6a ff                	push   $0xffffffff
40f602:	8d 8e a8 00 00 00    	lea    0xa8(%esi),%ecx
40f608:	51                   	push   %ecx
40f609:	52                   	push   %edx
40f60a:	ff d0                	call   *%eax
40f60c:	85 c0                	test   %eax,%eax
40f60e:	0f 85 9b 00 00 00    	jne    0x40f6af
40f614:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f617:	8b 96 b8 01 00 00    	mov    0x1b8(%esi),%edx
40f61d:	51                   	push   %ecx
40f61e:	ff d2                	call   *%edx
40f620:	83 f8 64             	cmp    $0x64,%eax
40f623:	0f 85 86 00 00 00    	jne    0x40f6af
40f629:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40f630:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f633:	8b 8e c0 01 00 00    	mov    0x1c0(%esi),%ecx
40f639:	6a 00                	push   $0x0
40f63b:	50                   	push   %eax
40f63c:	ff d1                	call   *%ecx
40f63e:	8b 55 fc             	mov    -0x4(%ebp),%edx
40f641:	6a 01                	push   $0x1
40f643:	89 45 f4             	mov    %eax,-0xc(%ebp)
40f646:	8b 86 c0 01 00 00    	mov    0x1c0(%esi),%eax
40f64c:	52                   	push   %edx
40f64d:	ff d0                	call   *%eax
40f64f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f652:	8b 96 c4 01 00 00    	mov    0x1c4(%esi),%edx
40f658:	6a 02                	push   $0x2
40f65a:	51                   	push   %ecx
40f65b:	8b d8                	mov    %eax,%ebx
40f65d:	ff d2                	call   *%edx
40f65f:	8b 8e c8 01 00 00    	mov    0x1c8(%esi),%ecx
40f665:	89 45 f8             	mov    %eax,-0x8(%ebp)
40f668:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f66b:	6a 02                	push   $0x2
40f66d:	50                   	push   %eax
40f66e:	ff d1                	call   *%ecx
40f670:	80 3b 00             	cmpb   $0x0,(%ebx)
40f673:	74 29                	je     0x40f69e
40f675:	8b 55 0c             	mov    0xc(%ebp),%edx
40f678:	8b 8e cc 01 00 00    	mov    0x1cc(%esi),%ecx
40f67e:	52                   	push   %edx
40f67f:	8b 55 f8             	mov    -0x8(%ebp),%edx
40f682:	51                   	push   %ecx
40f683:	50                   	push   %eax
40f684:	8b 45 f4             	mov    -0xc(%ebp),%eax
40f687:	52                   	push   %edx
40f688:	53                   	push   %ebx
40f689:	50                   	push   %eax
40f68a:	8d 4e 08             	lea    0x8(%esi),%ecx
40f68d:	51                   	push   %ecx
40f68e:	8d 96 f4 09 00 00    	lea    0x9f4(%esi),%edx
40f694:	52                   	push   %edx
40f695:	57                   	push   %edi
40f696:	e8 c5 f8 ff ff       	call   0x40ef60
40f69b:	83 c4 24             	add    $0x24,%esp
40f69e:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f6a1:	8b 8e b8 01 00 00    	mov    0x1b8(%esi),%ecx
40f6a7:	50                   	push   %eax
40f6a8:	ff d1                	call   *%ecx
40f6aa:	83 f8 64             	cmp    $0x64,%eax
40f6ad:	74 81                	je     0x40f630
40f6af:	56                   	push   %esi
40f6b0:	57                   	push   %edi
40f6b1:	e8 8a 8c 00 00       	call   0x418340
40f6b6:	83 c4 08             	add    $0x8,%esp
40f6b9:	81 7d 0c 24 10 00 00 	cmpl   $0x1024,0xc(%ebp)
40f6c0:	75 16                	jne    0x40f6d8
40f6c2:	5e                   	pop    %esi
40f6c3:	c7 87 fc 09 00 00 01 	movl   $0x1,0x9fc(%edi)
40f6ca:	00 00 00
40f6cd:	5f                   	pop    %edi
40f6ce:	b8 01 00 00 00       	mov    $0x1,%eax
40f6d3:	5b                   	pop    %ebx
40f6d4:	8b e5                	mov    %ebp,%esp
40f6d6:	5d                   	pop    %ebp
40f6d7:	c3                   	ret
40f6d8:	5e                   	pop    %esi
40f6d9:	c7 87 00 0a 00 00 01 	movl   $0x1,0xa00(%edi)
40f6e0:	00 00 00
40f6e3:	5f                   	pop    %edi
40f6e4:	b8 01 00 00 00       	mov    $0x1,%eax
40f6e9:	5b                   	pop    %ebx
40f6ea:	8b e5                	mov    %ebp,%esp
40f6ec:	5d                   	pop    %ebp
40f6ed:	c3                   	ret
40f6ee:	cc                   	int3
40f6ef:	cc                   	int3
40f6f0:	55                   	push   %ebp
40f6f1:	8b ec                	mov    %esp,%ebp
40f6f3:	83 ec 20             	sub    $0x20,%esp
40f6f6:	53                   	push   %ebx
40f6f7:	56                   	push   %esi
40f6f8:	57                   	push   %edi
40f6f9:	8b 7d 14             	mov    0x14(%ebp),%edi
40f6fc:	8b 4f 14             	mov    0x14(%edi),%ecx
40f6ff:	68 00 00 00 f0       	push   $0xf0000000
40f704:	33 db                	xor    %ebx,%ebx
40f706:	6a 01                	push   $0x1
40f708:	53                   	push   %ebx
40f709:	53                   	push   %ebx
40f70a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40f70d:	50                   	push   %eax
40f70e:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40f711:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40f714:	ff d1                	call   *%ecx
40f716:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f719:	8b 4f 04             	mov    0x4(%edi),%ecx
40f71c:	8d 55 fc             	lea    -0x4(%ebp),%edx
40f71f:	52                   	push   %edx
40f720:	53                   	push   %ebx
40f721:	53                   	push   %ebx
40f722:	68 04 80 00 00       	push   $0x8004
40f727:	50                   	push   %eax
40f728:	ff d1                	call   *%ecx
40f72a:	8b 75 0c             	mov    0xc(%ebp),%esi
40f72d:	53                   	push   %ebx
40f72e:	56                   	push   %esi
40f72f:	e8 1c 8f 00 00       	call   0x418650
40f734:	8b 0f                	mov    (%edi),%ecx
40f736:	83 c4 04             	add    $0x4,%esp
40f739:	8d 54 00 02          	lea    0x2(%eax,%eax,1),%edx
40f73d:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f740:	52                   	push   %edx
40f741:	56                   	push   %esi
40f742:	50                   	push   %eax
40f743:	ff d1                	call   *%ecx
40f745:	85 c0                	test   %eax,%eax
40f747:	0f 84 b9 00 00 00    	je     0x40f806
40f74d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f750:	53                   	push   %ebx
40f751:	8d 55 f4             	lea    -0xc(%ebp),%edx
40f754:	52                   	push   %edx
40f755:	8b 57 0c             	mov    0xc(%edi),%edx
40f758:	8d 45 e0             	lea    -0x20(%ebp),%eax
40f75b:	50                   	push   %eax
40f75c:	6a 02                	push   $0x2
40f75e:	51                   	push   %ecx
40f75f:	c7 45 f4 14 00 00 00 	movl   $0x14,-0xc(%ebp)
40f766:	ff d2                	call   *%edx
40f768:	85 c0                	test   %eax,%eax
40f76a:	0f 84 8d 00 00 00    	je     0x40f7fd
40f770:	8b 75 10             	mov    0x10(%ebp),%esi
40f773:	32 db                	xor    %bl,%bl
40f775:	33 ff                	xor    %edi,%edi
40f777:	8a 4c 3d e0          	mov    -0x20(%ebp,%edi,1),%cl
40f77b:	8a c1                	mov    %cl,%al
40f77d:	24 f0                	and    $0xf0,%al
40f77f:	02 d9                	add    %cl,%bl
40f781:	3c a0                	cmp    $0xa0,%al
40f783:	0f b6 c1             	movzbl %cl,%eax
40f786:	8b d0                	mov    %eax,%edx
40f788:	73 08                	jae    0x40f792
40f78a:	c1 ea 04             	shr    $0x4,%edx
40f78d:	80 c2 30             	add    $0x30,%dl
40f790:	eb 06                	jmp    0x40f798
40f792:	c1 ea 04             	shr    $0x4,%edx
40f795:	80 c2 37             	add    $0x37,%dl
40f798:	80 e1 0f             	and    $0xf,%cl
40f79b:	24 0f                	and    $0xf,%al
40f79d:	80 f9 0a             	cmp    $0xa,%cl
40f7a0:	73 04                	jae    0x40f7a6
40f7a2:	04 30                	add    $0x30,%al
40f7a4:	eb 02                	jmp    0x40f7a8
40f7a6:	04 37                	add    $0x37,%al
40f7a8:	0f b6 ca             	movzbl %dl,%ecx
40f7ab:	0f b6 d0             	movzbl %al,%edx
40f7ae:	66 89 0e             	mov    %cx,(%esi)
40f7b1:	66 89 56 02          	mov    %dx,0x2(%esi)
40f7b5:	47                   	inc    %edi
40f7b6:	83 c6 04             	add    $0x4,%esi
40f7b9:	83 ff 14             	cmp    $0x14,%edi
40f7bc:	7c b9                	jl     0x40f777
40f7be:	8a c3                	mov    %bl,%al
40f7c0:	24 f0                	and    $0xf0,%al
40f7c2:	3c a0                	cmp    $0xa0,%al
40f7c4:	0f b6 c3             	movzbl %bl,%eax
40f7c7:	8b c8                	mov    %eax,%ecx
40f7c9:	73 08                	jae    0x40f7d3
40f7cb:	c1 e9 04             	shr    $0x4,%ecx
40f7ce:	80 c1 30             	add    $0x30,%cl
40f7d1:	eb 06                	jmp    0x40f7d9
40f7d3:	c1 e9 04             	shr    $0x4,%ecx
40f7d6:	80 c1 37             	add    $0x37,%cl
40f7d9:	80 e3 0f             	and    $0xf,%bl
40f7dc:	24 0f                	and    $0xf,%al
40f7de:	80 fb 0a             	cmp    $0xa,%bl
40f7e1:	73 04                	jae    0x40f7e7
40f7e3:	04 30                	add    $0x30,%al
40f7e5:	eb 02                	jmp    0x40f7e9
40f7e7:	04 37                	add    $0x37,%al
40f7e9:	8b 7d 14             	mov    0x14(%ebp),%edi
40f7ec:	0f b6 d1             	movzbl %cl,%edx
40f7ef:	8b 4d 10             	mov    0x10(%ebp),%ecx
40f7f2:	0f b6 c0             	movzbl %al,%eax
40f7f5:	66 89 51 50          	mov    %dx,0x50(%ecx)
40f7f9:	66 89 41 52          	mov    %ax,0x52(%ecx)
40f7fd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40f800:	8b 57 08             	mov    0x8(%edi),%edx
40f803:	51                   	push   %ecx
40f804:	ff d2                	call   *%edx
40f806:	8b 45 f8             	mov    -0x8(%ebp),%eax
40f809:	8b 4f 10             	mov    0x10(%edi),%ecx
40f80c:	6a 00                	push   $0x0
40f80e:	50                   	push   %eax
40f80f:	ff d1                	call   *%ecx
40f811:	5f                   	pop    %edi
40f812:	5e                   	pop    %esi
40f813:	5b                   	pop    %ebx
40f814:	8b e5                	mov    %ebp,%esp
40f816:	5d                   	pop    %ebp
40f817:	c3                   	ret
40f818:	8d 42 94             	lea    -0x6c(%edx),%eax
40f81b:	3a a8 ae 59 13 55    	cmp    0x551359ae(%eax),%ch
40f821:	8b ec                	mov    %esp,%ebp
40f823:	83 ec 78             	sub    $0x78,%esp
40f826:	8b 45 0c             	mov    0xc(%ebp),%eax
40f829:	8b 48 08             	mov    0x8(%eax),%ecx
40f82c:	56                   	push   %esi
40f82d:	57                   	push   %edi
40f82e:	8b 7d 10             	mov    0x10(%ebp),%edi
40f831:	03 c8                	add    %eax,%ecx
40f833:	8b c7                	mov    %edi,%eax
40f835:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40f838:	c7 45 e8 00 08 00 00 	movl   $0x800,-0x18(%ebp)
40f83f:	89 7d f4             	mov    %edi,-0xc(%ebp)
40f842:	8d 50 02             	lea    0x2(%eax),%edx
40f845:	66 8b 08             	mov    (%eax),%cx
40f848:	83 c0 02             	add    $0x2,%eax
40f84b:	66 85 c9             	test   %cx,%cx
40f84e:	75 f5                	jne    0x40f845
40f850:	8b 75 08             	mov    0x8(%ebp),%esi
40f853:	2b c2                	sub    %edx,%eax
40f855:	d1 f8                	sar    $1,%eax
40f857:	8d 54 00 02          	lea    0x2(%eax,%eax,1),%edx
40f85b:	33 c0                	xor    %eax,%eax
40f85d:	89 55 f0             	mov    %edx,-0x10(%ebp)
40f860:	33 d2                	xor    %edx,%edx
40f862:	66 89 55 d4          	mov    %dx,-0x2c(%ebp)
40f866:	8b 96 04 0a 00 00    	mov    0xa04(%esi),%edx
40f86c:	33 c9                	xor    %ecx,%ecx
40f86e:	68 00 04 00 00       	push   $0x400
40f873:	52                   	push   %edx
40f874:	c7 45 d0 0d 00 0a 00 	movl   $0xa000d,-0x30(%ebp)
40f87b:	89 45 d6             	mov    %eax,-0x2a(%ebp)
40f87e:	89 45 da             	mov    %eax,-0x26(%ebp)
40f881:	89 45 de             	mov    %eax,-0x22(%ebp)
40f884:	89 45 e2             	mov    %eax,-0x1e(%ebp)
40f887:	66 89 45 e6          	mov    %ax,-0x1a(%ebp)
40f88b:	c7 45 88 55 00 72 00 	movl   $0x720055,-0x78(%ebp)
40f892:	c7 45 8c 6c 00 3a 00 	movl   $0x3a006c,-0x74(%ebp)
40f899:	c7 45 90 09 00 00 00 	movl   $0x9,-0x70(%ebp)
40f8a0:	89 45 94             	mov    %eax,-0x6c(%ebp)
40f8a3:	89 45 98             	mov    %eax,-0x68(%ebp)
40f8a6:	89 45 9c             	mov    %eax,-0x64(%ebp)
40f8a9:	c7 45 b8 55 00 73 00 	movl   $0x730055,-0x48(%ebp)
40f8b0:	c7 45 bc 65 00 72 00 	movl   $0x720065,-0x44(%ebp)
40f8b7:	c7 45 c0 3a 00 09 00 	movl   $0x9003a,-0x40(%ebp)
40f8be:	66 89 45 c4          	mov    %ax,-0x3c(%ebp)
40f8c2:	89 45 c6             	mov    %eax,-0x3a(%ebp)
40f8c5:	89 45 ca             	mov    %eax,-0x36(%ebp)
40f8c8:	66 89 45 ce          	mov    %ax,-0x32(%ebp)
40f8cc:	c7 45 a0 50 00 61 00 	movl   $0x610050,-0x60(%ebp)
40f8d3:	c7 45 a4 73 00 73 00 	movl   $0x730073,-0x5c(%ebp)
40f8da:	c7 45 a8 3a 00 09 00 	movl   $0x9003a,-0x58(%ebp)
40f8e1:	66 89 4d ac          	mov    %cx,-0x54(%ebp)
40f8e5:	89 45 ae             	mov    %eax,-0x52(%ebp)
40f8e8:	89 45 b2             	mov    %eax,-0x4e(%ebp)
40f8eb:	66 89 45 b6          	mov    %ax,-0x4a(%ebp)
40f8ef:	c7 86 08 0a 00 00 04 	movl   $0x4,0xa08(%esi)
40f8f6:	00 00 00
40f8f9:	e8 92 8a 00 00       	call   0x418390
40f8fe:	8b 8e 04 0a 00 00    	mov    0xa04(%esi),%ecx
40f904:	6a 06                	push   $0x6
40f906:	8d 45 d0             	lea    -0x30(%ebp),%eax
40f909:	50                   	push   %eax
40f90a:	51                   	push   %ecx