407ad6:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
407adb:	74 19                	je     0x407af6
407add:	80 78 19 02          	cmpb   $0x2,0x19(%eax)
407ae1:	72 13                	jb     0x407af6
407ae3:	ff 70 14             	push   0x14(%eax)
407ae6:	ba 4c 18 40 00       	mov    $0x40184c,%edx
407aeb:	ff 70 10             	push   0x10(%eax)
407aee:	6a 0d                	push   $0xd
407af0:	59                   	pop    %ecx
407af1:	e8 97 c4 ff ff       	call   0x403f8d
407af6:	b8 fc 7a 40 00       	mov    $0x407afc,%eax
407afb:	c3                   	ret
407afc:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
407b01:	eb 31                	jmp    0x407b34
407b03:	a1 00 d0 40 00       	mov    0x40d000,%eax
407b08:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
407b0d:	74 19                	je     0x407b28
407b0f:	80 78 19 01          	cmpb   $0x1,0x19(%eax)
407b13:	72 13                	jb     0x407b28
407b15:	ff 70 14             	push   0x14(%eax)
407b18:	ba 4c 18 40 00       	mov    $0x40184c,%edx
407b1d:	ff 70 10             	push   0x10(%eax)
407b20:	6a 0e                	push   $0xe
407b22:	59                   	pop    %ecx
407b23:	e8 65 c4 ff ff       	call   0x403f8d
407b28:	cc                   	int3
407b29:	b8 2f 7b 40 00       	mov    $0x407b2f,%eax
407b2e:	c3                   	ret
407b2f:	b8 ff ff 00 80       	mov    $0x8000ffff,%eax
407b34:	e8 81 30 00 00       	call   0x40abba
407b39:	c2 1c 00             	ret    $0x1c
407b3c:	cc                   	int3
407b3d:	cc                   	int3
407b3e:	cc                   	int3
407b3f:	cc                   	int3
407b40:	33 c0                	xor    %eax,%eax
407b42:	c2 04 00             	ret    $0x4
407b45:	6a 34                	push   $0x34
407b47:	b8 8c b1 40 00       	mov    $0x40b18c,%eax
407b4c:	e8 c3 30 00 00       	call   0x40ac14
407b51:	8b d9                	mov    %ecx,%ebx
407b53:	89 5d d8             	mov    %ebx,-0x28(%ebp)
407b56:	8b 45 10             	mov    0x10(%ebp),%eax
407b59:	8d 4d c0             	lea    -0x40(%ebp),%ecx
407b5c:	8b 7d 08             	mov    0x8(%ebp),%edi
407b5f:	89 7d dc             	mov    %edi,-0x24(%ebp)
407b62:	89 45 d4             	mov    %eax,-0x2c(%ebp)
407b65:	8b 45 14             	mov    0x14(%ebp),%eax
407b68:	53                   	push   %ebx
407b69:	89 45 ec             	mov    %eax,-0x14(%ebp)
407b6c:	89 45 dc             	mov    %eax,-0x24(%ebp)
407b6f:	e8 c0 cf ff ff       	call   0x404b34
407b74:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407b78:	8b 43 0c             	mov    0xc(%ebx),%eax
407b7b:	8b 73 08             	mov    0x8(%ebx),%esi
407b7e:	89 45 c8             	mov    %eax,-0x38(%ebp)
407b81:	3b f0                	cmp    %eax,%esi
407b83:	0f 84 ad 00 00 00    	je     0x407c36
407b89:	8b 56 04             	mov    0x4(%esi),%edx
407b8c:	85 d2                	test   %edx,%edx
407b8e:	74 07                	je     0x407b97
407b90:	f0 ff 42 08          	lock incl 0x8(%edx)
407b94:	8b 56 04             	mov    0x4(%esi),%edx
407b97:	8b 06                	mov    (%esi),%eax
407b99:	33 c9                	xor    %ecx,%ecx
407b9b:	21 4d ec             	and    %ecx,-0x14(%ebp)
407b9e:	89 45 cc             	mov    %eax,-0x34(%ebp)
407ba1:	89 55 d0             	mov    %edx,-0x30(%ebp)
407ba4:	89 4d e8             	mov    %ecx,-0x18(%ebp)
407ba7:	85 d2                	test   %edx,%edx
407ba9:	74 1b                	je     0x407bc6
407bab:	8d 5a 04             	lea    0x4(%edx),%ebx
407bae:	eb 0d                	jmp    0x407bbd
407bb0:	8d 4a 01             	lea    0x1(%edx),%ecx
407bb3:	8b c2                	mov    %edx,%eax
407bb5:	f0 0f b1 0b          	lock cmpxchg %ecx,(%ebx)
407bb9:	3b c2                	cmp    %edx,%eax
407bbb:	74 46                	je     0x407c03
407bbd:	8b 13                	mov    (%ebx),%edx
407bbf:	85 d2                	test   %edx,%edx
407bc1:	75 ed                	jne    0x407bb0
407bc3:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407bc6:	85 c9                	test   %ecx,%ecx
407bc8:	74 47                	je     0x407c11
407bca:	8b 5d d4             	mov    -0x2c(%ebp),%ebx
407bcd:	33 d2                	xor    %edx,%edx
407bcf:	8b 44 91 28          	mov    0x28(%ecx,%edx,4),%eax
407bd3:	3b 04 93             	cmp    (%ebx,%edx,4),%eax
407bd6:	75 39                	jne    0x407c11
407bd8:	42                   	inc    %edx
407bd9:	83 fa 04             	cmp    $0x4,%edx
407bdc:	75 f1                	jne    0x407bcf
407bde:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
407be2:	89 0f                	mov    %ecx,(%edi)
407be4:	8b 4d ec             	mov    -0x14(%ebp),%ecx
407be7:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
407beb:	89 4f 04             	mov    %ecx,0x4(%edi)
407bee:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407bf1:	e8 43 e4 ff ff       	call   0x406039
407bf6:	8d 4d cc             	lea    -0x34(%ebp),%ecx
407bf9:	e8 ca d0 ff ff       	call   0x404cc8
407bfe:	e9 c7 00 00 00       	jmp    0x407cca
407c03:	8b 4d cc             	mov    -0x34(%ebp),%ecx
407c06:	8b 45 d0             	mov    -0x30(%ebp),%eax
407c09:	89 4d e8             	mov    %ecx,-0x18(%ebp)
407c0c:	89 45 ec             	mov    %eax,-0x14(%ebp)
407c0f:	eb b5                	jmp    0x407bc6
407c11:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407c14:	e8 20 e4 ff ff       	call   0x406039
407c19:	8d 4d cc             	lea    -0x34(%ebp),%ecx
407c1c:	e8 a7 d0 ff ff       	call   0x404cc8
407c21:	83 c6 08             	add    $0x8,%esi
407c24:	3b 75 c8             	cmp    -0x38(%ebp),%esi
407c27:	0f 85 5c ff ff ff    	jne    0x407b89
407c2d:	8b 45 dc             	mov    -0x24(%ebp),%eax
407c30:	8b 5d d8             	mov    -0x28(%ebp),%ebx
407c33:	89 45 ec             	mov    %eax,-0x14(%ebp)
407c36:	8b 73 14             	mov    0x14(%ebx),%esi
407c39:	68 b0 00 00 00       	push   $0xb0
407c3e:	e8 b3 2d 00 00       	call   0x40a9f6
407c43:	8b d8                	mov    %eax,%ebx
407c45:	59                   	pop    %ecx
407c46:	89 5d dc             	mov    %ebx,-0x24(%ebp)
407c49:	ff 75 d8             	push   -0x28(%ebp)
407c4c:	33 c9                	xor    %ecx,%ecx
407c4e:	56                   	push   %esi
407c4f:	ff 75 18             	push   0x18(%ebp)
407c52:	41                   	inc    %ecx
407c53:	8d 73 0c             	lea    0xc(%ebx),%esi
407c56:	88 4d fc             	mov    %cl,-0x4(%ebp)
407c59:	ff 75 ec             	push   -0x14(%ebp)
407c5c:	89 4b 04             	mov    %ecx,0x4(%ebx)
407c5f:	ff 75 d4             	push   -0x2c(%ebp)
407c62:	89 4b 08             	mov    %ecx,0x8(%ebx)
407c65:	8b ce                	mov    %esi,%ecx
407c67:	ff 75 0c             	push   0xc(%ebp)
407c6a:	c7 03 30 11 40 00    	movl   $0x401130,(%ebx)
407c70:	e8 fd 03 00 00       	call   0x408072
407c75:	89 75 e0             	mov    %esi,-0x20(%ebp)
407c78:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
407c7b:	8b 4d d8             	mov    -0x28(%ebp),%ecx
407c7e:	83 c1 08             	add    $0x8,%ecx
407c81:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
407c85:	8b 41 04             	mov    0x4(%ecx),%eax
407c88:	39 41 08             	cmp    %eax,0x8(%ecx)
407c8b:	74 18                	je     0x407ca5
407c8d:	83 20 00             	andl   $0x0,(%eax)
407c90:	8d 53 08             	lea    0x8(%ebx),%edx
407c93:	83 60 04 00          	andl   $0x0,0x4(%eax)
407c97:	f0 ff 02             	lock incl (%edx)
407c9a:	89 30                	mov    %esi,(%eax)
407c9c:	89 58 04             	mov    %ebx,0x4(%eax)
407c9f:	83 41 04 08          	addl   $0x8,0x4(%ecx)
407ca3:	eb 10                	jmp    0x407cb5
407ca5:	8d 55 e0             	lea    -0x20(%ebp),%edx
407ca8:	52                   	push   %edx
407ca9:	50                   	push   %eax
407caa:	e8 2b 01 00 00       	call   0x407dda
407caf:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
407cb2:	8b 75 e0             	mov    -0x20(%ebp),%esi
407cb5:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
407cb9:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407cbc:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
407cc0:	89 37                	mov    %esi,(%edi)
407cc2:	89 5f 04             	mov    %ebx,0x4(%edi)
407cc5:	e8 6f e3 ff ff       	call   0x406039
407cca:	8d 4d c0             	lea    -0x40(%ebp),%ecx
407ccd:	e8 33 ce ff ff       	call   0x404b05
407cd2:	8b c7                	mov    %edi,%eax
407cd4:	e8 f6 2e 00 00       	call   0x40abcf
407cd9:	c2 18 00             	ret    $0x18
407cdc:	6a 14                	push   $0x14
407cde:	b8 b9 b1 40 00       	mov    $0x40b1b9,%eax
407ce3:	e8 f8 2e 00 00       	call   0x40abe0
407ce8:	8b f1                	mov    %ecx,%esi
407cea:	56                   	push   %esi
407ceb:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407cee:	e8 41 ce ff ff       	call   0x404b34
407cf3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407cf7:	8d 5e 08             	lea    0x8(%esi),%ebx
407cfa:	8b 46 0c             	mov    0xc(%esi),%eax
407cfd:	8b 33                	mov    (%ebx),%esi
407cff:	89 45 f0             	mov    %eax,-0x10(%ebp)
407d02:	eb 15                	jmp    0x407d19
407d04:	8b 4e 04             	mov    0x4(%esi),%ecx
407d07:	85 c9                	test   %ecx,%ecx
407d09:	74 05                	je     0x407d10
407d0b:	8b 49 04             	mov    0x4(%ecx),%ecx
407d0e:	eb 02                	jmp    0x407d12
407d10:	33 c9                	xor    %ecx,%ecx
407d12:	85 c9                	test   %ecx,%ecx
407d14:	74 07                	je     0x407d1d
407d16:	83 c6 08             	add    $0x8,%esi
407d19:	3b f0                	cmp    %eax,%esi
407d1b:	75 e7                	jne    0x407d04
407d1d:	3b f0                	cmp    %eax,%esi
407d1f:	74 45                	je     0x407d66
407d21:	8d 7e 08             	lea    0x8(%esi),%edi
407d24:	eb 3c                	jmp    0x407d62
407d26:	8b 57 04             	mov    0x4(%edi),%edx
407d29:	85 d2                	test   %edx,%edx
407d2b:	74 05                	je     0x407d32
407d2d:	8b 4a 04             	mov    0x4(%edx),%ecx
407d30:	eb 02                	jmp    0x407d34
407d32:	33 c9                	xor    %ecx,%ecx
407d34:	85 c9                	test   %ecx,%ecx
407d36:	74 27                	je     0x407d5f
407d38:	8b 0f                	mov    (%edi),%ecx
407d3a:	83 27 00             	andl   $0x0,(%edi)
407d3d:	83 67 04 00          	andl   $0x0,0x4(%edi)
407d41:	8b 06                	mov    (%esi),%eax
407d43:	89 45 e8             	mov    %eax,-0x18(%ebp)
407d46:	8b 46 04             	mov    0x4(%esi),%eax
407d49:	89 0e                	mov    %ecx,(%esi)
407d4b:	8d 4d e8             	lea    -0x18(%ebp),%ecx
407d4e:	89 45 ec             	mov    %eax,-0x14(%ebp)
407d51:	89 56 04             	mov    %edx,0x4(%esi)
407d54:	e8 6f cf ff ff       	call   0x404cc8
407d59:	8b 45 f0             	mov    -0x10(%ebp),%eax
407d5c:	83 c6 08             	add    $0x8,%esi
407d5f:	83 c7 08             	add    $0x8,%edi
407d62:	3b f8                	cmp    %eax,%edi
407d64:	75 c0                	jne    0x407d26
407d66:	8b 7b 04             	mov    0x4(%ebx),%edi
407d69:	8b cf                	mov    %edi,%ecx
407d6b:	8b 13                	mov    (%ebx),%edx
407d6d:	2b f2                	sub    %edx,%esi
407d6f:	2b ca                	sub    %edx,%ecx
407d71:	c1 fe 03             	sar    $0x3,%esi
407d74:	c1 f9 03             	sar    $0x3,%ecx
407d77:	3b f1                	cmp    %ecx,%esi
407d79:	73 22                	jae    0x407d9d
407d7b:	8d 04 f2             	lea    (%edx,%esi,8),%eax
407d7e:	89 45 f0             	mov    %eax,-0x10(%ebp)
407d81:	8b f0                	mov    %eax,%esi
407d83:	3b c7                	cmp    %edi,%eax
407d85:	74 11                	je     0x407d98
407d87:	8b ce                	mov    %esi,%ecx
407d89:	e8 3a cf ff ff       	call   0x404cc8
407d8e:	83 c6 08             	add    $0x8,%esi
407d91:	3b f7                	cmp    %edi,%esi
407d93:	75 f2                	jne    0x407d87
407d95:	8b 45 f0             	mov    -0x10(%ebp),%eax
407d98:	89 43 04             	mov    %eax,0x4(%ebx)
407d9b:	eb 2f                	jmp    0x407dcc
407d9d:	76 2d                	jbe    0x407dcc
407d9f:	8b 43 08             	mov    0x8(%ebx),%eax
407da2:	2b c2                	sub    %edx,%eax
407da4:	c1 f8 03             	sar    $0x3,%eax
407da7:	3b f0                	cmp    %eax,%esi
407da9:	76 0b                	jbe    0x407db6
407dab:	51                   	push   %ecx
407dac:	56                   	push   %esi
407dad:	8b cb                	mov    %ebx,%ecx
407daf:	e8 cf 01 00 00       	call   0x407f83
407db4:	eb 16                	jmp    0x407dcc
407db6:	2b f1                	sub    %ecx,%esi
407db8:	74 0f                	je     0x407dc9
407dba:	83 27 00             	andl   $0x0,(%edi)
407dbd:	83 67 04 00          	andl   $0x0,0x4(%edi)
407dc1:	83 c7 08             	add    $0x8,%edi
407dc4:	83 ee 01             	sub    $0x1,%esi
407dc7:	75 f1                	jne    0x407dba
407dc9:	89 7b 04             	mov    %edi,0x4(%ebx)
407dcc:	8d 4d e0             	lea    -0x20(%ebp),%ecx
407dcf:	e8 31 cd ff ff       	call   0x404b05
407dd4:	e8 e1 2d 00 00       	call   0x40abba
407dd9:	c3                   	ret
407dda:	8b ff                	mov    %edi,%edi
407ddc:	55                   	push   %ebp
407ddd:	8b ec                	mov    %esp,%ebp
407ddf:	51                   	push   %ecx
407de0:	51                   	push   %ecx
407de1:	53                   	push   %ebx
407de2:	8b 5d 08             	mov    0x8(%ebp),%ebx
407de5:	56                   	push   %esi
407de6:	8b f1                	mov    %ecx,%esi
407de8:	57                   	push   %edi
407de9:	bf ff ff ff 1f       	mov    $0x1fffffff,%edi
407dee:	8b 46 04             	mov    0x4(%esi),%eax
407df1:	2b 06                	sub    (%esi),%eax
407df3:	2b 1e                	sub    (%esi),%ebx
407df5:	c1 f8 03             	sar    $0x3,%eax
407df8:	3b c7                	cmp    %edi,%eax
407dfa:	0f 84 85 00 00 00    	je     0x407e85
407e00:	40                   	inc    %eax
407e01:	50                   	push   %eax
407e02:	89 45 f8             	mov    %eax,-0x8(%ebp)
407e05:	e8 4e 01 00 00       	call   0x407f58
407e0a:	8b c8                	mov    %eax,%ecx
407e0c:	89 45 fc             	mov    %eax,-0x4(%ebp)
407e0f:	c1 e1 03             	shl    $0x3,%ecx
407e12:	3b c7                	cmp    %edi,%eax
407e14:	76 03                	jbe    0x407e19
407e16:	83 c9 ff             	or     $0xffffffff,%ecx
407e19:	e8 6d 00 00 00       	call   0x407e8b
407e1e:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407e21:	8b f8                	mov    %eax,%edi
407e23:	83 e3 f8             	and    $0xfffffff8,%ebx
407e26:	83 24 3b 00          	andl   $0x0,(%ebx,%edi,1)
407e2a:	83 64 3b 04 00       	andl   $0x0,0x4(%ebx,%edi,1)
407e2f:	8b 41 04             	mov    0x4(%ecx),%eax
407e32:	85 c0                	test   %eax,%eax
407e34:	74 04                	je     0x407e3a
407e36:	f0 ff 40 08          	lock incl 0x8(%eax)
407e3a:	8b 01                	mov    (%ecx),%eax
407e3c:	89 04 3b             	mov    %eax,(%ebx,%edi,1)
407e3f:	8b 41 04             	mov    0x4(%ecx),%eax
407e42:	89 44 3b 04          	mov    %eax,0x4(%ebx,%edi,1)
407e46:	8b 56 04             	mov    0x4(%esi),%edx
407e49:	51                   	push   %ecx
407e4a:	8b 0e                	mov    (%esi),%ecx
407e4c:	57                   	push   %edi
407e4d:	39 55 08             	cmp    %edx,0x8(%ebp)
407e50:	74 15                	je     0x407e67
407e52:	8b 55 08             	mov    0x8(%ebp),%edx
407e55:	e8 a8 01 00 00       	call   0x408002
407e5a:	8b 56 04             	mov    0x4(%esi),%edx
407e5d:	8d 43 08             	lea    0x8(%ebx),%eax
407e60:	51                   	push   %ecx
407e61:	8b 4d 08             	mov    0x8(%ebp),%ecx
407e64:	03 c7                	add    %edi,%eax
407e66:	50                   	push   %eax
407e67:	e8 96 01 00 00       	call   0x408002
407e6c:	ff 75 fc             	push   -0x4(%ebp)
407e6f:	8b ce                	mov    %esi,%ecx
407e71:	ff 75 f8             	push   -0x8(%ebp)
407e74:	57                   	push   %edi
407e75:	e8 8a 00 00 00       	call   0x407f04
407e7a:	8b 06                	mov    (%esi),%eax
407e7c:	5f                   	pop    %edi
407e7d:	5e                   	pop    %esi
407e7e:	03 c3                	add    %ebx,%eax
407e80:	5b                   	pop    %ebx
407e81:	c9                   	leave
407e82:	c2 08 00             	ret    $0x8
407e85:	e8 6e 00 00 00       	call   0x407ef8
407e8a:	cc                   	int3
407e8b:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
407e91:	72 27                	jb     0x407eba
407e93:	8d 41 23             	lea    0x23(%ecx),%eax
407e96:	3b c1                	cmp    %ecx,%eax
407e98:	77 03                	ja     0x407e9d
407e9a:	83 c8 ff             	or     $0xffffffff,%eax
407e9d:	50                   	push   %eax
407e9e:	e8 53 2b 00 00       	call   0x40a9f6
407ea3:	59                   	pop    %ecx
407ea4:	8b c8                	mov    %eax,%ecx
407ea6:	85 c9                	test   %ecx,%ecx
407ea8:	74 0a                	je     0x407eb4