407b5b:	50                   	push   %eax
407b5c:	e8 9f fd ff ff       	call   0x407900
407b61:	83 c4 0c             	add    $0xc,%esp
407b64:	5f                   	pop    %edi
407b65:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407b68:	33 c0                	xor    %eax,%eax
407b6a:	5e                   	pop    %esi
407b6b:	33 cd                	xor    %ebp,%ecx
407b6d:	5b                   	pop    %ebx
407b6e:	e8 bd 88 00 00       	call   0x410430
407b73:	c9                   	leave
407b74:	c2 04 00             	ret    $0x4
407b77:	8b ff                	mov    %edi,%edi
407b79:	57                   	push   %edi
407b7a:	52                   	push   %edx
407b7b:	51                   	push   %ecx
407b7c:	ff 15 44 31 43 00    	call   *0x433144
407b82:	50                   	push   %eax
407b83:	ff 15 34 31 43 00    	call   *0x433134
407b89:	83 3d e8 25 43 00 00 	cmpl   $0x0,0x4325e8
407b90:	8b f8                	mov    %eax,%edi
407b92:	74 1a                	je     0x407bae
407b94:	56                   	push   %esi
407b95:	57                   	push   %edi
407b96:	ff 15 44 31 43 00    	call   *0x433144
407b9c:	8b 35 e8 25 43 00    	mov    0x4325e8,%esi
407ba2:	8b ce                	mov    %esi,%ecx
407ba4:	50                   	push   %eax
407ba5:	ff 15 18 34 43 00    	call   *0x433418
407bab:	ff d6                	call   *%esi
407bad:	5e                   	pop    %esi
407bae:	8b c7                	mov    %edi,%eax
407bb0:	5f                   	pop    %edi
407bb1:	c3                   	ret
407bb2:	8b ff                	mov    %edi,%edi
407bb4:	56                   	push   %esi
407bb5:	8b f1                	mov    %ecx,%esi
407bb7:	8b 0e                	mov    (%esi),%ecx
407bb9:	85 c9                	test   %ecx,%ecx
407bbb:	74 21                	je     0x407bde
407bbd:	83 c8 ff             	or     $0xffffffff,%eax
407bc0:	f0 0f c1 01          	lock xadd %eax,(%ecx)
407bc4:	75 11                	jne    0x407bd7
407bc6:	ff 36                	push   (%esi)
407bc8:	6a 00                	push   $0x0
407bca:	ff 15 44 31 43 00    	call   *0x433144
407bd0:	50                   	push   %eax
407bd1:	ff 15 48 31 43 00    	call   *0x433148
407bd7:	83 26 00             	andl   $0x0,(%esi)
407bda:	83 66 04 00          	andl   $0x0,0x4(%esi)
407bde:	5e                   	pop    %esi
407bdf:	c3                   	ret
407be0:	33 c0                	xor    %eax,%eax
407be2:	89 0d b0 26 43 00    	mov    %ecx,0x4326b0
407be8:	40                   	inc    %eax
407be9:	f0 0f c1 05 ac 26 43 	lock xadd %eax,0x4326ac
407bf0:	00
407bf1:	40                   	inc    %eax
407bf2:	c3                   	ret
407bf3:	33 c0                	xor    %eax,%eax
407bf5:	89 0d a8 26 43 00    	mov    %ecx,0x4326a8
407bfb:	40                   	inc    %eax
407bfc:	f0 0f c1 05 a4 26 43 	lock xadd %eax,0x4326a4
407c03:	00
407c04:	40                   	inc    %eax
407c05:	c3                   	ret
407c06:	33 c0                	xor    %eax,%eax
407c08:	89 0d a0 26 43 00    	mov    %ecx,0x4326a0
407c0e:	40                   	inc    %eax
407c0f:	f0 0f c1 05 9c 26 43 	lock xadd %eax,0x43269c
407c16:	00
407c17:	40                   	inc    %eax
407c18:	c3                   	ret
407c19:	8b ff                	mov    %edi,%edi
407c1b:	55                   	push   %ebp
407c1c:	8b ec                	mov    %esp,%ebp
407c1e:	56                   	push   %esi
407c1f:	8b 35 f8 25 43 00    	mov    0x4325f8,%esi
407c25:	85 f6                	test   %esi,%esi
407c27:	74 10                	je     0x407c39
407c29:	ff 75 08             	push   0x8(%ebp)
407c2c:	6a 00                	push   $0x0
407c2e:	51                   	push   %ecx
407c2f:	8b ce                	mov    %esi,%ecx
407c31:	ff 15 18 34 43 00    	call   *0x433418
407c37:	ff d6                	call   *%esi
407c39:	6a 07                	push   $0x7
407c3b:	59                   	pop    %ecx
407c3c:	cd 29                	int    $0x29
407c3e:	5e                   	pop    %esi
407c3f:	5d                   	pop    %ebp
407c40:	c2 04 00             	ret    $0x4
407c43:	8b ff                	mov    %edi,%edi
407c45:	55                   	push   %ebp
407c46:	8b ec                	mov    %esp,%ebp
407c48:	56                   	push   %esi
407c49:	57                   	push   %edi
407c4a:	8b f2                	mov    %edx,%esi
407c4c:	8b f9                	mov    %ecx,%edi
407c4e:	ff 15 4c 31 43 00    	call   *0x43314c
407c54:	85 c0                	test   %eax,%eax
407c56:	75 1d                	jne    0x407c75
407c58:	68 9c 02 07 80       	push   $0x8007029c
407c5d:	6a 02                	push   $0x2
407c5f:	ff 75 14             	push   0x14(%ebp)
407c62:	8b d6                	mov    %esi,%edx
407c64:	8b cf                	mov    %edi,%ecx
407c66:	50                   	push   %eax
407c67:	50                   	push   %eax
407c68:	ff 75 08             	push   0x8(%ebp)
407c6b:	e8 9a 05 00 00       	call   0x40820a
407c70:	b8 9c 02 00 00       	mov    $0x29c,%eax
407c75:	5f                   	pop    %edi
407c76:	5e                   	pop    %esi
407c77:	5d                   	pop    %ebp
407c78:	c2 10 00             	ret    $0x10
407c7b:	8b ff                	mov    %edi,%edi
407c7d:	55                   	push   %ebp
407c7e:	8b ec                	mov    %esp,%ebp
407c80:	ff 75 04             	push   0x4(%ebp)
407c83:	33 d2                	xor    %edx,%edx
407c85:	51                   	push   %ecx
407c86:	51                   	push   %ecx
407c87:	6a 00                	push   $0x0
407c89:	33 c9                	xor    %ecx,%ecx
407c8b:	e8 b3 ff ff ff       	call   0x407c43
407c90:	85 c0                	test   %eax,%eax
407c92:	7e 08                	jle    0x407c9c
407c94:	0f b7 c0             	movzwl %ax,%eax
407c97:	0d 00 00 07 80       	or     $0x80070000,%eax
407c9c:	5d                   	pop    %ebp
407c9d:	c3                   	ret
407c9e:	85 c9                	test   %ecx,%ecx
407ca0:	75 04                	jne    0x407ca6
407ca2:	33 c0                	xor    %eax,%eax
407ca4:	40                   	inc    %eax
407ca5:	c3                   	ret
407ca6:	8d 51 01             	lea    0x1(%ecx),%edx
407ca9:	8a 01                	mov    (%ecx),%al
407cab:	41                   	inc    %ecx
407cac:	84 c0                	test   %al,%al
407cae:	75 f9                	jne    0x407ca9
407cb0:	2b ca                	sub    %edx,%ecx
407cb2:	8d 41 01             	lea    0x1(%ecx),%eax
407cb5:	c3                   	ret
407cb6:	85 c9                	test   %ecx,%ecx
407cb8:	75 04                	jne    0x407cbe
407cba:	6a 02                	push   $0x2
407cbc:	58                   	pop    %eax
407cbd:	c3                   	ret
407cbe:	8d 51 02             	lea    0x2(%ecx),%edx
407cc1:	66 8b 01             	mov    (%ecx),%ax
407cc4:	83 c1 02             	add    $0x2,%ecx
407cc7:	66 85 c0             	test   %ax,%ax
407cca:	75 f5                	jne    0x407cc1
407ccc:	2b ca                	sub    %edx,%ecx
407cce:	d1 f9                	sar    $1,%ecx
407cd0:	8d 04 4d 02 00 00 00 	lea    0x2(,%ecx,2),%eax
407cd7:	c3                   	ret
407cd8:	8b ff                	mov    %edi,%edi
407cda:	55                   	push   %ebp
407cdb:	8b ec                	mov    %esp,%ebp
407cdd:	51                   	push   %ecx
407cde:	51                   	push   %ecx
407cdf:	53                   	push   %ebx
407ce0:	8b 5d 08             	mov    0x8(%ebp),%ebx
407ce3:	8b c1                	mov    %ecx,%eax
407ce5:	56                   	push   %esi
407ce6:	57                   	push   %edi
407ce7:	6a 14                	push   $0x14
407ce9:	59                   	pop    %ecx
407cea:	8b f8                	mov    %eax,%edi
407cec:	89 45 fc             	mov    %eax,-0x4(%ebp)
407cef:	8b f3                	mov    %ebx,%esi
407cf1:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
407cf3:	8b 4b 40             	mov    0x40(%ebx),%ecx
407cf6:	e8 bb ff ff ff       	call   0x407cb6
407cfb:	8b 4b 34             	mov    0x34(%ebx),%ecx
407cfe:	8b f0                	mov    %eax,%esi
407d00:	e8 b1 ff ff ff       	call   0x407cb6
407d05:	8b 4b 0c             	mov    0xc(%ebx),%ecx
407d08:	03 f0                	add    %eax,%esi
407d0a:	e8 a7 ff ff ff       	call   0x407cb6
407d0f:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
407d12:	03 f0                	add    %eax,%esi
407d14:	e8 85 ff ff ff       	call   0x407c9e
407d19:	8b 4b 30             	mov    0x30(%ebx),%ecx
407d1c:	03 f0                	add    %eax,%esi
407d1e:	e8 7b ff ff ff       	call   0x407c9e
407d23:	8b 4b 28             	mov    0x28(%ebx),%ecx
407d26:	03 f0                	add    %eax,%esi
407d28:	e8 71 ff ff ff       	call   0x407c9e
407d2d:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
407d30:	03 f0                	add    %eax,%esi
407d32:	e8 67 ff ff ff       	call   0x407c9e
407d37:	8b 4b 18             	mov    0x18(%ebx),%ecx
407d3a:	03 f0                	add    %eax,%esi
407d3c:	e8 5d ff ff ff       	call   0x407c9e
407d41:	8b 4b 14             	mov    0x14(%ebx),%ecx
407d44:	03 f0                	add    %eax,%esi
407d46:	e8 53 ff ff ff       	call   0x407c9e
407d4b:	8b 4b 44             	mov    0x44(%ebx),%ecx
407d4e:	03 f0                	add    %eax,%esi
407d50:	e8 49 ff ff ff       	call   0x407c9e
407d55:	8b 55 fc             	mov    -0x4(%ebp),%edx
407d58:	03 f0                	add    %eax,%esi
407d5a:	8d 7a 50             	lea    0x50(%edx),%edi
407d5d:	8b 07                	mov    (%edi),%eax
407d5f:	85 c0                	test   %eax,%eax
407d61:	74 0a                	je     0x407d6d
407d63:	83 38 01             	cmpl   $0x1,(%eax)
407d66:	75 05                	jne    0x407d6d
407d68:	39 72 54             	cmp    %esi,0x54(%edx)
407d6b:	73 46                	jae    0x407db3
407d6d:	8b cf                	mov    %edi,%ecx
407d6f:	e8 3e fe ff ff       	call   0x407bb2
407d74:	85 f6                	test   %esi,%esi
407d76:	75 09                	jne    0x407d81
407d78:	8b cf                	mov    %edi,%ecx
407d7a:	e8 33 fe ff ff       	call   0x407bb2
407d7f:	eb 2f                	jmp    0x407db0
407d81:	8d 46 04             	lea    0x4(%esi),%eax
407d84:	50                   	push   %eax
407d85:	6a 00                	push   $0x0
407d87:	ff 15 44 31 43 00    	call   *0x433144
407d8d:	50                   	push   %eax
407d8e:	ff 15 34 31 43 00    	call   *0x433134
407d94:	89 45 f8             	mov    %eax,-0x8(%ebp)
407d97:	85 c0                	test   %eax,%eax
407d99:	74 15                	je     0x407db0
407d9b:	83 20 00             	andl   $0x0,(%eax)
407d9e:	8b cf                	mov    %edi,%ecx
407da0:	e8 0d fe ff ff       	call   0x407bb2
407da5:	8b 45 f8             	mov    -0x8(%ebp),%eax
407da8:	89 07                	mov    %eax,(%edi)
407daa:	89 77 04             	mov    %esi,0x4(%edi)
407dad:	f0 ff 00             	lock incl (%eax)
407db0:	8b 55 fc             	mov    -0x4(%ebp),%edx
407db3:	8b 37                	mov    (%edi),%esi
407db5:	8b 4f 04             	mov    0x4(%edi),%ecx
407db8:	8d 46 04             	lea    0x4(%esi),%eax
407dbb:	f7 de                	neg    %esi
407dbd:	1b f6                	sbb    %esi,%esi
407dbf:	23 f0                	and    %eax,%esi
407dc1:	8b fe                	mov    %esi,%edi
407dc3:	f7 df                	neg    %edi
407dc5:	1b ff                	sbb    %edi,%edi
407dc7:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
407dca:	23 f8                	and    %eax,%edi
407dcc:	85 f6                	test   %esi,%esi
407dce:	0f 84 b1 00 00 00    	je     0x407e85
407dd4:	8d 42 0c             	lea    0xc(%edx),%eax
407dd7:	8b ce                	mov    %esi,%ecx
407dd9:	50                   	push   %eax
407dda:	ff 73 0c             	push   0xc(%ebx)
407ddd:	8b d7                	mov    %edi,%edx
407ddf:	e8 f1 79 00 00       	call   0x40f7d5
407de4:	8b 75 fc             	mov    -0x4(%ebp),%esi
407de7:	8b d7                	mov    %edi,%edx
407de9:	8d 4e 14             	lea    0x14(%esi),%ecx
407dec:	51                   	push   %ecx
407ded:	ff 73 14             	push   0x14(%ebx)
407df0:	8b c8                	mov    %eax,%ecx
407df2:	e8 48 7a 00 00       	call   0x40f83f
407df7:	8d 4e 18             	lea    0x18(%esi),%ecx
407dfa:	8b d7                	mov    %edi,%edx
407dfc:	51                   	push   %ecx
407dfd:	ff 73 18             	push   0x18(%ebx)
407e00:	8b c8                	mov    %eax,%ecx
407e02:	e8 38 7a 00 00       	call   0x40f83f
407e07:	8d 4e 1c             	lea    0x1c(%esi),%ecx
407e0a:	8b d7                	mov    %edi,%edx
407e0c:	51                   	push   %ecx
407e0d:	ff 73 1c             	push   0x1c(%ebx)
407e10:	8b c8                	mov    %eax,%ecx
407e12:	e8 28 7a 00 00       	call   0x40f83f
407e17:	8d 4e 28             	lea    0x28(%esi),%ecx
407e1a:	8b d7                	mov    %edi,%edx
407e1c:	51                   	push   %ecx
407e1d:	ff 73 28             	push   0x28(%ebx)
407e20:	8b c8                	mov    %eax,%ecx
407e22:	e8 18 7a 00 00       	call   0x40f83f
407e27:	8d 4e 44             	lea    0x44(%esi),%ecx
407e2a:	8b d7                	mov    %edi,%edx
407e2c:	51                   	push   %ecx
407e2d:	ff 73 44             	push   0x44(%ebx)
407e30:	8b c8                	mov    %eax,%ecx
407e32:	e8 08 7a 00 00       	call   0x40f83f
407e37:	8d 4e 3c             	lea    0x3c(%esi),%ecx
407e3a:	8b d7                	mov    %edi,%edx
407e3c:	51                   	push   %ecx
407e3d:	ff 73 3c             	push   0x3c(%ebx)
407e40:	8b c8                	mov    %eax,%ecx
407e42:	e8 f8 79 00 00       	call   0x40f83f
407e47:	8d 4e 40             	lea    0x40(%esi),%ecx
407e4a:	8b d7                	mov    %edi,%edx
407e4c:	51                   	push   %ecx
407e4d:	ff 73 40             	push   0x40(%ebx)
407e50:	8b c8                	mov    %eax,%ecx
407e52:	e8 7e 79 00 00       	call   0x40f7d5
407e57:	8d 4e 30             	lea    0x30(%esi),%ecx
407e5a:	8b d7                	mov    %edi,%edx
407e5c:	51                   	push   %ecx
407e5d:	ff 73 30             	push   0x30(%ebx)
407e60:	8b c8                	mov    %eax,%ecx
407e62:	e8 d8 79 00 00       	call   0x40f83f
407e67:	8d 4e 34             	lea    0x34(%esi),%ecx
407e6a:	8b d7                	mov    %edi,%edx
407e6c:	51                   	push   %ecx
407e6d:	ff 73 34             	push   0x34(%ebx)
407e70:	8b c8                	mov    %eax,%ecx
407e72:	e8 5e 79 00 00       	call   0x40f7d5
407e77:	2b f8                	sub    %eax,%edi
407e79:	57                   	push   %edi
407e7a:	6a 00                	push   $0x0
407e7c:	50                   	push   %eax
407e7d:	e8 85 8c 00 00       	call   0x410b07
407e82:	83 c4 0c             	add    $0xc,%esp
407e85:	5f                   	pop    %edi
407e86:	5e                   	pop    %esi
407e87:	5b                   	pop    %ebx
407e88:	c9                   	leave
407e89:	c2 04 00             	ret    $0x4
407e8c:	8b ff                	mov    %edi,%edi
407e8e:	56                   	push   %esi
407e8f:	8b 35 f4 25 43 00    	mov    0x4325f4,%esi
407e95:	85 f6                	test   %esi,%esi
407e97:	74 0b                	je     0x407ea4
407e99:	51                   	push   %ecx
407e9a:	8b ce                	mov    %esi,%ecx
407e9c:	ff 15 18 34 43 00    	call   *0x433418
407ea2:	ff d6                	call   *%esi
407ea4:	5e                   	pop    %esi
407ea5:	c3                   	ret
407ea6:	8b ff                	mov    %edi,%edi
407ea8:	55                   	push   %ebp
407ea9:	8b ec                	mov    %esp,%ebp
407eab:	83 ec 0c             	sub    $0xc,%esp
407eae:	53                   	push   %ebx
407eaf:	8b 5d 28             	mov    0x28(%ebp),%ebx
407eb2:	33 c0                	xor    %eax,%eax
407eb4:	56                   	push   %esi
407eb5:	57                   	push   %edi
407eb6:	8b 7d 1c             	mov    0x1c(%ebp),%edi
407eb9:	66 89 03             	mov    %ax,(%ebx)
407ebc:	8b 45 30             	mov    0x30(%ebp),%eax
407ebf:	89 55 f8             	mov    %edx,-0x8(%ebp)
407ec2:	89 4d f4             	mov    %ecx,-0xc(%ebp)
407ec5:	c6 00 00             	movb   $0x0,(%eax)
407ec8:	33 c0                	xor    %eax,%eax