42f707:	e8 34 00 00 00       	call   0x42f740
42f70c:	8b f0                	mov    %eax,%esi
42f70e:	89 75 e4             	mov    %esi,-0x1c(%ebp)
42f711:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
42f718:	e8 17 00 00 00       	call   0x42f734
42f71d:	8b c6                	mov    %esi,%eax
42f71f:	8b 4d f0             	mov    -0x10(%ebp),%ecx
42f722:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
42f729:	59                   	pop    %ecx
42f72a:	5f                   	pop    %edi
42f72b:	5e                   	pop    %esi
42f72c:	5b                   	pop    %ebx
42f72d:	c9                   	leave
42f72e:	c2 0c 00             	ret    $0xc
42f731:	8b 75 e4             	mov    -0x1c(%ebp),%esi
42f734:	8b 45 10             	mov    0x10(%ebp),%eax
42f737:	ff 30                	push   (%eax)
42f739:	e8 8c 3c ff ff       	call   0x4233ca
42f73e:	59                   	pop    %ecx
42f73f:	c3                   	ret
42f740:	8b ff                	mov    %edi,%edi
42f742:	55                   	push   %ebp
42f743:	8b ec                	mov    %esp,%ebp
42f745:	83 ec 10             	sub    $0x10,%esp
42f748:	53                   	push   %ebx
42f749:	56                   	push   %esi
42f74a:	8b f1                	mov    %ecx,%esi
42f74c:	57                   	push   %edi
42f74d:	8b 46 04             	mov    0x4(%esi),%eax
42f750:	ff 30                	push   (%eax)
42f752:	8b 06                	mov    (%esi),%eax
42f754:	ff 30                	push   (%eax)
42f756:	e8 44 01 00 00       	call   0x42f89f
42f75b:	8b f8                	mov    %eax,%edi
42f75d:	59                   	pop    %ecx
42f75e:	59                   	pop    %ecx
42f75f:	85 ff                	test   %edi,%edi
42f761:	74 43                	je     0x42f7a6
42f763:	e8 81 cb fe ff       	call   0x41c2e9
42f768:	89 45 f8             	mov    %eax,-0x8(%ebp)
42f76b:	33 db                	xor    %ebx,%ebx
42f76d:	8b 48 4c             	mov    0x4c(%eax),%ecx
42f770:	89 4d f0             	mov    %ecx,-0x10(%ebp)
42f773:	8b 48 48             	mov    0x48(%eax),%ecx
42f776:	8d 45 f0             	lea    -0x10(%ebp),%eax
42f779:	50                   	push   %eax
42f77a:	53                   	push   %ebx
42f77b:	57                   	push   %edi
42f77c:	53                   	push   %ebx
42f77d:	8d 45 fc             	lea    -0x4(%ebp),%eax
42f780:	89 4d f4             	mov    %ecx,-0xc(%ebp)
42f783:	53                   	push   %ebx
42f784:	50                   	push   %eax
42f785:	89 5d fc             	mov    %ebx,-0x4(%ebp)
42f788:	e8 15 06 00 00       	call   0x42fda2
42f78d:	83 c4 18             	add    $0x18,%esp
42f790:	85 c0                	test   %eax,%eax
42f792:	74 19                	je     0x42f7ad
42f794:	83 f8 16             	cmp    $0x16,%eax
42f797:	0f 84 f7 00 00 00    	je     0x42f894
42f79d:	83 f8 22             	cmp    $0x22,%eax
42f7a0:	0f 84 ee 00 00 00    	je     0x42f894
42f7a6:	33 c0                	xor    %eax,%eax
42f7a8:	5f                   	pop    %edi
42f7a9:	5e                   	pop    %esi
42f7aa:	5b                   	pop    %ebx
42f7ab:	c9                   	leave
42f7ac:	c3                   	ret
42f7ad:	8b 45 fc             	mov    -0x4(%ebp),%eax
42f7b0:	83 c0 04             	add    $0x4,%eax
42f7b3:	50                   	push   %eax
42f7b4:	e8 77 74 fd ff       	call   0x406c30
42f7b9:	8b d8                	mov    %eax,%ebx
42f7bb:	59                   	pop    %ecx
42f7bc:	85 db                	test   %ebx,%ebx
42f7be:	74 e6                	je     0x42f7a6
42f7c0:	8d 4d f0             	lea    -0x10(%ebp),%ecx
42f7c3:	51                   	push   %ecx
42f7c4:	6a ff                	push   $0xffffffff
42f7c6:	57                   	push   %edi
42f7c7:	ff 75 fc             	push   -0x4(%ebp)
42f7ca:	8d 43 04             	lea    0x4(%ebx),%eax
42f7cd:	50                   	push   %eax
42f7ce:	6a 00                	push   $0x0
42f7d0:	e8 cd 05 00 00       	call   0x42fda2
42f7d5:	83 c4 18             	add    $0x18,%esp
42f7d8:	85 c0                	test   %eax,%eax
42f7da:	74 1b                	je     0x42f7f7
42f7dc:	83 f8 16             	cmp    $0x16,%eax
42f7df:	0f 84 ad 00 00 00    	je     0x42f892
42f7e5:	83 f8 22             	cmp    $0x22,%eax
42f7e8:	0f 84 a4 00 00 00    	je     0x42f892
42f7ee:	53                   	push   %ebx
42f7ef:	e8 1c 74 fd ff       	call   0x406c10
42f7f4:	59                   	pop    %ecx
42f7f5:	eb af                	jmp    0x42f7a6
42f7f7:	8b 06                	mov    (%esi),%eax
42f7f9:	83 c9 ff             	or     $0xffffffff,%ecx
42f7fc:	8b 7d f0             	mov    -0x10(%ebp),%edi
42f7ff:	8b 00                	mov    (%eax),%eax
42f801:	03 c0                	add    %eax,%eax
42f803:	8b 54 c7 24          	mov    0x24(%edi,%eax,8),%edx
42f807:	85 d2                	test   %edx,%edx
42f809:	74 26                	je     0x42f831
42f80b:	8b c1                	mov    %ecx,%eax
42f80d:	f0 0f c1 02          	lock xadd %eax,(%edx)
42f811:	75 1e                	jne    0x42f831
42f813:	8b 06                	mov    (%esi),%eax
42f815:	8b 00                	mov    (%eax),%eax
42f817:	03 c0                	add    %eax,%eax
42f819:	ff 74 c7 24          	push   0x24(%edi,%eax,8)
42f81d:	e8 ee 73 fd ff       	call   0x406c10
42f822:	8b 06                	mov    (%esi),%eax
42f824:	59                   	pop    %ecx
42f825:	8b 00                	mov    (%eax),%eax
42f827:	03 c0                	add    %eax,%eax
42f829:	83 64 c7 24 00       	andl   $0x0,0x24(%edi,%eax,8)
42f82e:	83 c9 ff             	or     $0xffffffff,%ecx
42f831:	8b 55 f8             	mov    -0x8(%ebp),%edx
42f834:	a1 34 db 43 00       	mov    0x43db34,%eax
42f839:	85 82 50 03 00 00    	test   %eax,0x350(%edx)
42f83f:	75 30                	jne    0x42f871
42f841:	8b 06                	mov    (%esi),%eax
42f843:	8b 00                	mov    (%eax),%eax
42f845:	03 c0                	add    %eax,%eax
42f847:	8b 44 c7 24          	mov    0x24(%edi,%eax,8),%eax
42f84b:	85 c0                	test   %eax,%eax
42f84d:	74 22                	je     0x42f871
42f84f:	f0 0f c1 08          	lock xadd %ecx,(%eax)
42f853:	49                   	dec    %ecx
42f854:	75 1b                	jne    0x42f871
42f856:	8b 06                	mov    (%esi),%eax
42f858:	8b 00                	mov    (%eax),%eax
42f85a:	03 c0                	add    %eax,%eax
42f85c:	ff 74 c7 24          	push   0x24(%edi,%eax,8)
42f860:	e8 ab 73 fd ff       	call   0x406c10
42f865:	8b 06                	mov    (%esi),%eax
42f867:	59                   	pop    %ecx
42f868:	8b 00                	mov    (%eax),%eax
42f86a:	03 c0                	add    %eax,%eax
42f86c:	83 64 c7 24 00       	andl   $0x0,0x24(%edi,%eax,8)
42f871:	8b 4f 0c             	mov    0xc(%edi),%ecx
42f874:	8d 43 04             	lea    0x4(%ebx),%eax
42f877:	89 0b                	mov    %ecx,(%ebx)
42f879:	8b 0e                	mov    (%esi),%ecx
42f87b:	8b 09                	mov    (%ecx),%ecx
42f87d:	03 c9                	add    %ecx,%ecx
42f87f:	89 5c cf 24          	mov    %ebx,0x24(%edi,%ecx,8)
42f883:	8b 0e                	mov    (%esi),%ecx
42f885:	8b 09                	mov    (%ecx),%ecx
42f887:	03 c9                	add    %ecx,%ecx
42f889:	89 44 cf 1c          	mov    %eax,0x1c(%edi,%ecx,8)
42f88d:	e9 16 ff ff ff       	jmp    0x42f7a8
42f892:	33 db                	xor    %ebx,%ebx
42f894:	53                   	push   %ebx
42f895:	53                   	push   %ebx
42f896:	53                   	push   %ebx
42f897:	53                   	push   %ebx
42f898:	53                   	push   %ebx
42f899:	e8 7d db fd ff       	call   0x40d41b
42f89e:	cc                   	int3
42f89f:	8b ff                	mov    %edi,%edi
42f8a1:	55                   	push   %ebp
42f8a2:	8b ec                	mov    %esp,%ebp
42f8a4:	51                   	push   %ecx
42f8a5:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
42f8a9:	75 0e                	jne    0x42f8b9
42f8ab:	6a 00                	push   $0x0
42f8ad:	ff 75 08             	push   0x8(%ebp)
42f8b0:	e8 98 b3 fe ff       	call   0x41ac4d
42f8b5:	59                   	pop    %ecx
42f8b6:	59                   	pop    %ecx
42f8b7:	c9                   	leave
42f8b8:	c3                   	ret
42f8b9:	56                   	push   %esi
42f8ba:	57                   	push   %edi
42f8bb:	68 ff ff ff 7f       	push   $0x7fffffff
42f8c0:	ff 75 0c             	push   0xc(%ebp)
42f8c3:	33 ff                	xor    %edi,%edi
42f8c5:	8d 45 fc             	lea    -0x4(%ebp),%eax
42f8c8:	57                   	push   %edi
42f8c9:	57                   	push   %edi
42f8ca:	50                   	push   %eax
42f8cb:	e8 b1 be ff ff       	call   0x42b781
42f8d0:	83 c4 14             	add    $0x14,%esp
42f8d3:	85 c0                	test   %eax,%eax
42f8d5:	74 0a                	je     0x42f8e1
42f8d7:	83 f8 16             	cmp    $0x16,%eax
42f8da:	74 53                	je     0x42f92f
42f8dc:	83 f8 22             	cmp    $0x22,%eax
42f8df:	74 4e                	je     0x42f92f
42f8e1:	6a 02                	push   $0x2
42f8e3:	ff 75 fc             	push   -0x4(%ebp)
42f8e6:	e8 c5 72 fd ff       	call   0x406bb0
42f8eb:	8b f0                	mov    %eax,%esi
42f8ed:	59                   	pop    %ecx
42f8ee:	59                   	pop    %ecx
42f8ef:	85 f6                	test   %esi,%esi
42f8f1:	74 2f                	je     0x42f922
42f8f3:	6a ff                	push   $0xffffffff
42f8f5:	ff 75 0c             	push   0xc(%ebp)
42f8f8:	ff 75 fc             	push   -0x4(%ebp)
42f8fb:	56                   	push   %esi
42f8fc:	57                   	push   %edi
42f8fd:	e8 7f be ff ff       	call   0x42b781
42f902:	83 c4 14             	add    $0x14,%esp
42f905:	85 c0                	test   %eax,%eax
42f907:	74 0c                	je     0x42f915
42f909:	83 f8 16             	cmp    $0x16,%eax
42f90c:	74 21                	je     0x42f92f
42f90e:	83 f8 22             	cmp    $0x22,%eax
42f911:	74 1c                	je     0x42f92f
42f913:	eb 0d                	jmp    0x42f922
42f915:	56                   	push   %esi
42f916:	ff 75 08             	push   0x8(%ebp)
42f919:	e8 2f b3 fe ff       	call   0x41ac4d
42f91e:	59                   	pop    %ecx
42f91f:	59                   	pop    %ecx
42f920:	8b f8                	mov    %eax,%edi
42f922:	56                   	push   %esi
42f923:	e8 e8 72 fd ff       	call   0x406c10
42f928:	59                   	pop    %ecx
42f929:	8b c7                	mov    %edi,%eax
42f92b:	5f                   	pop    %edi
42f92c:	5e                   	pop    %esi
42f92d:	c9                   	leave
42f92e:	c3                   	ret
42f92f:	57                   	push   %edi
42f930:	57                   	push   %edi
42f931:	57                   	push   %edi
42f932:	57                   	push   %edi
42f933:	57                   	push   %edi
42f934:	e8 e2 da fd ff       	call   0x40d41b
42f939:	cc                   	int3
42f93a:	8b ff                	mov    %edi,%edi
42f93c:	55                   	push   %ebp
42f93d:	8b ec                	mov    %esp,%ebp
42f93f:	83 ec 14             	sub    $0x14,%esp
42f942:	e8 dc ed fe ff       	call   0x41e723
42f947:	8d 45 08             	lea    0x8(%ebp),%eax
42f94a:	89 45 ec             	mov    %eax,-0x14(%ebp)
42f94d:	8d 4d ff             	lea    -0x1(%ebp),%ecx
42f950:	6a 04                	push   $0x4
42f952:	8d 45 0c             	lea    0xc(%ebp),%eax
42f955:	89 45 f0             	mov    %eax,-0x10(%ebp)
42f958:	58                   	pop    %eax
42f959:	89 45 f8             	mov    %eax,-0x8(%ebp)
42f95c:	89 45 f4             	mov    %eax,-0xc(%ebp)
42f95f:	8d 45 f8             	lea    -0x8(%ebp),%eax
42f962:	50                   	push   %eax
42f963:	8d 45 ec             	lea    -0x14(%ebp),%eax
42f966:	50                   	push   %eax
42f967:	8d 45 f4             	lea    -0xc(%ebp),%eax
42f96a:	50                   	push   %eax
42f96b:	e8 75 fd ff ff       	call   0x42f6e5
42f970:	c9                   	leave
42f971:	c3                   	ret
42f972:	8b ff                	mov    %edi,%edi
42f974:	55                   	push   %ebp
42f975:	8b ec                	mov    %esp,%ebp
42f977:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
42f97b:	53                   	push   %ebx
42f97c:	57                   	push   %edi
42f97d:	74 3f                	je     0x42f9be
42f97f:	8b 4d 08             	mov    0x8(%ebp),%ecx
42f982:	33 ff                	xor    %edi,%edi
42f984:	8d 51 02             	lea    0x2(%ecx),%edx
42f987:	66 8b 01             	mov    (%ecx),%ax
42f98a:	83 c1 02             	add    $0x2,%ecx
42f98d:	66 3b c7             	cmp    %di,%ax
42f990:	75 f5                	jne    0x42f987
42f992:	2b ca                	sub    %edx,%ecx
42f994:	d1 f9                	sar    $1,%ecx
42f996:	8d 59 01             	lea    0x1(%ecx),%ebx
42f999:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
42f99c:	50                   	push   %eax
42f99d:	e8 8e 72 fd ff       	call   0x406c30
42f9a2:	8b f8                	mov    %eax,%edi
42f9a4:	59                   	pop    %ecx
42f9a5:	85 ff                	test   %edi,%edi
42f9a7:	74 15                	je     0x42f9be
42f9a9:	ff 75 08             	push   0x8(%ebp)
42f9ac:	53                   	push   %ebx
42f9ad:	57                   	push   %edi
42f9ae:	e8 d5 30 fe ff       	call   0x412a88
42f9b3:	83 c4 0c             	add    $0xc,%esp
42f9b6:	85 c0                	test   %eax,%eax
42f9b8:	75 0a                	jne    0x42f9c4
42f9ba:	8b c7                	mov    %edi,%eax
42f9bc:	eb 02                	jmp    0x42f9c0
42f9be:	33 c0                	xor    %eax,%eax
42f9c0:	5f                   	pop    %edi
42f9c1:	5b                   	pop    %ebx
42f9c2:	5d                   	pop    %ebp
42f9c3:	c3                   	ret
42f9c4:	33 c0                	xor    %eax,%eax
42f9c6:	50                   	push   %eax
42f9c7:	50                   	push   %eax
42f9c8:	50                   	push   %eax
42f9c9:	50                   	push   %eax
42f9ca:	50                   	push   %eax
42f9cb:	e8 4b da fd ff       	call   0x40d41b
42f9d0:	cc                   	int3
42f9d1:	cc                   	int3
42f9d2:	cc                   	int3
42f9d3:	cc                   	int3
42f9d4:	cc                   	int3
42f9d5:	cc                   	int3
42f9d6:	cc                   	int3
42f9d7:	cc                   	int3
42f9d8:	cc                   	int3
42f9d9:	cc                   	int3
42f9da:	cc                   	int3
42f9db:	cc                   	int3
42f9dc:	cc                   	int3
42f9dd:	cc                   	int3
42f9de:	cc                   	int3
42f9df:	cc                   	int3
42f9e0:	55                   	push   %ebp
42f9e1:	8b ec                	mov    %esp,%ebp
42f9e3:	56                   	push   %esi
42f9e4:	33 c0                	xor    %eax,%eax
42f9e6:	50                   	push   %eax
42f9e7:	50                   	push   %eax
42f9e8:	50                   	push   %eax
42f9e9:	50                   	push   %eax
42f9ea:	50                   	push   %eax
42f9eb:	50                   	push   %eax
42f9ec:	50                   	push   %eax
42f9ed:	50                   	push   %eax
42f9ee:	8b 55 0c             	mov    0xc(%ebp),%edx
42f9f1:	8d 49 00             	lea    0x0(%ecx),%ecx
42f9f4:	8a 02                	mov    (%edx),%al
42f9f6:	0a c0                	or     %al,%al
42f9f8:	74 09                	je     0x42fa03
42f9fa:	83 c2 01             	add    $0x1,%edx
42f9fd:	0f ab 04 24          	bts    %eax,(%esp)
42fa01:	eb f1                	jmp    0x42f9f4
42fa03:	8b 75 08             	mov    0x8(%ebp),%esi
42fa06:	83 c9 ff             	or     $0xffffffff,%ecx
42fa09:	8d 49 00             	lea    0x0(%ecx),%ecx
42fa0c:	83 c1 01             	add    $0x1,%ecx
42fa0f:	8a 06                	mov    (%esi),%al
42fa11:	0a c0                	or     %al,%al
42fa13:	74 09                	je     0x42fa1e
42fa15:	83 c6 01             	add    $0x1,%esi
42fa18:	0f a3 04 24          	bt     %eax,(%esp)
42fa1c:	73 ee                	jae    0x42fa0c
42fa1e:	8b c1                	mov    %ecx,%eax
42fa20:	83 c4 20             	add    $0x20,%esp