4045ab:	ff 71 10             	push   0x10(%ecx)
4045ae:	6a 0b                	push   $0xb
4045b0:	59                   	pop    %ecx
4045b1:	e8 cc fb ff ff       	call   0x404182
4045b6:	ff 15 14 70 40 00    	call   *0x407014
4045bc:	8b f8                	mov    %eax,%edi
4045be:	85 ff                	test   %edi,%edi
4045c0:	74 33                	je     0x4045f5
4045c2:	a1 48 60 40 00       	mov    0x406048,%eax
4045c7:	3d 48 60 40 00       	cmp    $0x406048,%eax
4045cc:	74 27                	je     0x4045f5
4045ce:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
4045d2:	74 21                	je     0x4045f5
4045d4:	57                   	push   %edi
4045d5:	ff 70 14             	push   0x14(%eax)
4045d8:	ba 40 16 40 00       	mov    $0x401640,%edx
4045dd:	ff 70 10             	push   0x10(%eax)
4045e0:	6a 0c                	push   $0xc
4045e2:	59                   	pop    %ecx
4045e3:	e8 9a fb ff ff       	call   0x404182
4045e8:	eb 0b                	jmp    0x4045f5
4045ea:	8d 44 24 0c          	lea    0xc(%esp),%eax
4045ee:	50                   	push   %eax
4045ef:	ff 15 20 80 40 00    	call   *0x408020
4045f5:	56                   	push   %esi
4045f6:	56                   	push   %esi
4045f7:	56                   	push   %esi
4045f8:	8d 44 24 18          	lea    0x18(%esp),%eax
4045fc:	50                   	push   %eax
4045fd:	ff 15 1c 80 40 00    	call   *0x40801c
404603:	85 c0                	test   %eax,%eax
404605:	75 e3                	jne    0x4045ea
404607:	8b 35 e0 63 40 00    	mov    0x4063e0,%esi
40460d:	85 f6                	test   %esi,%esi
40460f:	74 2b                	je     0x40463c
404611:	39 06                	cmp    %eax,(%esi)
404613:	74 27                	je     0x40463c
404615:	85 c0                	test   %eax,%eax
404617:	75 23                	jne    0x40463c
404619:	ff 76 14             	push   0x14(%esi)
40461c:	ff 15 20 70 40 00    	call   *0x407020
404622:	33 c9                	xor    %ecx,%ecx
404624:	83 3d d0 63 40 00 64 	cmpl   $0x64,0x4063d0
40462b:	0f 95 c1             	setne  %cl
40462e:	8d 0c cd 1c 00 00 00 	lea    0x1c(,%ecx,8),%ecx
404635:	03 f1                	add    %ecx,%esi
404637:	83 3e 00             	cmpl   $0x0,(%esi)
40463a:	75 d9                	jne    0x404615
40463c:	ff 35 7c 64 40 00    	push   0x40647c
404642:	ff 15 40 71 40 00    	call   *0x407140
404648:	68 f4 01 00 00       	push   $0x1f4
40464d:	ff 35 80 64 40 00    	push   0x406480
404653:	ff 15 34 71 40 00    	call   *0x407134
404659:	ff 35 80 64 40 00    	push   0x406480
40465f:	ff 15 58 70 40 00    	call   *0x407058
404665:	83 25 80 64 40 00 00 	andl   $0x0,0x406480
40466c:	eb 04                	jmp    0x404672
40466e:	8b 7c 24 08          	mov    0x8(%esp),%edi
404672:	a1 60 64 40 00       	mov    0x406460,%eax
404677:	85 c0                	test   %eax,%eax
404679:	74 13                	je     0x40468e
40467b:	50                   	push   %eax
40467c:	ff 15 58 70 40 00    	call   *0x407058
404682:	f7 d8                	neg    %eax
404684:	1b c0                	sbb    %eax,%eax
404686:	f7 d0                	not    %eax
404688:	21 05 60 64 40 00    	and    %eax,0x406460
40468e:	e8 83 f8 ff ff       	call   0x403f16
404693:	ff 15 04 70 40 00    	call   *0x407004
404699:	8b c7                	mov    %edi,%eax
40469b:	5f                   	pop    %edi
40469c:	5e                   	pop    %esi
40469d:	8b e5                	mov    %ebp,%esp
40469f:	5d                   	pop    %ebp
4046a0:	c2 10 00             	ret    $0x10
4046a3:	cc                   	int3
4046a4:	cc                   	int3
4046a5:	cc                   	int3
4046a6:	cc                   	int3
4046a7:	cc                   	int3
4046a8:	cc                   	int3
4046a9:	cc                   	int3
4046aa:	cc                   	int3
4046ab:	cc                   	int3
4046ac:	cc                   	int3
4046ad:	cc                   	int3
4046ae:	cc                   	int3
4046af:	cc                   	int3
4046b0:	8b ff                	mov    %edi,%edi
4046b2:	55                   	push   %ebp
4046b3:	8b ec                	mov    %esp,%ebp
4046b5:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
4046b9:	75 0d                	jne    0x4046c8
4046bb:	ff 75 10             	push   0x10(%ebp)
4046be:	8b 55 0c             	mov    0xc(%ebp),%edx
4046c1:	e8 1f 01 00 00       	call   0x4047e5
4046c6:	eb 16                	jmp    0x4046de
4046c8:	8b 45 10             	mov    0x10(%ebp),%eax
4046cb:	85 c0                	test   %eax,%eax
4046cd:	75 07                	jne    0x4046d6
4046cf:	b8 03 40 00 80       	mov    $0x80004003,%eax
4046d4:	eb 08                	jmp    0x4046de
4046d6:	83 20 00             	andl   $0x0,(%eax)
4046d9:	b8 10 01 04 80       	mov    $0x80040110,%eax
4046de:	5d                   	pop    %ebp
4046df:	c2 0c 00             	ret    $0xc
4046e2:	cc                   	int3
4046e3:	cc                   	int3
4046e4:	cc                   	int3
4046e5:	cc                   	int3
4046e6:	cc                   	int3
4046e7:	cc                   	int3
4046e8:	cc                   	int3
4046e9:	cc                   	int3
4046ea:	cc                   	int3
4046eb:	cc                   	int3
4046ec:	cc                   	int3
4046ed:	cc                   	int3
4046ee:	cc                   	int3
4046ef:	cc                   	int3
4046f0:	33 c0                	xor    %eax,%eax
4046f2:	c3                   	ret
4046f3:	cc                   	int3
4046f4:	cc                   	int3
4046f5:	cc                   	int3
4046f6:	cc                   	int3
4046f7:	cc                   	int3
4046f8:	cc                   	int3
4046f9:	cc                   	int3
4046fa:	cc                   	int3
4046fb:	cc                   	int3
4046fc:	cc                   	int3
4046fd:	cc                   	int3
4046fe:	cc                   	int3
4046ff:	cc                   	int3
404700:	8b ff                	mov    %edi,%edi
404702:	55                   	push   %ebp
404703:	8b ec                	mov    %esp,%ebp
404705:	57                   	push   %edi
404706:	8b 7d 10             	mov    0x10(%ebp),%edi
404709:	85 ff                	test   %edi,%edi
40470b:	75 07                	jne    0x404714
40470d:	b8 03 40 00 80       	mov    $0x80004003,%eax
404712:	eb 7d                	jmp    0x404791
404714:	83 27 00             	andl   $0x0,(%edi)
404717:	53                   	push   %ebx
404718:	56                   	push   %esi
404719:	6a 28                	push   $0x28
40471b:	be 0e 00 07 80       	mov    $0x8007000e,%esi
404720:	e8 eb 04 00 00       	call   0x404c10
404725:	8b d8                	mov    %eax,%ebx
404727:	59                   	pop    %ecx
404728:	85 db                	test   %ebx,%ebx
40472a:	74 1c                	je     0x404748
40472c:	83 63 04 00          	andl   $0x0,0x4(%ebx)
404730:	8d 7b 08             	lea    0x8(%ebx),%edi
404733:	6a 06                	push   $0x6
404735:	33 c0                	xor    %eax,%eax
404737:	59                   	pop    %ecx
404738:	f3 ab                	rep stos %eax,%es:(%edi)
40473a:	8b 7d 10             	mov    0x10(%ebp),%edi
40473d:	88 43 20             	mov    %al,0x20(%ebx)
404740:	c7 03 98 10 40 00    	movl   $0x401098,(%ebx)
404746:	eb 02                	jmp    0x40474a
404748:	33 db                	xor    %ebx,%ebx
40474a:	85 db                	test   %ebx,%ebx
40474c:	74 3f                	je     0x40478d
40474e:	8b 45 08             	mov    0x8(%ebp),%eax
404751:	8d 4b 08             	lea    0x8(%ebx),%ecx
404754:	89 43 24             	mov    %eax,0x24(%ebx)
404757:	e8 72 d3 ff ff       	call   0x401ace
40475c:	8b f0                	mov    %eax,%esi
40475e:	85 f6                	test   %esi,%esi
404760:	78 08                	js     0x40476a
404762:	33 f6                	xor    %esi,%esi
404764:	c6 43 20 01          	movb   $0x1,0x20(%ebx)
404768:	85 f6                	test   %esi,%esi
40476a:	75 19                	jne    0x404785
40476c:	8b 03                	mov    (%ebx),%eax
40476e:	57                   	push   %edi
40476f:	ff 75 0c             	push   0xc(%ebp)
404772:	8b 30                	mov    (%eax),%esi
404774:	8b ce                	mov    %esi,%ecx
404776:	53                   	push   %ebx
404777:	ff 15 d0 71 40 00    	call   *0x4071d0
40477d:	ff d6                	call   *%esi
40477f:	8b f0                	mov    %eax,%esi
404781:	85 f6                	test   %esi,%esi
404783:	74 08                	je     0x40478d
404785:	51                   	push   %ecx
404786:	8b cb                	mov    %ebx,%ecx
404788:	e8 25 00 00 00       	call   0x4047b2
40478d:	8b c6                	mov    %esi,%eax
40478f:	5e                   	pop    %esi
404790:	5b                   	pop    %ebx
404791:	5f                   	pop    %edi
404792:	5d                   	pop    %ebp
404793:	c2 0c 00             	ret    $0xc
404796:	8b ff                	mov    %edi,%edi
404798:	56                   	push   %esi
404799:	8b f1                	mov    %ecx,%esi
40479b:	eb 0e                	jmp    0x4047ab
40479d:	8b 16                	mov    (%esi),%edx
40479f:	52                   	push   %edx
4047a0:	8b 02                	mov    (%edx),%eax
4047a2:	89 06                	mov    %eax,(%esi)
4047a4:	ff 15 64 71 40 00    	call   *0x407164
4047aa:	59                   	pop    %ecx
4047ab:	83 3e 00             	cmpl   $0x0,(%esi)
4047ae:	75 ed                	jne    0x40479d
4047b0:	5e                   	pop    %esi
4047b1:	c3                   	ret
4047b2:	8b ff                	mov    %edi,%edi
4047b4:	56                   	push   %esi
4047b5:	8b f1                	mov    %ecx,%esi
4047b7:	8d 46 08             	lea    0x8(%esi),%eax
4047ba:	c7 06 98 10 40 00    	movl   $0x401098,(%esi)
4047c0:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
4047c7:	80 78 18 00          	cmpb   $0x0,0x18(%eax)
4047cb:	74 0b                	je     0x4047d8
4047cd:	50                   	push   %eax
4047ce:	c6 40 18 00          	movb   $0x0,0x18(%eax)
4047d2:	ff 15 28 71 40 00    	call   *0x407128
4047d8:	56                   	push   %esi
4047d9:	e8 5b 04 00 00       	call   0x404c39
4047de:	59                   	pop    %ecx
4047df:	8b c6                	mov    %esi,%eax
4047e1:	5e                   	pop    %esi
4047e2:	c2 04 00             	ret    $0x4
4047e5:	8b ff                	mov    %edi,%edi
4047e7:	55                   	push   %ebp
4047e8:	8b ec                	mov    %esp,%ebp
4047ea:	51                   	push   %ecx
4047eb:	57                   	push   %edi
4047ec:	8b 7d 08             	mov    0x8(%ebp),%edi
4047ef:	89 55 fc             	mov    %edx,-0x4(%ebp)
4047f2:	85 ff                	test   %edi,%edi
4047f4:	75 07                	jne    0x4047fd
4047f6:	b8 03 40 00 80       	mov    $0x80004003,%eax
4047fb:	eb 7e                	jmp    0x40487b
4047fd:	83 27 00             	andl   $0x0,(%edi)
404800:	53                   	push   %ebx
404801:	56                   	push   %esi
404802:	6a 24                	push   $0x24
404804:	be 0e 00 07 80       	mov    $0x8007000e,%esi
404809:	e8 02 04 00 00       	call   0x404c10
40480e:	8b d8                	mov    %eax,%ebx
404810:	59                   	pop    %ecx
404811:	85 db                	test   %ebx,%ebx
404813:	74 23                	je     0x404838
404815:	83 63 04 00          	andl   $0x0,0x4(%ebx)
404819:	8d 7b 08             	lea    0x8(%ebx),%edi
40481c:	6a 06                	push   $0x6
40481e:	33 c0                	xor    %eax,%eax
404820:	59                   	pop    %ecx
404821:	f3 ab                	rep stos %eax,%es:(%edi)
404823:	88 43 20             	mov    %al,0x20(%ebx)
404826:	c7 03 80 10 40 00    	movl   $0x401080,(%ebx)
40482c:	f0 ff 05 e4 63 40 00 	lock incl 0x4063e4
404833:	8b 7d 08             	mov    0x8(%ebp),%edi
404836:	eb 02                	jmp    0x40483a
404838:	33 db                	xor    %ebx,%ebx
40483a:	85 db                	test   %ebx,%ebx
40483c:	74 39                	je     0x404877
40483e:	8d 4b 08             	lea    0x8(%ebx),%ecx
404841:	e8 88 d2 ff ff       	call   0x401ace
404846:	8b f0                	mov    %eax,%esi
404848:	85 f6                	test   %esi,%esi
40484a:	78 08                	js     0x404854
40484c:	33 f6                	xor    %esi,%esi
40484e:	c6 43 20 01          	movb   $0x1,0x20(%ebx)
404852:	85 f6                	test   %esi,%esi
404854:	75 19                	jne    0x40486f
404856:	8b 03                	mov    (%ebx),%eax
404858:	57                   	push   %edi
404859:	ff 75 fc             	push   -0x4(%ebp)
40485c:	8b 30                	mov    (%eax),%esi
40485e:	8b ce                	mov    %esi,%ecx
404860:	53                   	push   %ebx
404861:	ff 15 d0 71 40 00    	call   *0x4071d0
404867:	ff d6                	call   *%esi
404869:	8b f0                	mov    %eax,%esi
40486b:	85 f6                	test   %esi,%esi
40486d:	74 08                	je     0x404877
40486f:	51                   	push   %ecx
404870:	8b cb                	mov    %ebx,%ecx
404872:	e8 8d 00 00 00       	call   0x404904
404877:	8b c6                	mov    %esi,%eax
404879:	5e                   	pop    %esi
40487a:	5b                   	pop    %ebx
40487b:	5f                   	pop    %edi
40487c:	c9                   	leave
40487d:	c2 04 00             	ret    $0x4
404880:	8b ff                	mov    %edi,%edi
404882:	55                   	push   %ebp
404883:	8b ec                	mov    %esp,%ebp
404885:	ff 75 10             	push   0x10(%ebp)
404888:	8b 4d 08             	mov    0x8(%ebp),%ecx
40488b:	ba f0 10 40 00       	mov    $0x4010f0,%edx
404890:	ff 75 0c             	push   0xc(%ebp)
404893:	e8 7c eb ff ff       	call   0x403414
404898:	5d                   	pop    %ebp
404899:	c2 0c 00             	ret    $0xc
40489c:	cc                   	int3
40489d:	cc                   	int3
40489e:	cc                   	int3
40489f:	cc                   	int3
4048a0:	8b ff                	mov    %edi,%edi
4048a2:	55                   	push   %ebp
4048a3:	8b ec                	mov    %esp,%ebp
4048a5:	53                   	push   %ebx
4048a6:	56                   	push   %esi
4048a7:	8b 75 08             	mov    0x8(%ebp),%esi
4048aa:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
4048af:	57                   	push   %edi
4048b0:	8d 7e 04             	lea    0x4(%esi),%edi
4048b3:	eb 0d                	jmp    0x4048c2
4048b5:	8d 4a ff             	lea    -0x1(%edx),%ecx
4048b8:	8b c2                	mov    %edx,%eax
4048ba:	f0 0f b1 0f          	lock cmpxchg %ecx,(%edi)
4048be:	3b c2                	cmp    %edx,%eax
4048c0:	74 06                	je     0x4048c8
4048c2:	8b 17                	mov    (%edi),%edx
4048c4:	3b d3                	cmp    %ebx,%edx
4048c6:	75 ed                	jne    0x4048b5
4048c8:	8d 7a ff             	lea    -0x1(%edx),%edi
4048cb:	85 ff                	test   %edi,%edi
4048cd:	75 0c                	jne    0x4048db
4048cf:	85 f6                	test   %esi,%esi
4048d1:	74 08                	je     0x4048db
4048d3:	51                   	push   %ecx
4048d4:	8b ce                	mov    %esi,%ecx
4048d6:	e8 d7 fe ff ff       	call   0x4047b2
4048db:	8b c7                	mov    %edi,%eax
4048dd:	5f                   	pop    %edi
4048de:	5e                   	pop    %esi
4048df:	5b                   	pop    %ebx
4048e0:	5d                   	pop    %ebp
4048e1:	c2 04 00             	ret    $0x4
4048e4:	cc                   	int3
4048e5:	cc                   	int3
4048e6:	cc                   	int3
4048e7:	cc                   	int3
4048e8:	cc                   	int3
4048e9:	cc                   	int3
4048ea:	cc                   	int3
4048eb:	cc                   	int3
4048ec:	cc                   	int3
4048ed:	cc                   	int3
4048ee:	cc                   	int3