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
404a97:	f6 40 1c 01          	testb  $0x1,0x1c(%eax)
404a9b:	74 14                	je     0x404ab1
404a9d:	56                   	push   %esi
404a9e:	ff 70 14             	push   0x14(%eax)
404aa1:	ba 50 16 40 00       	mov    $0x401650,%edx
404aa6:	ff 70 10             	push   0x10(%eax)
404aa9:	6a 0b                	push   $0xb
404aab:	59                   	pop    %ecx
404aac:	e8 d1 f6 ff ff       	call   0x404182
404ab1:	5f                   	pop    %edi
404ab2:	8b c6                	mov    %esi,%eax
404ab4:	5e                   	pop    %esi
404ab5:	c2 04 00             	ret    $0x4
404ab8:	cc                   	int3
404ab9:	cc                   	int3
404aba:	cc                   	int3
404abb:	cc                   	int3
404abc:	cc                   	int3
404abd:	cc                   	int3
404abe:	cc                   	int3
404abf:	cc                   	int3
404ac0:	8b ff                	mov    %edi,%edi
404ac2:	55                   	push   %ebp
404ac3:	8b ec                	mov    %esp,%ebp
404ac5:	53                   	push   %ebx
404ac6:	56                   	push   %esi
404ac7:	57                   	push   %edi
404ac8:	ff 75 0c             	push   0xc(%ebp)
404acb:	33 db                	xor    %ebx,%ebx
404acd:	53                   	push   %ebx
404ace:	68 00 00 10 00       	push   $0x100000
404ad3:	8b fb                	mov    %ebx,%edi
404ad5:	ff 15 d4 70 40 00    	call   *0x4070d4
404adb:	8b f0                	mov    %eax,%esi
404add:	85 f6                	test   %esi,%esi
404adf:	74 45                	je     0x404b26
404ae1:	8b ce                	mov    %esi,%ecx
404ae3:	ba 74 64 40 00       	mov    $0x406474,%edx
404ae8:	33 c0                	xor    %eax,%eax
404aea:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
404aee:	85 c0                	test   %eax,%eax
404af0:	75 2b                	jne    0x404b1d
404af2:	6a 08                	push   $0x8
404af4:	6a ff                	push   $0xffffffff
404af6:	53                   	push   %ebx
404af7:	68 b0 4b 40 00       	push   $0x404bb0
404afc:	56                   	push   %esi
404afd:	68 78 64 40 00       	push   $0x406478
404b02:	ff 15 70 70 40 00    	call   *0x407070
404b08:	85 c0                	test   %eax,%eax
404b0a:	75 21                	jne    0x404b2d
404b0c:	bf 05 40 00 80       	mov    $0x80004005,%edi
404b11:	89 1d 78 64 40 00    	mov    %ebx,0x406478
404b17:	89 1d 74 64 40 00    	mov    %ebx,0x406474
404b1d:	56                   	push   %esi
404b1e:	ff 15 58 70 40 00    	call   *0x407058
404b24:	eb 07                	jmp    0x404b2d
404b26:	e8 ba 00 00 00       	call   0x404be5
404b2b:	8b f8                	mov    %eax,%edi
404b2d:	8b c7                	mov    %edi,%eax
404b2f:	5f                   	pop    %edi
404b30:	5e                   	pop    %esi
404b31:	5b                   	pop    %ebx
404b32:	5d                   	pop    %ebp
404b33:	c2 08 00             	ret    $0x8
404b36:	cc                   	int3
404b37:	cc                   	int3
404b38:	cc                   	int3
404b39:	cc                   	int3
404b3a:	cc                   	int3
404b3b:	cc                   	int3
404b3c:	cc                   	int3
404b3d:	cc                   	int3
404b3e:	cc                   	int3
404b3f:	cc                   	int3
404b40:	8b ff                	mov    %edi,%edi
404b42:	56                   	push   %esi
404b43:	68 d0 07 00 00       	push   $0x7d0
404b48:	ff 35 7c 64 40 00    	push   0x40647c
404b4e:	ff 15 34 71 40 00    	call   *0x407134
404b54:	8b 0d 78 64 40 00    	mov    0x406478,%ecx
404b5a:	8b f0                	mov    %eax,%esi
404b5c:	85 c9                	test   %ecx,%ecx
404b5e:	74 07                	je     0x404b67
404b60:	51                   	push   %ecx
404b61:	ff 15 6c 70 40 00    	call   *0x40706c
404b67:	85 f6                	test   %esi,%esi
404b69:	5e                   	pop    %esi
404b6a:	ff 35 7c 64 40 00    	push   0x40647c
404b70:	75 12                	jne    0x404b84
404b72:	ff 15 58 70 40 00    	call   *0x407058
404b78:	83 25 7c 64 40 00 00 	andl   $0x0,0x40647c
404b7f:	33 c0                	xor    %eax,%eax
404b81:	c2 04 00             	ret    $0x4
404b84:	ff 15 58 70 40 00    	call   *0x407058
404b8a:	ff 35 80 64 40 00    	push   0x406480
404b90:	83 25 7c 64 40 00 00 	andl   $0x0,0x40647c
404b97:	ff 15 58 70 40 00    	call   *0x407058
404b9d:	83 25 80 64 40 00 00 	andl   $0x0,0x406480
404ba4:	6a ff                	push   $0xffffffff
404ba6:	ff 15 b4 70 40 00    	call   *0x4070b4
404bac:	cc                   	int3
404bad:	cc                   	int3
404bae:	cc                   	int3
404baf:	cc                   	int3
404bb0:	6a ff                	push   $0xffffffff
404bb2:	ff 15 b4 70 40 00    	call   *0x4070b4
404bb8:	cc                   	int3
404bb9:	8b ff                	mov    %edi,%edi
404bbb:	55                   	push   %ebp
404bbc:	8b ec                	mov    %esp,%ebp
404bbe:	ff 35 60 16 40 00    	push   0x401660
404bc4:	ff 75 0c             	push   0xc(%ebp)
404bc7:	ff 35 30 70 40 00    	push   0x407030
404bcd:	ff 35 60 16 40 00    	push   0x401660
404bd3:	ff 75 08             	push   0x8(%ebp)
404bd6:	68 00 00 40 00       	push   $0x400000
404bdb:	ff 15 38 70 40 00    	call   *0x407038
404be1:	5d                   	pop    %ebp
404be2:	c2 08 00             	ret    $0x8
404be5:	ff 15 40 70 40 00    	call   *0x407040
404beb:	8b c8                	mov    %eax,%ecx
404bed:	ba 00 00 00 e0       	mov    $0xe0000000,%edx
404bf2:	23 ca                	and    %edx,%ecx
404bf4:	74 0d                	je     0x404c03
404bf6:	3b ca                	cmp    %edx,%ecx
404bf8:	75 09                	jne    0x404c03
404bfa:	0f b7 c0             	movzwl %ax,%eax
404bfd:	0d 00 00 0f 80       	or     $0x800f0000,%eax
404c02:	c3                   	ret
404c03:	85 c0                	test   %eax,%eax
404c05:	7e 08                	jle    0x404c0f
404c07:	0f b7 c0             	movzwl %ax,%eax
404c0a:	0d 00 00 07 80       	or     $0x80070000,%eax
404c0f:	c3                   	ret
404c10:	8b ff                	mov    %edi,%edi
404c12:	55                   	push   %ebp
404c13:	8b ec                	mov    %esp,%ebp
404c15:	56                   	push   %esi
404c16:	eb 0d                	jmp    0x404c25
404c18:	ff 75 08             	push   0x8(%ebp)
404c1b:	e8 90 05 00 00       	call   0x4051b0
404c20:	59                   	pop    %ecx
404c21:	85 c0                	test   %eax,%eax
404c23:	74 0f                	je     0x404c34
404c25:	ff 75 08             	push   0x8(%ebp)
404c28:	e8 7d 05 00 00       	call   0x4051aa
404c2d:	8b f0                	mov    %eax,%esi
404c2f:	59                   	pop    %ecx
404c30:	85 f6                	test   %esi,%esi
404c32:	74 e4                	je     0x404c18
404c34:	8b c6                	mov    %esi,%eax
404c36:	5e                   	pop    %esi
404c37:	5d                   	pop    %ebp
404c38:	c3                   	ret
404c39:	e9 66 05 00 00       	jmp    0x4051a4
404c3e:	cc                   	int3
404c3f:	cc                   	int3
404c40:	e8 aa 02 00 00       	call   0x404eef
404c45:	6a 02                	push   $0x2
404c47:	a3 88 60 40 00       	mov    %eax,0x406088
404c4c:	e8 47 06 00 00       	call   0x405298
404c51:	50                   	push   %eax
404c52:	ff 15 94 71 40 00    	call   *0x407194
404c58:	83 0d 88 64 40 00 ff 	orl    $0xffffffff,0x406488
404c5f:	83 0d 8c 64 40 00 ff 	orl    $0xffffffff,0x40648c
404c66:	59                   	pop    %ecx
404c67:	59                   	pop    %ecx
404c68:	ff 15 6c 71 40 00    	call   *0x40716c
404c6e:	8b 0d b8 63 40 00    	mov    0x4063b8,%ecx
404c74:	89 08                	mov    %ecx,(%eax)
404c76:	ff 15 74 71 40 00    	call   *0x407174
404c7c:	8b 0d ac 63 40 00    	mov    0x4063ac,%ecx
404c82:	89 08                	mov    %ecx,(%eax)
404c84:	e8 67 fa ff ff       	call   0x4046f0