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
4048ef:	cc                   	int3
4048f0:	8b ff                	mov    %edi,%edi
4048f2:	55                   	push   %ebp
4048f3:	8b ec                	mov    %esp,%ebp
4048f5:	8b 4d 08             	mov    0x8(%ebp),%ecx
4048f8:	8d 49 04             	lea    0x4(%ecx),%ecx
4048fb:	e8 b0 00 00 00       	call   0x4049b0
404900:	5d                   	pop    %ebp
404901:	c2 04 00             	ret    $0x4
404904:	8b ff                	mov    %edi,%edi
404906:	56                   	push   %esi
404907:	8b f1                	mov    %ecx,%esi
404909:	c7 06 80 10 40 00    	movl   $0x401080,(%esi)
40490f:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
404916:	e8 a3 f6 ff ff       	call   0x403fbe
40491b:	8d 46 08             	lea    0x8(%esi),%eax
40491e:	80 78 18 00          	cmpb   $0x0,0x18(%eax)
404922:	74 0b                	je     0x40492f
404924:	50                   	push   %eax
404925:	c6 40 18 00          	movb   $0x0,0x18(%eax)
404929:	ff 15 28 71 40 00    	call   *0x407128
40492f:	56                   	push   %esi
404930:	e8 04 03 00 00       	call   0x404c39
404935:	59                   	pop    %ecx
404936:	8b c6                	mov    %esi,%eax
404938:	5e                   	pop    %esi
404939:	c2 04 00             	ret    $0x4
40493c:	cc                   	int3
40493d:	cc                   	int3
40493e:	cc                   	int3
40493f:	cc                   	int3
404940:	8b ff                	mov    %edi,%edi
404942:	55                   	push   %ebp
404943:	8b ec                	mov    %esp,%ebp
404945:	ff 75 10             	push   0x10(%ebp)
404948:	8b 4d 08             	mov    0x8(%ebp),%ecx
40494b:	ba b0 10 40 00       	mov    $0x4010b0,%edx
404950:	ff 75 0c             	push   0xc(%ebp)
404953:	e8 bc ea ff ff       	call   0x403414
404958:	5d                   	pop    %ebp
404959:	c2 0c 00             	ret    $0xc
40495c:	cc                   	int3
40495d:	cc                   	int3
40495e:	cc                   	int3
40495f:	cc                   	int3
404960:	8b ff                	mov    %edi,%edi
404962:	55                   	push   %ebp
404963:	8b ec                	mov    %esp,%ebp
404965:	53                   	push   %ebx
404966:	56                   	push   %esi
404967:	8b 75 08             	mov    0x8(%ebp),%esi
40496a:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
40496f:	57                   	push   %edi
404970:	8d 7e 04             	lea    0x4(%esi),%edi
404973:	eb 0d                	jmp    0x404982
404975:	8d 4a ff             	lea    -0x1(%edx),%ecx
404978:	8b c2                	mov    %edx,%eax
40497a:	f0 0f b1 0f          	lock cmpxchg %ecx,(%edi)
40497e:	3b c2                	cmp    %edx,%eax
404980:	74 06                	je     0x404988
404982:	8b 17                	mov    (%edi),%edx
404984:	3b d3                	cmp    %ebx,%edx
404986:	75 ed                	jne    0x404975
404988:	8d 7a ff             	lea    -0x1(%edx),%edi
40498b:	85 ff                	test   %edi,%edi
40498d:	75 18                	jne    0x4049a7
40498f:	f0 ff 05 e4 63 40 00 	lock incl 0x4063e4
404996:	85 f6                	test   %esi,%esi
404998:	74 08                	je     0x4049a2
40499a:	51                   	push   %ecx
40499b:	8b ce                	mov    %esi,%ecx
40499d:	e8 62 ff ff ff       	call   0x404904
4049a2:	e8 17 f6 ff ff       	call   0x403fbe
4049a7:	8b c7                	mov    %edi,%eax
4049a9:	5f                   	pop    %edi
4049aa:	5e                   	pop    %esi
4049ab:	5b                   	pop    %ebx
4049ac:	5d                   	pop    %ebp
4049ad:	c2 04 00             	ret    $0x4
4049b0:	8b ff                	mov    %edi,%edi
4049b2:	56                   	push   %esi
4049b3:	8b 31                	mov    (%ecx),%esi
4049b5:	57                   	push   %edi
4049b6:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
4049bb:	3b f7                	cmp    %edi,%esi
4049bd:	74 1a                	je     0x4049d9
4049bf:	8d 56 01             	lea    0x1(%esi),%edx
4049c2:	8b c6                	mov    %esi,%eax
4049c4:	f0 0f b1 11          	lock cmpxchg %edx,(%ecx)
4049c8:	3b c6                	cmp    %esi,%eax
4049ca:	74 06                	je     0x4049d2
4049cc:	8b 31                	mov    (%ecx),%esi
4049ce:	3b f7                	cmp    %edi,%esi
4049d0:	75 ed                	jne    0x4049bf
4049d2:	3b f7                	cmp    %edi,%esi
4049d4:	74 03                	je     0x4049d9
4049d6:	8d 7e 01             	lea    0x1(%esi),%edi
4049d9:	8b c7                	mov    %edi,%eax
4049db:	5f                   	pop    %edi
4049dc:	5e                   	pop    %esi
4049dd:	c3                   	ret
4049de:	cc                   	int3
4049df:	cc                   	int3
4049e0:	8b ff                	mov    %edi,%edi
4049e2:	55                   	push   %ebp
4049e3:	8b ec                	mov    %esp,%ebp
4049e5:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4049e9:	75 07                	jne    0x4049f2
4049eb:	b8 03 40 00 80       	mov    $0x80004003,%eax
4049f0:	eb 45                	jmp    0x404a37
4049f2:	56                   	push   %esi
4049f3:	ff 75 14             	push   0x14(%ebp)
4049f6:	ff 75 10             	push   0x10(%ebp)
4049f9:	6a 01                	push   $0x1
4049fb:	6a 00                	push   $0x0
4049fd:	ff 75 0c             	push   0xc(%ebp)
404a00:	ff 15 08 70 40 00    	call   *0x407008
404a06:	8b f0                	mov    %eax,%esi
404a08:	85 f6                	test   %esi,%esi
404a0a:	74 28                	je     0x404a34
404a0c:	8b 0d 48 60 40 00    	mov    0x406048,%ecx
404a12:	81 f9 48 60 40 00    	cmp    $0x406048,%ecx
404a18:	74 1a                	je     0x404a34
404a1a:	f6 41 1c 01          	testb  $0x1,0x1c(%ecx)
404a1e:	74 14                	je     0x404a34
404a20:	56                   	push   %esi
404a21:	ff 71 14             	push   0x14(%ecx)
404a24:	ba 50 16 40 00       	mov    $0x401650,%edx
404a29:	ff 71 10             	push   0x10(%ecx)
404a2c:	6a 0a                	push   $0xa
404a2e:	59                   	pop    %ecx
404a2f:	e8 4e f7 ff ff       	call   0x404182
404a34:	8b c6                	mov    %esi,%eax
404a36:	5e                   	pop    %esi
404a37:	5d                   	pop    %ebp
404a38:	c2 10 00             	ret    $0x10
404a3b:	cc                   	int3
404a3c:	cc                   	int3
404a3d:	cc                   	int3
404a3e:	cc                   	int3
404a3f:	cc                   	int3
404a40:	8b ff                	mov    %edi,%edi
404a42:	56                   	push   %esi
404a43:	57                   	push   %edi
404a44:	33 ff                	xor    %edi,%edi
404a46:	57                   	push   %edi
404a47:	57                   	push   %edi
404a48:	6a 01                	push   $0x1
404a4a:	57                   	push   %edi
404a4b:	8b f7                	mov    %edi,%esi
404a4d:	ff 15 3c 71 40 00    	call   *0x40713c
404a53:	a3 7c 64 40 00       	mov    %eax,0x40647c
404a58:	85 c0                	test   %eax,%eax
404a5a:	75 0b                	jne    0x404a67
404a5c:	e8 84 01 00 00       	call   0x404be5
404a61:	8b f0                	mov    %eax,%esi
404a63:	85 f6                	test   %esi,%esi
404a65:	78 22                	js     0x404a89
404a67:	57                   	push   %edi
404a68:	57                   	push   %edi
404a69:	57                   	push   %edi
404a6a:	68 40 4b 40 00       	push   $0x404b40
404a6f:	57                   	push   %edi
404a70:	57                   	push   %edi
404a71:	ff 15 c4 70 40 00    	call   *0x4070c4
404a77:	a3 80 64 40 00       	mov    %eax,0x406480
404a7c:	85 c0                	test   %eax,%eax
404a7e:	75 07                	jne    0x404a87
404a80:	e8 60 01 00 00       	call   0x404be5
404a85:	8b f0                	mov    %eax,%esi
404a87:	85 f6                	test   %esi,%esi
404a89:	74 26                	je     0x404ab1
404a8b:	a1 48 60 40 00       	mov    0x406048,%eax
404a90:	3d 48 60 40 00       	cmp    $0x406048,%eax
404a95:	74 1a                	je     0x404ab1