4189be:	5e                   	pop    %esi
4189bf:	8b e5                	mov    %ebp,%esp
4189c1:	5d                   	pop    %ebp
4189c2:	c3                   	ret
4189c3:	83 78 04 01          	cmpl   $0x1,0x4(%eax)
4189c7:	7e 13                	jle    0x4189dc
4189c9:	6a 00                	push   $0x0
4189cb:	6a 01                	push   $0x1
4189cd:	56                   	push   %esi
4189ce:	e8 76 55 00 00       	call   0x41df49
4189d3:	83 c4 0c             	add    $0xc,%esp
4189d6:	5f                   	pop    %edi
4189d7:	5e                   	pop    %esi
4189d8:	8b e5                	mov    %ebp,%esp
4189da:	5d                   	pop    %ebp
4189db:	c3                   	ret
4189dc:	5f                   	pop    %edi
4189dd:	33 c0                	xor    %eax,%eax
4189df:	5e                   	pop    %esi
4189e0:	8b e5                	mov    %ebp,%esp
4189e2:	5d                   	pop    %ebp
4189e3:	c3                   	ret
4189e4:	8b ff                	mov    %edi,%edi
4189e6:	55                   	push   %ebp
4189e7:	8b ec                	mov    %esp,%ebp
4189e9:	8b 55 08             	mov    0x8(%ebp),%edx
4189ec:	2b 55 10             	sub    0x10(%ebp),%edx
4189ef:	53                   	push   %ebx
4189f0:	56                   	push   %esi
4189f1:	57                   	push   %edi
4189f2:	8b 7d 0c             	mov    0xc(%ebp),%edi
4189f5:	1b 7d 14             	sbb    0x14(%ebp),%edi
4189f8:	33 c9                	xor    %ecx,%ecx
4189fa:	33 c0                	xor    %eax,%eax
4189fc:	41                   	inc    %ecx
4189fd:	39 45 0c             	cmp    %eax,0xc(%ebp)
418a00:	7f 0b                	jg     0x418a0d
418a02:	7c 05                	jl     0x418a09
418a04:	39 45 08             	cmp    %eax,0x8(%ebp)
418a07:	73 04                	jae    0x418a0d
418a09:	8b d9                	mov    %ecx,%ebx
418a0b:	eb 02                	jmp    0x418a0f
418a0d:	8b d8                	mov    %eax,%ebx
418a0f:	39 45 14             	cmp    %eax,0x14(%ebp)
418a12:	7f 0b                	jg     0x418a1f
418a14:	7c 05                	jl     0x418a1b
418a16:	39 45 10             	cmp    %eax,0x10(%ebp)
418a19:	73 04                	jae    0x418a1f
418a1b:	8b f1                	mov    %ecx,%esi
418a1d:	eb 02                	jmp    0x418a21
418a1f:	8b f0                	mov    %eax,%esi
418a21:	3b de                	cmp    %esi,%ebx
418a23:	74 2c                	je     0x418a51
418a25:	39 45 0c             	cmp    %eax,0xc(%ebp)
418a28:	7f 0b                	jg     0x418a35
418a2a:	7c 05                	jl     0x418a31
418a2c:	39 45 08             	cmp    %eax,0x8(%ebp)
418a2f:	73 04                	jae    0x418a35
418a31:	8b f1                	mov    %ecx,%esi
418a33:	eb 02                	jmp    0x418a37
418a35:	8b f0                	mov    %eax,%esi
418a37:	3b f8                	cmp    %eax,%edi
418a39:	7f 06                	jg     0x418a41
418a3b:	7c 06                	jl     0x418a43
418a3d:	3b d0                	cmp    %eax,%edx
418a3f:	72 02                	jb     0x418a43
418a41:	8b c8                	mov    %eax,%ecx
418a43:	3b f1                	cmp    %ecx,%esi
418a45:	74 0a                	je     0x418a51
418a47:	83 ca ff             	or     $0xffffffff,%edx
418a4a:	b8 16 02 07 80       	mov    $0x80070216,%eax
418a4f:	8b fa                	mov    %edx,%edi
418a51:	8b 4d 18             	mov    0x18(%ebp),%ecx
418a54:	89 11                	mov    %edx,(%ecx)
418a56:	89 79 04             	mov    %edi,0x4(%ecx)
418a59:	5f                   	pop    %edi
418a5a:	5e                   	pop    %esi
418a5b:	5b                   	pop    %ebx
418a5c:	5d                   	pop    %ebp
418a5d:	c3                   	ret
418a5e:	6a 0c                	push   $0xc
418a60:	68 d8 ab 43 00       	push   $0x43abd8
418a65:	e8 66 1a ff ff       	call   0x40a4d0
418a6a:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
418a6e:	75 23                	jne    0x418a93
418a70:	33 f6                	xor    %esi,%esi
418a72:	8b 45 18             	mov    0x18(%ebp),%eax
418a75:	50                   	push   %eax
418a76:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
418a7d:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
418a81:	56                   	push   %esi
418a82:	56                   	push   %esi
418a83:	56                   	push   %esi
418a84:	56                   	push   %esi
418a85:	56                   	push   %esi
418a86:	e8 e6 48 ff ff       	call   0x40d371
418a8b:	83 c4 18             	add    $0x18,%esp
418a8e:	83 c8 ff             	or     $0xffffffff,%eax
418a91:	eb 58                	jmp    0x418aeb
418a93:	8b 7d 14             	mov    0x14(%ebp),%edi
418a96:	85 ff                	test   %edi,%edi
418a98:	74 10                	je     0x418aaa
418a9a:	83 ff 01             	cmp    $0x1,%edi
418a9d:	74 0b                	je     0x418aaa
418a9f:	83 ff 02             	cmp    $0x2,%edi
418aa2:	74 06                	je     0x418aaa
418aa4:	33 f6                	xor    %esi,%esi
418aa6:	8b c6                	mov    %esi,%eax
418aa8:	eb 05                	jmp    0x418aaf
418aaa:	33 c0                	xor    %eax,%eax
418aac:	40                   	inc    %eax
418aad:	33 f6                	xor    %esi,%esi
418aaf:	85 c0                	test   %eax,%eax
418ab1:	74 bf                	je     0x418a72
418ab3:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
418ab7:	ff 75 08             	push   0x8(%ebp)
418aba:	e8 12 4f 00 00       	call   0x41d9d1
418abf:	59                   	pop    %ecx
418ac0:	89 75 fc             	mov    %esi,-0x4(%ebp)
418ac3:	ff 75 18             	push   0x18(%ebp)
418ac6:	57                   	push   %edi
418ac7:	ff 75 10             	push   0x10(%ebp)
418aca:	ff 75 0c             	push   0xc(%ebp)
418acd:	ff 75 08             	push   0x8(%ebp)
418ad0:	e8 0c 01 00 00       	call   0x418be1
418ad5:	83 c4 14             	add    $0x14,%esp
418ad8:	8b f0                	mov    %eax,%esi
418ada:	89 75 e4             	mov    %esi,-0x1c(%ebp)
418add:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
418ae4:	e8 15 00 00 00       	call   0x418afe
418ae9:	8b c6                	mov    %esi,%eax
418aeb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
418aee:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
418af5:	59                   	pop    %ecx
418af6:	5f                   	pop    %edi
418af7:	5e                   	pop    %esi
418af8:	5b                   	pop    %ebx
418af9:	c9                   	leave
418afa:	c3                   	ret
418afb:	8b 75 e4             	mov    -0x1c(%ebp),%esi
418afe:	ff 75 08             	push   0x8(%ebp)
418b01:	e8 df 4e 00 00       	call   0x41d9e5
418b06:	59                   	pop    %ecx
418b07:	c3                   	ret
418b08:	8b ff                	mov    %edi,%edi
418b0a:	55                   	push   %ebp
418b0b:	8b ec                	mov    %esp,%ebp
418b0d:	83 7d 14 02          	cmpl   $0x2,0x14(%ebp)
418b11:	56                   	push   %esi
418b12:	57                   	push   %edi
418b13:	0f 84 8c 00 00 00    	je     0x418ba5
418b19:	8b 45 08             	mov    0x8(%ebp),%eax
418b1c:	8b 40 0c             	mov    0xc(%eax),%eax
418b1f:	90                   	nop
418b20:	a9 c0 04 00 00       	test   $0x4c0,%eax
418b25:	74 7e                	je     0x418ba5
418b27:	8b 45 08             	mov    0x8(%ebp),%eax
418b2a:	8b 40 0c             	mov    0xc(%eax),%eax
418b2d:	90                   	nop
418b2e:	a8 06                	test   $0x6,%al
418b30:	75 73                	jne    0x418ba5
418b32:	8b 45 08             	mov    0x8(%ebp),%eax
418b35:	33 f6                	xor    %esi,%esi
418b37:	39 70 08             	cmp    %esi,0x8(%eax)
418b3a:	7e 69                	jle    0x418ba5
418b3c:	8b 50 10             	mov    0x10(%eax),%edx
418b3f:	90                   	nop
418b40:	8b c2                	mov    %edx,%eax
418b42:	8b ca                	mov    %edx,%ecx
418b44:	83 e0 3f             	and    $0x3f,%eax
418b47:	c1 f9 06             	sar    $0x6,%ecx
418b4a:	6b c0 38             	imul   $0x38,%eax,%eax
418b4d:	8b 0c 8d 00 f8 43 00 	mov    0x43f800(,%ecx,4),%ecx
418b54:	80 7c 01 28 00       	cmpb   $0x0,0x28(%ecx,%eax,1)
418b59:	7c 4a                	jl     0x418ba5
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