418b5b:	80 7c 01 29 00       	cmpb   $0x0,0x29(%ecx,%eax,1)
418b60:	75 43                	jne    0x418ba5
418b62:	39 75 14             	cmp    %esi,0x14(%ebp)
418b65:	75 44                	jne    0x418bab
418b67:	6a 01                	push   $0x1
418b69:	56                   	push   %esi
418b6a:	56                   	push   %esi
418b6b:	52                   	push   %edx
418b6c:	e8 89 8e 00 00       	call   0x4219fa
418b71:	8b fa                	mov    %edx,%edi
418b73:	83 c4 10             	add    $0x10,%esp
418b76:	8b c8                	mov    %eax,%ecx
418b78:	3b fe                	cmp    %esi,%edi
418b7a:	7c 29                	jl     0x418ba5
418b7c:	7f 04                	jg     0x418b82
418b7e:	3b ce                	cmp    %esi,%ecx
418b80:	72 23                	jb     0x418ba5
418b82:	8b 75 08             	mov    0x8(%ebp),%esi
418b85:	8d 45 0c             	lea    0xc(%ebp),%eax
418b88:	50                   	push   %eax
418b89:	8b 46 08             	mov    0x8(%esi),%eax
418b8c:	99                   	cltd
418b8d:	2b c8                	sub    %eax,%ecx
418b8f:	1b fa                	sbb    %edx,%edi
418b91:	57                   	push   %edi
418b92:	51                   	push   %ecx
418b93:	ff 75 10             	push   0x10(%ebp)
418b96:	ff 75 0c             	push   0xc(%ebp)
418b99:	e8 46 fe ff ff       	call   0x4189e4
418b9e:	83 c4 14             	add    $0x14,%esp
418ba1:	85 c0                	test   %eax,%eax
418ba3:	79 09                	jns    0x418bae
418ba5:	32 c0                	xor    %al,%al
418ba7:	5f                   	pop    %edi
418ba8:	5e                   	pop    %esi
418ba9:	5d                   	pop    %ebp
418baa:	c3                   	ret
418bab:	8b 75 08             	mov    0x8(%ebp),%esi
418bae:	8b 46 04             	mov    0x4(%esi),%eax
418bb1:	8b 0e                	mov    (%esi),%ecx
418bb3:	2b c1                	sub    %ecx,%eax
418bb5:	99                   	cltd
418bb6:	3b 55 10             	cmp    0x10(%ebp),%edx
418bb9:	7f ea                	jg     0x418ba5
418bbb:	8b 7d 0c             	mov    0xc(%ebp),%edi
418bbe:	7c 04                	jl     0x418bc4
418bc0:	3b c7                	cmp    %edi,%eax
418bc2:	77 e1                	ja     0x418ba5
418bc4:	8b 46 08             	mov    0x8(%esi),%eax
418bc7:	99                   	cltd
418bc8:	39 55 10             	cmp    %edx,0x10(%ebp)
418bcb:	7f d8                	jg     0x418ba5
418bcd:	7c 04                	jl     0x418bd3
418bcf:	3b f8                	cmp    %eax,%edi
418bd1:	77 d2                	ja     0x418ba5
418bd3:	03 cf                	add    %edi,%ecx
418bd5:	b0 01                	mov    $0x1,%al
418bd7:	89 0e                	mov    %ecx,(%esi)
418bd9:	8b 4d 08             	mov    0x8(%ebp),%ecx
418bdc:	29 79 08             	sub    %edi,0x8(%ecx)
418bdf:	eb c6                	jmp    0x418ba7
418be1:	8b ff                	mov    %edi,%edi
418be3:	55                   	push   %ebp
418be4:	8b ec                	mov    %esp,%ebp
418be6:	8b 45 08             	mov    0x8(%ebp),%eax
418be9:	8b 40 0c             	mov    0xc(%eax),%eax
418bec:	90                   	nop
418bed:	c1 e8 0d             	shr    $0xd,%eax
418bf0:	a8 01                	test   $0x1,%al
418bf2:	75 13                	jne    0x418c07
418bf4:	8b 45 18             	mov    0x18(%ebp),%eax
418bf7:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
418bfb:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
418c02:	83 c8 ff             	or     $0xffffffff,%eax
418c05:	5d                   	pop    %ebp
418c06:	c3                   	ret
418c07:	8b 45 08             	mov    0x8(%ebp),%eax
418c0a:	53                   	push   %ebx
418c0b:	56                   	push   %esi
418c0c:	57                   	push   %edi
418c0d:	6a f7                	push   $0xfffffff7
418c0f:	59                   	pop    %ecx
418c10:	83 c0 0c             	add    $0xc,%eax
418c13:	f0 21 08             	lock and %ecx,(%eax)
418c16:	8b 75 14             	mov    0x14(%ebp),%esi
418c19:	8b 7d 10             	mov    0x10(%ebp),%edi
418c1c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
418c1f:	56                   	push   %esi
418c20:	57                   	push   %edi
418c21:	53                   	push   %ebx
418c22:	ff 75 08             	push   0x8(%ebp)
418c25:	e8 de fe ff ff       	call   0x418b08
418c2a:	83 c4 10             	add    $0x10,%esp
418c2d:	84 c0                	test   %al,%al
418c2f:	0f 85 91 00 00 00    	jne    0x418cc6
418c35:	83 fe 01             	cmp    $0x1,%esi
418c38:	75 13                	jne    0x418c4d
418c3a:	ff 75 18             	push   0x18(%ebp)
418c3d:	ff 75 08             	push   0x8(%ebp)
418c40:	e8 29 07 00 00       	call   0x41936e
418c45:	03 d8                	add    %eax,%ebx
418c47:	59                   	pop    %ecx
418c48:	13 fa                	adc    %edx,%edi
418c4a:	33 f6                	xor    %esi,%esi
418c4c:	59                   	pop    %ecx
418c4d:	ff 75 18             	push   0x18(%ebp)
418c50:	ff 75 08             	push   0x8(%ebp)
418c53:	e8 4c 72 00 00       	call   0x41fea4
418c58:	8b 45 08             	mov    0x8(%ebp),%eax
418c5b:	59                   	pop    %ecx
418c5c:	59                   	pop    %ecx
418c5d:	8b 48 04             	mov    0x4(%eax),%ecx
418c60:	83 60 08 00          	andl   $0x0,0x8(%eax)
418c64:	89 08                	mov    %ecx,(%eax)
418c66:	8b 45 08             	mov    0x8(%ebp),%eax
418c69:	8b 40 0c             	mov    0xc(%eax),%eax
418c6c:	90                   	nop
418c6d:	c1 e8 02             	shr    $0x2,%eax
418c70:	a8 01                	test   $0x1,%al
418c72:	8b 45 08             	mov    0x8(%ebp),%eax
418c75:	74 0b                	je     0x418c82
418c77:	6a fc                	push   $0xfffffffc
418c79:	59                   	pop    %ecx
418c7a:	83 c0 0c             	add    $0xc,%eax
418c7d:	f0 21 08             	lock and %ecx,(%eax)
418c80:	eb 23                	jmp    0x418ca5
418c82:	8b 40 0c             	mov    0xc(%eax),%eax
418c85:	90                   	nop
418c86:	83 e0 41             	and    $0x41,%eax
418c89:	3c 41                	cmp    $0x41,%al
418c8b:	75 18                	jne    0x418ca5
418c8d:	8b 45 08             	mov    0x8(%ebp),%eax
418c90:	8b 40 0c             	mov    0xc(%eax),%eax
418c93:	90                   	nop
418c94:	c1 e8 08             	shr    $0x8,%eax
418c97:	a8 01                	test   $0x1,%al
418c99:	75 0a                	jne    0x418ca5
418c9b:	8b 45 08             	mov    0x8(%ebp),%eax
418c9e:	c7 40 18 00 02 00 00 	movl   $0x200,0x18(%eax)
418ca5:	8b 45 08             	mov    0x8(%ebp),%eax
418ca8:	8b 40 10             	mov    0x10(%eax),%eax
418cab:	90                   	nop
418cac:	ff 75 18             	push   0x18(%ebp)
418caf:	56                   	push   %esi
418cb0:	57                   	push   %edi
418cb1:	53                   	push   %ebx
418cb2:	50                   	push   %eax
418cb3:	e8 82 8d 00 00       	call   0x421a3a
418cb8:	23 c2                	and    %edx,%eax
418cba:	83 c4 14             	add    $0x14,%esp
418cbd:	83 f8 ff             	cmp    $0xffffffff,%eax
418cc0:	75 04                	jne    0x418cc6
418cc2:	0b c0                	or     %eax,%eax
418cc4:	eb 02                	jmp    0x418cc8
418cc6:	33 c0                	xor    %eax,%eax
418cc8:	5f                   	pop    %edi
418cc9:	5e                   	pop    %esi
418cca:	5b                   	pop    %ebx
418ccb:	5d                   	pop    %ebp
418ccc:	c3                   	ret
418ccd:	8b ff                	mov    %edi,%edi
418ccf:	55                   	push   %ebp
418cd0:	8b ec                	mov    %esp,%ebp
418cd2:	83 ec 28             	sub    $0x28,%esp
418cd5:	8d 4d d8             	lea    -0x28(%ebp),%ecx
418cd8:	56                   	push   %esi
418cd9:	6a 00                	push   $0x0
418cdb:	e8 02 44 ff ff       	call   0x40d0e2
418ce0:	8d 45 d8             	lea    -0x28(%ebp),%eax
418ce3:	50                   	push   %eax
418ce4:	ff 75 14             	push   0x14(%ebp)
418ce7:	ff 75 10             	push   0x10(%ebp)
418cea:	ff 75 0c             	push   0xc(%ebp)
418ced:	ff 75 08             	push   0x8(%ebp)
418cf0:	e8 69 fd ff ff       	call   0x418a5e
418cf5:	83 c4 14             	add    $0x14,%esp
418cf8:	8d 4d d8             	lea    -0x28(%ebp),%ecx
418cfb:	8b f0                	mov    %eax,%esi
418cfd:	e8 28 44 ff ff       	call   0x40d12a
418d02:	8b c6                	mov    %esi,%eax
418d04:	5e                   	pop    %esi
418d05:	c9                   	leave
418d06:	c3                   	ret
418d07:	8b ff                	mov    %edi,%edi
418d09:	55                   	push   %ebp
418d0a:	8b ec                	mov    %esp,%ebp
418d0c:	83 ec 28             	sub    $0x28,%esp
418d0f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
418d12:	56                   	push   %esi
418d13:	6a 00                	push   $0x0
418d15:	e8 c8 43 ff ff       	call   0x40d0e2
418d1a:	8d 45 d8             	lea    -0x28(%ebp),%eax
418d1d:	50                   	push   %eax
418d1e:	ff 75 10             	push   0x10(%ebp)
418d21:	8b 45 0c             	mov    0xc(%ebp),%eax
418d24:	99                   	cltd
418d25:	52                   	push   %edx
418d26:	50                   	push   %eax
418d27:	ff 75 08             	push   0x8(%ebp)
418d2a:	e8 2f fd ff ff       	call   0x418a5e
418d2f:	83 c4 14             	add    $0x14,%esp
418d32:	8d 4d d8             	lea    -0x28(%ebp),%ecx
418d35:	8b f0                	mov    %eax,%esi
418d37:	e8 ee 43 ff ff       	call   0x40d12a
418d3c:	8b c6                	mov    %esi,%eax
418d3e:	5e                   	pop    %esi
418d3f:	c9                   	leave
418d40:	c3                   	ret
418d41:	6a 10                	push   $0x10
418d43:	68 f8 ab 43 00       	push   $0x43abf8
418d48:	e8 83 17 ff ff       	call   0x40a4d0
418d4d:	33 f6                	xor    %esi,%esi
418d4f:	39 75 08             	cmp    %esi,0x8(%ebp)
418d52:	75 23                	jne    0x418d77
418d54:	8b 45 0c             	mov    0xc(%ebp),%eax
418d57:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
418d5b:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
418d62:	50                   	push   %eax
418d63:	56                   	push   %esi
418d64:	56                   	push   %esi
418d65:	56                   	push   %esi
418d66:	56                   	push   %esi
418d67:	56                   	push   %esi
418d68:	e8 04 46 ff ff       	call   0x40d371
418d6d:	83 c4 18             	add    $0x18,%esp
418d70:	83 ca ff             	or     $0xffffffff,%edx
418d73:	8b c2                	mov    %edx,%eax
418d75:	eb 39                	jmp    0x418db0
418d77:	89 75 e0             	mov    %esi,-0x20(%ebp)
418d7a:	89 75 e4             	mov    %esi,-0x1c(%ebp)
418d7d:	ff 75 08             	push   0x8(%ebp)
418d80:	e8 4c 4c 00 00       	call   0x41d9d1
418d85:	59                   	pop    %ecx
418d86:	89 75 fc             	mov    %esi,-0x4(%ebp)
418d89:	ff 75 0c             	push   0xc(%ebp)
418d8c:	ff 75 08             	push   0x8(%ebp)
418d8f:	e8 3c 00 00 00       	call   0x418dd0
418d94:	59                   	pop    %ecx
418d95:	59                   	pop    %ecx
418d96:	8b f0                	mov    %eax,%esi
418d98:	89 75 e0             	mov    %esi,-0x20(%ebp)
418d9b:	8b fa                	mov    %edx,%edi
418d9d:	89 7d e4             	mov    %edi,-0x1c(%ebp)
418da0:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
418da7:	e8 1a 00 00 00       	call   0x418dc6
418dac:	8b c6                	mov    %esi,%eax
418dae:	8b d7                	mov    %edi,%edx
418db0:	8b 4d f0             	mov    -0x10(%ebp),%ecx
418db3:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
418dba:	59                   	pop    %ecx
418dbb:	5f                   	pop    %edi
418dbc:	5e                   	pop    %esi
418dbd:	5b                   	pop    %ebx
418dbe:	c9                   	leave
418dbf:	c3                   	ret
418dc0:	8b 7d e4             	mov    -0x1c(%ebp),%edi
418dc3:	8b 75 e0             	mov    -0x20(%ebp),%esi
418dc6:	ff 75 08             	push   0x8(%ebp)
418dc9:	e8 17 4c 00 00       	call   0x41d9e5
418dce:	59                   	pop    %ecx
418dcf:	c3                   	ret
418dd0:	8b ff                	mov    %edi,%edi
418dd2:	55                   	push   %ebp
418dd3:	8b ec                	mov    %esp,%ebp
418dd5:	83 ec 18             	sub    $0x18,%esp
418dd8:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
418ddc:	57                   	push   %edi
418ddd:	75 28                	jne    0x418e07
418ddf:	8b 45 0c             	mov    0xc(%ebp),%eax
418de2:	33 ff                	xor    %edi,%edi
418de4:	50                   	push   %eax
418de5:	57                   	push   %edi
418de6:	57                   	push   %edi
418de7:	57                   	push   %edi
418de8:	57                   	push   %edi
418de9:	57                   	push   %edi
418dea:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
418dee:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
418df5:	e8 77 45 ff ff       	call   0x40d371
418dfa:	83 c8 ff             	or     $0xffffffff,%eax
418dfd:	83 c4 18             	add    $0x18,%esp
418e00:	0b d0                	or     %eax,%edx
418e02:	e9 67 01 00 00       	jmp    0x418f6e
418e07:	53                   	push   %ebx
418e08:	ff 75 08             	push   0x8(%ebp)
418e0b:	e8 30 4a 00 00       	call   0x41d840
418e10:	59                   	pop    %ecx
418e11:	8b 4d 08             	mov    0x8(%ebp),%ecx
418e14:	33 ff                	xor    %edi,%edi
418e16:	8b d8                	mov    %eax,%ebx
418e18:	39 79 08             	cmp    %edi,0x8(%ecx)
418e1b:	7d 03                	jge    0x418e20
418e1d:	89 79 08             	mov    %edi,0x8(%ecx)
418e20:	56                   	push   %esi
418e21:	ff 75 0c             	push   0xc(%ebp)
418e24:	6a 01                	push   $0x1
418e26:	57                   	push   %edi
418e27:	57                   	push   %edi
418e28:	53                   	push   %ebx
418e29:	e8 ae 8b 00 00       	call   0x4219dc
418e2e:	8b ca                	mov    %edx,%ecx
418e30:	83 c4 14             	add    $0x14,%esp
418e33:	89 4d fc             	mov    %ecx,-0x4(%ebp)
418e36:	8b f0                	mov    %eax,%esi
418e38:	89 75 e8             	mov    %esi,-0x18(%ebp)
418e3b:	3b cf                	cmp    %edi,%ecx
418e3d:	7f 0e                	jg     0x418e4d
418e3f:	0f 8c d2 00 00 00    	jl     0x418f17
418e45:	3b f7                	cmp    %edi,%esi
418e47:	0f 82 ca 00 00 00    	jb     0x418f17
418e4d:	8b 45 08             	mov    0x8(%ebp),%eax
418e50:	8b 40 0c             	mov    0xc(%eax),%eax
418e53:	90                   	nop
418e54:	a8 c0                	test   $0xc0,%al
418e56:	75 12                	jne    0x418e6a
418e58:	8b 45 08             	mov    0x8(%ebp),%eax
418e5b:	8b 40 08             	mov    0x8(%eax),%eax
418e5e:	99                   	cltd
418e5f:	2b f0                	sub    %eax,%esi
418e61:	8b c6                	mov    %esi,%eax
418e63:	1b ca                	sbb    %edx,%ecx
418e65:	e9 00 01 00 00       	jmp    0x418f6a
418e6a:	8b c3                	mov    %ebx,%eax
418e6c:	83 e3 3f             	and    $0x3f,%ebx
418e6f:	c1 f8 06             	sar    $0x6,%eax
418e72:	6b cb 38             	imul   $0x38,%ebx,%ecx
418e75:	89 45 f4             	mov    %eax,-0xc(%ebp)
418e78:	8b 04 85 00 f8 43 00 	mov    0x43f800(,%eax,4),%eax
418e7f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
418e82:	8a 44 01 29          	mov    0x29(%ecx,%eax,1),%al
418e86:	8b 4d 08             	mov    0x8(%ebp),%ecx
418e89:	88 45 f8             	mov    %al,-0x8(%ebp)
418e8c:	8b 01                	mov    (%ecx),%eax
418e8e:	2b 41 04             	sub    0x4(%ecx),%eax
418e91:	8b 49 0c             	mov    0xc(%ecx),%ecx
418e94:	99                   	cltd
418e95:	8b d8                	mov    %eax,%ebx
418e97:	89 55 ec             	mov    %edx,-0x14(%ebp)
418e9a:	90                   	nop
418e9b:	f6 c1 03             	test   $0x3,%cl
418e9e:	74 5b                	je     0x418efb
418ea0:	80 7d f8 01          	cmpb   $0x1,-0x8(%ebp)
418ea4:	8b 4d f4             	mov    -0xc(%ebp),%ecx
418ea7:	8b 55 f0             	mov    -0x10(%ebp),%edx
418eaa:	75 25                	jne    0x418ed1
418eac:	8b 04 8d 00 f8 43 00 	mov    0x43f800(,%ecx,4),%eax
418eb3:	f6 44 02 2d 02       	testb  $0x2,0x2d(%edx,%eax,1)
418eb8:	74 17                	je     0x418ed1
418eba:	ff 75 0c             	push   0xc(%ebp)
418ebd:	ff 75 fc             	push   -0x4(%ebp)