40f5d9:	e8 d8 8d ff ff       	call   0x4083b6
40f5de:	eb 02                	jmp    0x40f5e2
40f5e0:	ff 0b                	decl   (%ebx)
40f5e2:	5f                   	pop    %edi
40f5e3:	5e                   	pop    %esi
40f5e4:	5b                   	pop    %ebx
40f5e5:	c9                   	leave
40f5e6:	c3                   	ret
40f5e7:	8b ff                	mov    %edi,%edi
40f5e9:	56                   	push   %esi
40f5ea:	8b f1                	mov    %ecx,%esi
40f5ec:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
40f5f0:	74 08                	je     0x40f5fa
40f5f2:	ff 76 04             	push   0x4(%esi)
40f5f5:	e8 97 8d ff ff       	call   0x408391
40f5fa:	83 3e 00             	cmpl   $0x0,(%esi)
40f5fd:	74 07                	je     0x40f606
40f5ff:	ff 36                	push   (%esi)
40f601:	e8 8b 8d ff ff       	call   0x408391
40f606:	5e                   	pop    %esi
40f607:	c3                   	ret
40f608:	8b ff                	mov    %edi,%edi
40f60a:	55                   	push   %ebp
40f60b:	8b ec                	mov    %esp,%ebp
40f60d:	83 e4 f8             	and    $0xfffffff8,%esp
40f610:	83 ec 14             	sub    $0x14,%esp
40f613:	8b 45 08             	mov    0x8(%ebp),%eax
40f616:	53                   	push   %ebx
40f617:	56                   	push   %esi
40f618:	57                   	push   %edi
40f619:	6a 40                	push   $0x40
40f61b:	89 54 24 14          	mov    %edx,0x14(%esp)
40f61f:	8b f1                	mov    %ecx,%esi
40f621:	5a                   	pop    %edx
40f622:	6a 08                	push   $0x8
40f624:	33 ff                	xor    %edi,%edi
40f626:	59                   	pop    %ecx
40f627:	89 38                	mov    %edi,(%eax)
40f629:	e8 49 85 ff ff       	call   0x407b77
40f62e:	8b d8                	mov    %eax,%ebx
40f630:	89 5c 24 0c          	mov    %ebx,0xc(%esp)
40f634:	85 db                	test   %ebx,%ebx
40f636:	75 19                	jne    0x40f651
40f638:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40f63d:	ba 42 01 00 00       	mov    $0x142,%edx
40f642:	57                   	push   %edi
40f643:	51                   	push   %ecx
40f644:	8b 4d 04             	mov    0x4(%ebp),%ecx
40f647:	e8 83 8c ff ff       	call   0x4082cf
40f64c:	e9 d6 00 00 00       	jmp    0x40f727
40f651:	89 7c 24 18          	mov    %edi,0x18(%esp)
40f655:	89 7c 24 1c          	mov    %edi,0x1c(%esp)
40f659:	f6 c3 03             	test   $0x3,%bl
40f65c:	0f 85 d0 00 00 00    	jne    0x40f732
40f662:	57                   	push   %edi
40f663:	c1 e8 02             	shr    $0x2,%eax
40f666:	50                   	push   %eax
40f667:	51                   	push   %ecx
40f668:	56                   	push   %esi
40f669:	8d 4c 24 28          	lea    0x28(%esp),%ecx
40f66d:	e8 69 8d ff ff       	call   0x4083db
40f672:	8b f8                	mov    %eax,%edi
40f674:	85 ff                	test   %edi,%edi
40f676:	79 1d                	jns    0x40f695
40f678:	57                   	push   %edi
40f679:	51                   	push   %ecx
40f67a:	8b 4d 04             	mov    0x4(%ebp),%ecx
40f67d:	ba 45 01 00 00       	mov    $0x145,%edx
40f682:	e8 48 8c ff ff       	call   0x4082cf
40f687:	8b 74 24 0c          	mov    0xc(%esp),%esi
40f68b:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40f68f:	8b 5c 24 18          	mov    0x18(%esp),%ebx
40f693:	eb 6a                	jmp    0x40f6ff
40f695:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40f699:	8d 7b 10             	lea    0x10(%ebx),%edi
40f69c:	c7 03 01 00 00 00    	movl   $0x1,(%ebx)
40f6a2:	6a 30                	push   $0x30
40f6a4:	5e                   	pop    %esi
40f6a5:	8b 01                	mov    (%ecx),%eax
40f6a7:	89 43 04             	mov    %eax,0x4(%ebx)
40f6aa:	83 21 00             	andl   $0x0,(%ecx)
40f6ad:	8b 44 24 18          	mov    0x18(%esp),%eax
40f6b1:	89 43 08             	mov    %eax,0x8(%ebx)
40f6b4:	33 c0                	xor    %eax,%eax
40f6b6:	89 44 24 10          	mov    %eax,0x10(%esp)
40f6ba:	89 44 24 18          	mov    %eax,0x18(%esp)
40f6be:	8b 44 24 1c          	mov    0x1c(%esp),%eax
40f6c2:	89 43 0c             	mov    %eax,0xc(%ebx)
40f6c5:	33 c0                	xor    %eax,%eax
40f6c7:	56                   	push   %esi
40f6c8:	50                   	push   %eax
40f6c9:	57                   	push   %edi
40f6ca:	89 44 24 20          	mov    %eax,0x20(%esp)
40f6ce:	89 44 24 28          	mov    %eax,0x28(%esp)
40f6d2:	e8 30 14 00 00       	call   0x410b07
40f6d7:	83 c4 0c             	add    $0xc,%esp
40f6da:	66 89 37             	mov    %si,(%edi)
40f6dd:	c7 47 04 01 00 00 00 	movl   $0x1,0x4(%edi)
40f6e4:	33 c0                	xor    %eax,%eax
40f6e6:	83 c7 08             	add    $0x8,%edi
40f6e9:	33 f6                	xor    %esi,%esi
40f6eb:	6a 0a                	push   $0xa
40f6ed:	59                   	pop    %ecx
40f6ee:	f3 ab                	rep stos %eax,%es:(%edi)
40f6f0:	8b 45 08             	mov    0x8(%ebp),%eax
40f6f3:	33 ff                	xor    %edi,%edi
40f6f5:	89 18                	mov    %ebx,(%eax)
40f6f7:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40f6fb:	8b 44 24 14          	mov    0x14(%esp),%eax
40f6ff:	85 c0                	test   %eax,%eax
40f701:	74 06                	je     0x40f709
40f703:	50                   	push   %eax
40f704:	e8 88 8c ff ff       	call   0x408391
40f709:	85 db                	test   %ebx,%ebx
40f70b:	74 06                	je     0x40f713
40f70d:	53                   	push   %ebx
40f70e:	e8 7e 8c ff ff       	call   0x408391
40f713:	85 f6                	test   %esi,%esi
40f715:	74 10                	je     0x40f727
40f717:	56                   	push   %esi
40f718:	6a 00                	push   $0x0
40f71a:	ff 15 44 31 43 00    	call   *0x433144
40f720:	50                   	push   %eax
40f721:	ff 15 48 31 43 00    	call   *0x433148
40f727:	8b c7                	mov    %edi,%eax
40f729:	5f                   	pop    %edi
40f72a:	5e                   	pop    %esi
40f72b:	5b                   	pop    %ebx
40f72c:	8b e5                	mov    %ebp,%esp
40f72e:	5d                   	pop    %ebp
40f72f:	c2 04 00             	ret    $0x4
40f732:	e8 54 8c ff ff       	call   0x40838b
40f737:	cc                   	int3
40f738:	8b ff                	mov    %edi,%edi
40f73a:	55                   	push   %ebp
40f73b:	8b ec                	mov    %esp,%ebp
40f73d:	51                   	push   %ecx
40f73e:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40f741:	8d 41 28             	lea    0x28(%ecx),%eax
40f744:	57                   	push   %edi
40f745:	8b 7d fc             	mov    -0x4(%ebp),%edi
40f748:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f74b:	3b f8                	cmp    %eax,%edi
40f74d:	74 3b                	je     0x40f78a
40f74f:	53                   	push   %ebx
40f750:	56                   	push   %esi
40f751:	8b 1f                	mov    (%edi),%ebx
40f753:	85 db                	test   %ebx,%ebx
40f755:	74 24                	je     0x40f77b
40f757:	8b f3                	mov    %ebx,%esi
40f759:	8b 5b 04             	mov    0x4(%ebx),%ebx
40f75c:	8d 4e 08             	lea    0x8(%esi),%ecx
40f75f:	e8 16 90 ff ff       	call   0x40877a
40f764:	56                   	push   %esi
40f765:	6a 00                	push   $0x0
40f767:	ff 15 44 31 43 00    	call   *0x433144
40f76d:	50                   	push   %eax
40f76e:	ff 15 48 31 43 00    	call   *0x433148
40f774:	85 db                	test   %ebx,%ebx
40f776:	75 df                	jne    0x40f757
40f778:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f77b:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
40f781:	83 c7 04             	add    $0x4,%edi
40f784:	3b f8                	cmp    %eax,%edi
40f786:	75 c9                	jne    0x40f751
40f788:	5e                   	pop    %esi
40f789:	5b                   	pop    %ebx
40f78a:	5f                   	pop    %edi
40f78b:	c9                   	leave
40f78c:	c3                   	ret
40f78d:	8b ff                	mov    %edi,%edi
40f78f:	55                   	push   %ebp
40f790:	8b ec                	mov    %esp,%ebp
40f792:	56                   	push   %esi
40f793:	57                   	push   %edi
40f794:	8b 39                	mov    (%ecx),%edi
40f796:	33 f6                	xor    %esi,%esi
40f798:	56                   	push   %esi
40f799:	6a ff                	push   $0xffffffff
40f79b:	57                   	push   %edi
40f79c:	ff 15 28 31 43 00    	call   *0x433128
40f7a2:	b9 80 00 00 00       	mov    $0x80,%ecx
40f7a7:	3d 02 01 00 00       	cmp    $0x102,%eax
40f7ac:	74 08                	je     0x40f7b6
40f7ae:	85 c0                	test   %eax,%eax
40f7b0:	74 0c                	je     0x40f7be
40f7b2:	3b c1                	cmp    %ecx,%eax
40f7b4:	75 15                	jne    0x40f7cb
40f7b6:	85 c0                	test   %eax,%eax
40f7b8:	74 04                	je     0x40f7be
40f7ba:	3b c1                	cmp    %ecx,%eax
40f7bc:	75 02                	jne    0x40f7c0
40f7be:	8b f7                	mov    %edi,%esi
40f7c0:	8b 45 08             	mov    0x8(%ebp),%eax
40f7c3:	5f                   	pop    %edi
40f7c4:	89 30                	mov    %esi,(%eax)
40f7c6:	5e                   	pop    %esi
40f7c7:	5d                   	pop    %ebp
40f7c8:	c2 10 00             	ret    $0x10
40f7cb:	51                   	push   %ecx
40f7cc:	8b 4d 04             	mov    0x4(%ebp),%ecx
40f7cf:	e8 91 8b ff ff       	call   0x408365
40f7d4:	cc                   	int3
40f7d5:	8b ff                	mov    %edi,%edi
40f7d7:	55                   	push   %ebp
40f7d8:	8b ec                	mov    %esp,%ebp
40f7da:	51                   	push   %ecx
40f7db:	53                   	push   %ebx
40f7dc:	56                   	push   %esi
40f7dd:	8b f1                	mov    %ecx,%esi
40f7df:	8b da                	mov    %edx,%ebx
40f7e1:	33 c9                	xor    %ecx,%ecx
40f7e3:	57                   	push   %edi
40f7e4:	3b f3                	cmp    %ebx,%esi
40f7e6:	74 45                	je     0x40f82d
40f7e8:	8b 7d 08             	mov    0x8(%ebp),%edi
40f7eb:	85 ff                	test   %edi,%edi
40f7ed:	74 3e                	je     0x40f82d
40f7ef:	66 39 0f             	cmp    %cx,(%edi)
40f7f2:	74 39                	je     0x40f82d
40f7f4:	8b cf                	mov    %edi,%ecx
40f7f6:	e8 bb 84 ff ff       	call   0x407cb6
40f7fb:	2b de                	sub    %esi,%ebx
40f7fd:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f800:	3b d8                	cmp    %eax,%ebx
40f802:	73 0c                	jae    0x40f810
40f804:	8b 45 0c             	mov    0xc(%ebp),%eax
40f807:	85 c0                	test   %eax,%eax
40f809:	74 2b                	je     0x40f836
40f80b:	83 20 00             	andl   $0x0,(%eax)
40f80e:	eb 26                	jmp    0x40f836
40f810:	50                   	push   %eax
40f811:	57                   	push   %edi
40f812:	53                   	push   %ebx
40f813:	56                   	push   %esi
40f814:	ff 15 e8 33 43 00    	call   *0x4333e8
40f81a:	8b 45 0c             	mov    0xc(%ebp),%eax
40f81d:	83 c4 10             	add    $0x10,%esp
40f820:	85 c0                	test   %eax,%eax
40f822:	74 02                	je     0x40f826
40f824:	89 30                	mov    %esi,(%eax)
40f826:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f829:	03 c6                	add    %esi,%eax
40f82b:	eb 0b                	jmp    0x40f838
40f82d:	8b 45 0c             	mov    0xc(%ebp),%eax
40f830:	85 c0                	test   %eax,%eax
40f832:	74 02                	je     0x40f836
40f834:	89 08                	mov    %ecx,(%eax)
40f836:	8b c6                	mov    %esi,%eax
40f838:	5f                   	pop    %edi
40f839:	5e                   	pop    %esi
40f83a:	5b                   	pop    %ebx
40f83b:	c9                   	leave
40f83c:	c2 08 00             	ret    $0x8
40f83f:	8b ff                	mov    %edi,%edi
40f841:	55                   	push   %ebp
40f842:	8b ec                	mov    %esp,%ebp
40f844:	51                   	push   %ecx
40f845:	53                   	push   %ebx
40f846:	56                   	push   %esi
40f847:	8b da                	mov    %edx,%ebx
40f849:	8b f1                	mov    %ecx,%esi
40f84b:	57                   	push   %edi
40f84c:	3b f3                	cmp    %ebx,%esi
40f84e:	74 39                	je     0x40f889
40f850:	8b 7d 08             	mov    0x8(%ebp),%edi
40f853:	85 ff                	test   %edi,%edi
40f855:	74 32                	je     0x40f889
40f857:	80 3f 00             	cmpb   $0x0,(%edi)
40f85a:	74 2d                	je     0x40f889
40f85c:	8b cf                	mov    %edi,%ecx
40f85e:	e8 3b 84 ff ff       	call   0x407c9e
40f863:	2b de                	sub    %esi,%ebx
40f865:	89 45 fc             	mov    %eax,-0x4(%ebp)
40f868:	3b d8                	cmp    %eax,%ebx
40f86a:	72 1d                	jb     0x40f889
40f86c:	50                   	push   %eax
40f86d:	57                   	push   %edi
40f86e:	53                   	push   %ebx
40f86f:	56                   	push   %esi
40f870:	ff 15 e8 33 43 00    	call   *0x4333e8
40f876:	8b 45 0c             	mov    0xc(%ebp),%eax
40f879:	83 c4 10             	add    $0x10,%esp
40f87c:	85 c0                	test   %eax,%eax
40f87e:	74 02                	je     0x40f882
40f880:	89 30                	mov    %esi,(%eax)
40f882:	8b 45 fc             	mov    -0x4(%ebp),%eax
40f885:	03 c6                	add    %esi,%eax
40f887:	eb 0c                	jmp    0x40f895
40f889:	8b 45 0c             	mov    0xc(%ebp),%eax
40f88c:	85 c0                	test   %eax,%eax
40f88e:	74 03                	je     0x40f893
40f890:	83 20 00             	andl   $0x0,(%eax)
40f893:	8b c6                	mov    %esi,%eax
40f895:	5f                   	pop    %edi
40f896:	5e                   	pop    %esi
40f897:	5b                   	pop    %ebx
40f898:	c9                   	leave
40f899:	c2 08 00             	ret    $0x8
40f89c:	8b ff                	mov    %edi,%edi
40f89e:	53                   	push   %ebx
40f89f:	56                   	push   %esi
40f8a0:	33 db                	xor    %ebx,%ebx
40f8a2:	57                   	push   %edi
40f8a3:	8b f9                	mov    %ecx,%edi
40f8a5:	6a 50                	push   $0x50
40f8a7:	53                   	push   %ebx
40f8a8:	8d 77 1c             	lea    0x1c(%edi),%esi
40f8ab:	89 5f 04             	mov    %ebx,0x4(%edi)
40f8ae:	89 7f 08             	mov    %edi,0x8(%edi)
40f8b1:	8d 47 44             	lea    0x44(%edi),%eax
40f8b4:	89 47 14             	mov    %eax,0x14(%edi)
40f8b7:	8d 46 40             	lea    0x40(%esi),%eax
40f8ba:	89 5f 0c             	mov    %ebx,0xc(%edi)
40f8bd:	89 5f 10             	mov    %ebx,0x10(%edi)
40f8c0:	50                   	push   %eax
40f8c1:	89 77 18             	mov    %esi,0x18(%edi)
40f8c4:	89 1e                	mov    %ebx,(%esi)
40f8c6:	88 5e 04             	mov    %bl,0x4(%esi)
40f8c9:	88 5e 34             	mov    %bl,0x34(%esi)
40f8cc:	89 5e 28             	mov    %ebx,0x28(%esi)
40f8cf:	c7 46 2c 24 17 40 00 	movl   $0x401724,0x2c(%esi)
40f8d6:	89 5e 30             	mov    %ebx,0x30(%esi)
40f8d9:	c7 46 38 01 00 00 00 	movl   $0x1,0x38(%esi)
40f8e0:	89 5e 3c             	mov    %ebx,0x3c(%esi)
40f8e3:	89 58 50             	mov    %ebx,0x50(%eax)
40f8e6:	89 58 54             	mov    %ebx,0x54(%eax)
40f8e9:	e8 19 12 00 00       	call   0x410b07
40f8ee:	83 c4 0c             	add    $0xc,%esp
40f8f1:	89 9e 98 00 00 00    	mov    %ebx,0x98(%esi)
40f8f7:	8b cf                	mov    %edi,%ecx
40f8f9:	89 9f b8 00 00 00    	mov    %ebx,0xb8(%edi)
40f8ff:	c7 07 4c 10 40 00    	movl   $0x40104c,(%edi)
40f905:	e8 7e 99 ff ff       	call   0x409288
40f90a:	8b c7                	mov    %edi,%eax
40f90c:	5f                   	pop    %edi
40f90d:	5e                   	pop    %esi
40f90e:	5b                   	pop    %ebx
40f90f:	c3                   	ret
40f910:	8b ff                	mov    %edi,%edi
40f912:	55                   	push   %ebp
40f913:	8b ec                	mov    %esp,%ebp
40f915:	83 e4 f8             	and    $0xfffffff8,%esp
40f918:	83 ec 2c             	sub    $0x2c,%esp
40f91b:	a1 64 10 41 00       	mov    0x411064,%eax
40f920:	33 c4                	xor    %esp,%eax
40f922:	89 44 24 28          	mov    %eax,0x28(%esp)
40f926:	83 39 05             	cmpl   $0x5,(%ecx)
40f929:	56                   	push   %esi
40f92a:	8b f2                	mov    %edx,%esi