43f58c:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f58f:	8b 80 d0 01 00 00    	mov    0x1d0(%eax),%eax
43f595:	85 c0                	test   %eax,%eax
43f597:	0f 84 ea 00 00 00    	je     0x43f687
43f59d:	8b 78 08             	mov    0x8(%eax),%edi
43f5a0:	4f                   	dec    %edi
43f5a1:	85 ff                	test   %edi,%edi
43f5a3:	0f 8c de 00 00 00    	jl     0x43f687
43f5a9:	47                   	inc    %edi
43f5aa:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
43f5b1:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f5b4:	8b 80 d0 01 00 00    	mov    0x1d0(%eax),%eax
43f5ba:	8b 55 f4             	mov    -0xc(%ebp),%edx
43f5bd:	e8 ae 85 fd ff       	call   0x417b70
43f5c2:	8b d8                	mov    %eax,%ebx
43f5c4:	80 bb d9 01 00 00 00 	cmpb   $0x0,0x1d9(%ebx)
43f5cb:	0f 84 ac 00 00 00    	je     0x43f67d
43f5d1:	f6 43 50 10          	testb  $0x10,0x50(%ebx)
43f5d5:	0f 84 a2 00 00 00    	je     0x43f67d
43f5db:	80 7b 57 00          	cmpb   $0x0,0x57(%ebx)
43f5df:	75 14                	jne    0x43f5f5
43f5e1:	f6 43 1c 10          	testb  $0x10,0x1c(%ebx)
43f5e5:	0f 84 92 00 00 00    	je     0x43f67d
43f5eb:	f6 43 51 04          	testb  $0x4,0x51(%ebx)
43f5ef:	0f 85 88 00 00 00    	jne    0x43f67d
43f5f5:	b8 10 00 00 ff       	mov    $0xff000010,%eax
43f5fa:	e8 91 34 fe ff       	call   0x422a90
43f5ff:	50                   	push   %eax
43f600:	e8 73 75 fc ff       	call   0x406b78
43f605:	8b f0                	mov    %eax,%esi
43f607:	56                   	push   %esi
43f608:	8b 43 44             	mov    0x44(%ebx),%eax
43f60b:	03 43 4c             	add    0x4c(%ebx),%eax
43f60e:	50                   	push   %eax
43f60f:	8d 45 d8             	lea    -0x28(%ebp),%eax
43f612:	50                   	push   %eax
43f613:	8b 4b 40             	mov    0x40(%ebx),%ecx
43f616:	03 4b 48             	add    0x48(%ebx),%ecx
43f619:	8b 53 44             	mov    0x44(%ebx),%edx
43f61c:	4a                   	dec    %edx
43f61d:	8b 43 40             	mov    0x40(%ebx),%eax
43f620:	48                   	dec    %eax
43f621:	e8 f2 70 fd ff       	call   0x416718
43f626:	8d 45 d8             	lea    -0x28(%ebp),%eax
43f629:	50                   	push   %eax
43f62a:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f62d:	50                   	push   %eax
43f62e:	e8 3d 78 fc ff       	call   0x406e70
43f633:	56                   	push   %esi
43f634:	e8 57 75 fc ff       	call   0x406b90
43f639:	b8 14 00 00 ff       	mov    $0xff000014,%eax
43f63e:	e8 4d 34 fe ff       	call   0x422a90
43f643:	50                   	push   %eax
43f644:	e8 2f 75 fc ff       	call   0x406b78
43f649:	8b f0                	mov    %eax,%esi
43f64b:	56                   	push   %esi
43f64c:	8b 43 44             	mov    0x44(%ebx),%eax
43f64f:	03 43 4c             	add    0x4c(%ebx),%eax
43f652:	40                   	inc    %eax
43f653:	50                   	push   %eax
43f654:	8d 45 d8             	lea    -0x28(%ebp),%eax
43f657:	50                   	push   %eax
43f658:	8b 4b 40             	mov    0x40(%ebx),%ecx
43f65b:	03 4b 48             	add    0x48(%ebx),%ecx
43f65e:	41                   	inc    %ecx
43f65f:	8b 53 44             	mov    0x44(%ebx),%edx
43f662:	8b 43 40             	mov    0x40(%ebx),%eax
43f665:	e8 ae 70 fd ff       	call   0x416718
43f66a:	8d 45 d8             	lea    -0x28(%ebp),%eax
43f66d:	50                   	push   %eax
43f66e:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f671:	50                   	push   %eax
43f672:	e8 f9 77 fc ff       	call   0x406e70
43f677:	56                   	push   %esi
43f678:	e8 13 75 fc ff       	call   0x406b90
43f67d:	ff 45 f4             	incl   -0xc(%ebp)
43f680:	4f                   	dec    %edi
43f681:	0f 85 2a ff ff ff    	jne    0x43f5b1
43f687:	5f                   	pop    %edi
43f688:	5e                   	pop    %esi
43f689:	5b                   	pop    %ebx
43f68a:	8b e5                	mov    %ebp,%esp
43f68c:	5d                   	pop    %ebp
43f68d:	c3                   	ret
43f68e:	8b c0                	mov    %eax,%eax
43f690:	55                   	push   %ebp
43f691:	8b ec                	mov    %esp,%ebp
43f693:	83 c4 e4             	add    $0xffffffe4,%esp
43f696:	53                   	push   %ebx
43f697:	56                   	push   %esi
43f698:	8b d9                	mov    %ecx,%ebx
43f69a:	89 55 f8             	mov    %edx,-0x8(%ebp)
43f69d:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f6a0:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f6a3:	66 81 48 54 80 00    	orw    $0x80,0x54(%eax)
43f6a9:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f6ac:	50                   	push   %eax
43f6ad:	e8 ee 75 fc ff       	call   0x406ca0
43f6b2:	89 45 f4             	mov    %eax,-0xc(%ebp)
43f6b5:	33 d2                	xor    %edx,%edx
43f6b7:	55                   	push   %ebp
43f6b8:	68 08 f8 43 00       	push   $0x43f808
43f6bd:	64 ff 32             	push   %fs:(%edx)
43f6c0:	64 89 22             	mov    %esp,%fs:(%edx)
43f6c3:	8b 4d 08             	mov    0x8(%ebp),%ecx
43f6c6:	8b d3                	mov    %ebx,%edx
43f6c8:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f6cb:	e8 d8 8d ff ff       	call   0x4384a8
43f6d0:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f6d3:	8b 40 4c             	mov    0x4c(%eax),%eax
43f6d6:	50                   	push   %eax
43f6d7:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f6da:	8b 40 48             	mov    0x48(%eax),%eax
43f6dd:	50                   	push   %eax
43f6de:	6a 00                	push   $0x0
43f6e0:	6a 00                	push   $0x0
43f6e2:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f6e5:	50                   	push   %eax
43f6e6:	e8 65 75 fc ff       	call   0x406c50
43f6eb:	33 db                	xor    %ebx,%ebx
43f6ed:	33 f6                	xor    %esi,%esi
43f6ef:	6a ec                	push   $0xffffffec
43f6f1:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f6f4:	e8 b7 21 00 00       	call   0x4418b0
43f6f9:	50                   	push   %eax
43f6fa:	e8 d1 78 fc ff       	call   0x406fd0
43f6ff:	f6 c4 02             	test   $0x2,%ah
43f702:	74 0c                	je     0x43f710
43f704:	be 0a 00 00 00       	mov    $0xa,%esi
43f709:	bb 0f 20 00 00       	mov    $0x200f,%ebx
43f70e:	eb 21                	jmp    0x43f731
43f710:	6a f0                	push   $0xfffffff0
43f712:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f715:	e8 96 21 00 00       	call   0x4418b0
43f71a:	50                   	push   %eax
43f71b:	e8 b0 78 fc ff       	call   0x406fd0
43f720:	a9 00 00 80 00       	test   $0x800000,%eax
43f725:	74 0a                	je     0x43f731
43f727:	be 03 00 00 00       	mov    $0x3,%esi
43f72c:	bb 0f a0 00 00       	mov    $0xa00f,%ebx
43f731:	85 db                	test   %ebx,%ebx
43f733:	74 53                	je     0x43f788
43f735:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f738:	8b 40 4c             	mov    0x4c(%eax),%eax
43f73b:	50                   	push   %eax
43f73c:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f73f:	8b 40 48             	mov    0x48(%eax),%eax
43f742:	50                   	push   %eax
43f743:	6a 00                	push   $0x0
43f745:	6a 00                	push   $0x0
43f747:	8d 45 e4             	lea    -0x1c(%ebp),%eax
43f74a:	50                   	push   %eax
43f74b:	e8 68 7a fc ff       	call   0x4071b8
43f750:	53                   	push   %ebx
43f751:	56                   	push   %esi
43f752:	8d 45 e4             	lea    -0x1c(%ebp),%eax
43f755:	50                   	push   %eax
43f756:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f759:	50                   	push   %eax
43f75a:	e8 91 76 fc ff       	call   0x406df0
43f75f:	8b 4d e8             	mov    -0x18(%ebp),%ecx
43f762:	8b 55 e4             	mov    -0x1c(%ebp),%edx
43f765:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f768:	e8 3b 8d ff ff       	call   0x4384a8
43f76d:	8b 45 f0             	mov    -0x10(%ebp),%eax
43f770:	2b 45 e8             	sub    -0x18(%ebp),%eax
43f773:	50                   	push   %eax
43f774:	8b 45 ec             	mov    -0x14(%ebp),%eax
43f777:	2b 45 e4             	sub    -0x1c(%ebp),%eax
43f77a:	50                   	push   %eax
43f77b:	6a 00                	push   $0x0
43f77d:	6a 00                	push   $0x0
43f77f:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f782:	50                   	push   %eax
43f783:	e8 c8 74 fc ff       	call   0x406c50
43f788:	6a 00                	push   $0x0
43f78a:	8b 4d f8             	mov    -0x8(%ebp),%ecx
43f78d:	ba 14 00 00 00       	mov    $0x14,%edx
43f792:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f795:	e8 82 b9 ff ff       	call   0x43b11c
43f79a:	6a 00                	push   $0x0
43f79c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
43f79f:	ba 0f 00 00 00       	mov    $0xf,%edx
43f7a4:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f7a7:	e8 70 b9 ff ff       	call   0x43b11c
43f7ac:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f7af:	8b 80 d0 01 00 00    	mov    0x1d0(%eax),%eax
43f7b5:	85 c0                	test   %eax,%eax
43f7b7:	74 34                	je     0x43f7ed
43f7b9:	8b 58 08             	mov    0x8(%eax),%ebx
43f7bc:	4b                   	dec    %ebx
43f7bd:	85 db                	test   %ebx,%ebx
43f7bf:	7c 2c                	jl     0x43f7ed
43f7c1:	43                   	inc    %ebx
43f7c2:	33 f6                	xor    %esi,%esi
43f7c4:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f7c7:	8b 80 d0 01 00 00    	mov    0x1d0(%eax),%eax
43f7cd:	8b d6                	mov    %esi,%edx
43f7cf:	e8 9c 83 fd ff       	call   0x417b70
43f7d4:	80 78 57 00          	cmpb   $0x0,0x57(%eax)
43f7d8:	74 0f                	je     0x43f7e9
43f7da:	8b 50 44             	mov    0x44(%eax),%edx
43f7dd:	52                   	push   %edx
43f7de:	8b 48 40             	mov    0x40(%eax),%ecx
43f7e1:	8b 55 f8             	mov    -0x8(%ebp),%edx
43f7e4:	e8 a7 fe ff ff       	call   0x43f690
43f7e9:	46                   	inc    %esi
43f7ea:	4b                   	dec    %ebx
43f7eb:	75 d7                	jne    0x43f7c4
43f7ed:	33 c0                	xor    %eax,%eax
43f7ef:	5a                   	pop    %edx
43f7f0:	59                   	pop    %ecx
43f7f1:	59                   	pop    %ecx
43f7f2:	64 89 10             	mov    %edx,%fs:(%eax)
43f7f5:	68 0f f8 43 00       	push   $0x43f80f
43f7fa:	8b 45 f4             	mov    -0xc(%ebp),%eax
43f7fd:	50                   	push   %eax
43f7fe:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f801:	50                   	push   %eax
43f802:	e8 91 74 fc ff       	call   0x406c98
43f807:	c3                   	ret
43f808:	e9 7b 48 fc ff       	jmp    0x404088
43f80d:	eb eb                	jmp    0x43f7fa
43f80f:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f812:	66 81 60 54 7f ff    	andw   $0xff7f,0x54(%eax)
43f818:	5e                   	pop    %esi
43f819:	5b                   	pop    %ebx
43f81a:	8b e5                	mov    %ebp,%esp
43f81c:	5d                   	pop    %ebp
43f81d:	c2 04 00             	ret    $0x4
43f820:	55                   	push   %ebp
43f821:	8b ec                	mov    %esp,%ebp
43f823:	83 c4 94             	add    $0xffffff94,%esp
43f826:	53                   	push   %ebx
43f827:	56                   	push   %esi
43f828:	57                   	push   %edi
43f829:	8b f2                	mov    %edx,%esi
43f82b:	8b d8                	mov    %eax,%ebx
43f82d:	80 bb 40 02 00 00 00 	cmpb   $0x0,0x240(%ebx)
43f834:	74 06                	je     0x43f83c
43f836:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
43f83a:	74 2d                	je     0x43f869
43f83c:	f6 43 55 01          	testb  $0x1,0x55(%ebx)
43f840:	75 19                	jne    0x43f85b
43f842:	8b c3                	mov    %ebx,%eax
43f844:	e8 2b e4 ff ff       	call   0x43dc74
43f849:	85 c0                	test   %eax,%eax
43f84b:	75 0e                	jne    0x43f85b
43f84d:	8b d6                	mov    %esi,%edx
43f84f:	8b c3                	mov    %ebx,%eax
43f851:	8b 08                	mov    (%eax),%ecx
43f853:	ff 51 f0             	call   *-0x10(%ecx)
43f856:	e9 1e 01 00 00       	jmp    0x43f979
43f85b:	8b d6                	mov    %esi,%edx
43f85d:	8b c3                	mov    %ebx,%eax
43f85f:	e8 c4 f9 ff ff       	call   0x43f228
43f864:	e9 10 01 00 00       	jmp    0x43f979
43f869:	6a 00                	push   $0x0
43f86b:	e8 48 76 fc ff       	call   0x406eb8
43f870:	8b f8                	mov    %eax,%edi
43f872:	8d 55 a4             	lea    -0x5c(%ebp),%edx
43f875:	8b c3                	mov    %ebx,%eax
43f877:	8b 08                	mov    (%eax),%ecx
43f879:	ff 51 44             	call   *0x44(%ecx)
43f87c:	8b 45 b0             	mov    -0x50(%ebp),%eax
43f87f:	50                   	push   %eax
43f880:	8d 55 94             	lea    -0x6c(%ebp),%edx
43f883:	8b c3                	mov    %ebx,%eax
43f885:	8b 08                	mov    (%eax),%ecx
43f887:	ff 51 44             	call   *0x44(%ecx)
43f88a:	8b 45 9c             	mov    -0x64(%ebp),%eax
43f88d:	50                   	push   %eax
43f88e:	57                   	push   %edi
43f88f:	e8 9c 72 fc ff       	call   0x406b30
43f894:	89 45 f8             	mov    %eax,-0x8(%ebp)
43f897:	57                   	push   %edi
43f898:	6a 00                	push   $0x0
43f89a:	e8 89 78 fc ff       	call   0x407128
43f89f:	6a 00                	push   $0x0
43f8a1:	e8 92 72 fc ff       	call   0x406b38
43f8a6:	89 45 fc             	mov    %eax,-0x4(%ebp)
43f8a9:	8b 45 f8             	mov    -0x8(%ebp),%eax
43f8ac:	50                   	push   %eax
43f8ad:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f8b0:	50                   	push   %eax
43f8b1:	e8 f2 73 fc ff       	call   0x406ca8
43f8b6:	89 45 f4             	mov    %eax,-0xc(%ebp)
43f8b9:	33 c0                	xor    %eax,%eax
43f8bb:	55                   	push   %ebp
43f8bc:	68 72 f9 43 00       	push   $0x43f972
43f8c1:	64 ff 30             	push   %fs:(%eax)
43f8c4:	64 89 20             	mov    %esp,%fs:(%eax)
43f8c7:	8d 45 b4             	lea    -0x4c(%ebp),%eax
43f8ca:	50                   	push   %eax
43f8cb:	8b c3                	mov    %ebx,%eax
43f8cd:	e8 de 1f 00 00       	call   0x4418b0
43f8d2:	50                   	push   %eax
43f8d3:	e8 70 74 fc ff       	call   0x406d48
43f8d8:	8b f8                	mov    %eax,%edi
43f8da:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f8dd:	50                   	push   %eax
43f8de:	8b 4d fc             	mov    -0x4(%ebp),%ecx
43f8e1:	ba 14 00 00 00       	mov    $0x14,%edx
43f8e6:	8b c3                	mov    %ebx,%eax
43f8e8:	e8 2f b8 ff ff       	call   0x43b11c
43f8ed:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f8f0:	89 46 04             	mov    %eax,0x4(%esi)
43f8f3:	8b d6                	mov    %esi,%edx
43f8f5:	8b c3                	mov    %ebx,%eax
43f8f7:	e8 24 ff ff ff       	call   0x43f820
43f8fc:	33 c0                	xor    %eax,%eax
43f8fe:	89 46 04             	mov    %eax,0x4(%esi)
43f901:	68 20 00 cc 00       	push   $0xcc0020
43f906:	6a 00                	push   $0x0
43f908:	6a 00                	push   $0x0
43f90a:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f90d:	50                   	push   %eax
43f90e:	8d 55 a4             	lea    -0x5c(%ebp),%edx
43f911:	8b c3                	mov    %ebx,%eax
43f913:	8b 08                	mov    (%eax),%ecx
43f915:	ff 51 44             	call   *0x44(%ecx)
43f918:	8b 45 b0             	mov    -0x50(%ebp),%eax
43f91b:	50                   	push   %eax
43f91c:	8d 55 94             	lea    -0x6c(%ebp),%edx
43f91f:	8b c3                	mov    %ebx,%eax
43f921:	8b 08                	mov    (%eax),%ecx
43f923:	ff 51 44             	call   *0x44(%ecx)
43f926:	8b 45 9c             	mov    -0x64(%ebp),%eax
43f929:	50                   	push   %eax
43f92a:	6a 00                	push   $0x0
43f92c:	6a 00                	push   $0x0
43f92e:	57                   	push   %edi
43f92f:	e8 d4 71 fc ff       	call   0x406b08
43f934:	8d 45 b4             	lea    -0x4c(%ebp),%eax
43f937:	50                   	push   %eax
43f938:	8b c3                	mov    %ebx,%eax
43f93a:	e8 71 1f 00 00       	call   0x4418b0
43f93f:	50                   	push   %eax
43f940:	e8 f3 74 fc ff       	call   0x406e38
43f945:	33 c0                	xor    %eax,%eax
43f947:	5a                   	pop    %edx
43f948:	59                   	pop    %ecx
43f949:	59                   	pop    %ecx
43f94a:	64 89 10             	mov    %edx,%fs:(%eax)
43f94d:	68 79 f9 43 00       	push   $0x43f979
43f952:	8b 45 f4             	mov    -0xc(%ebp),%eax
43f955:	50                   	push   %eax
43f956:	8b 45 fc             	mov    -0x4(%ebp),%eax
43f959:	50                   	push   %eax
43f95a:	e8 49 73 fc ff       	call   0x406ca8