425908:	8b da                	mov    %edx,%ebx
42590a:	89 45 fc             	mov    %eax,-0x4(%ebp)
42590d:	8b 45 fc             	mov    -0x4(%ebp),%eax
425910:	d1 68 08             	shrl   $1,0x8(%eax)
425913:	8b 55 fc             	mov    -0x4(%ebp),%edx
425916:	0f b7 52 0e          	movzwl 0xe(%edx),%edx
42591a:	8b 45 fc             	mov    -0x4(%ebp),%eax
42591d:	8b 40 04             	mov    0x4(%eax),%eax
425920:	b9 20 00 00 00       	mov    $0x20,%ecx
425925:	e8 7a f9 ff ff       	call   0x4252a4
42592a:	8b 55 fc             	mov    -0x4(%ebp),%edx
42592d:	f7 6a 08             	imull  0x8(%edx)
425930:	8b 55 fc             	mov    -0x4(%ebp),%edx
425933:	89 42 14             	mov    %eax,0x14(%edx)
425936:	8b 45 fc             	mov    -0x4(%ebp),%eax
425939:	66 8b 40 0e          	mov    0xe(%eax),%ax
42593d:	e8 42 f9 ff ff       	call   0x425284
425942:	8b f0                	mov    %eax,%esi
425944:	6a 00                	push   $0x0
425946:	e8 01 0f fe ff       	call   0x40684c
42594b:	89 45 f0             	mov    %eax,-0x10(%ebp)
42594e:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
425952:	75 05                	jne    0x425959
425954:	e8 bf f6 ff ff       	call   0x425018
425959:	33 d2                	xor    %edx,%edx
42595b:	55                   	push   %ebp
42595c:	68 a8 5a 42 00       	push   $0x425aa8
425961:	64 ff 32             	push   %fs:(%edx)
425964:	64 89 22             	mov    %esp,%fs:(%edx)
425967:	8b 7d fc             	mov    -0x4(%ebp),%edi
42596a:	8b c7                	mov    %edi,%eax
42596c:	83 c0 28             	add    $0x28,%eax
42596f:	8b d6                	mov    %esi,%edx
425971:	c1 e2 02             	shl    $0x2,%edx
425974:	03 c2                	add    %edx,%eax
425976:	89 45 ec             	mov    %eax,-0x14(%ebp)
425979:	6a 00                	push   $0x0
42597b:	8b 45 fc             	mov    -0x4(%ebp),%eax
42597e:	57                   	push   %edi
42597f:	8b 45 ec             	mov    -0x14(%ebp),%eax
425982:	50                   	push   %eax
425983:	6a 04                	push   $0x4
425985:	8b 45 fc             	mov    -0x4(%ebp),%eax
425988:	50                   	push   %eax
425989:	8b 45 f0             	mov    -0x10(%ebp),%eax
42598c:	50                   	push   %eax
42598d:	e8 6a 0b fe ff       	call   0x4064fc
425992:	e8 7d f7 ff ff       	call   0x425114
425997:	89 45 f4             	mov    %eax,-0xc(%ebp)
42599a:	33 c0                	xor    %eax,%eax
42599c:	55                   	push   %ebp
42599d:	68 ce 59 42 00       	push   $0x4259ce
4259a2:	64 ff 30             	push   %fs:(%eax)
4259a5:	64 89 20             	mov    %esp,%fs:(%eax)
4259a8:	8b 55 08             	mov    0x8(%ebp),%edx
4259ab:	33 c9                	xor    %ecx,%ecx
4259ad:	8b 45 f4             	mov    -0xc(%ebp),%eax
4259b0:	e8 6f f7 ff ff       	call   0x425124
4259b5:	89 03                	mov    %eax,(%ebx)
4259b7:	33 c0                	xor    %eax,%eax
4259b9:	5a                   	pop    %edx
4259ba:	59                   	pop    %ecx
4259bb:	59                   	pop    %ecx
4259bc:	64 89 10             	mov    %edx,%fs:(%eax)
4259bf:	68 d5 59 42 00       	push   $0x4259d5
4259c4:	8b 45 f4             	mov    -0xc(%ebp),%eax
4259c7:	50                   	push   %eax
4259c8:	e8 6f 0b fe ff       	call   0x40653c
4259cd:	c3                   	ret
4259ce:	e9 81 e0 fd ff       	jmp    0x403a54
4259d3:	eb ef                	jmp    0x4259c4
4259d5:	8b 45 fc             	mov    -0x4(%ebp),%eax
4259d8:	8b 40 14             	mov    0x14(%eax),%eax
4259db:	01 45 ec             	add    %eax,-0x14(%ebp)
4259de:	8b 45 fc             	mov    -0x4(%ebp),%eax
4259e1:	66 bb 01 00          	mov    $0x1,%bx
4259e5:	66 89 58 0e          	mov    %bx,0xe(%eax)
4259e9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4259ec:	0f b7 d3             	movzwl %bx,%edx
4259ef:	8b 45 fc             	mov    -0x4(%ebp),%eax
4259f2:	8b 40 04             	mov    0x4(%eax),%eax
4259f5:	b9 20 00 00 00       	mov    $0x20,%ecx
4259fa:	e8 a5 f8 ff ff       	call   0x4252a4
4259ff:	8b 55 fc             	mov    -0x4(%ebp),%edx
425a02:	f7 6a 08             	imull  0x8(%edx)
425a05:	8b 55 fc             	mov    -0x4(%ebp),%edx
425a08:	89 42 14             	mov    %eax,0x14(%edx)
425a0b:	8b 45 fc             	mov    -0x4(%ebp),%eax
425a0e:	c7 40 20 02 00 00 00 	movl   $0x2,0x20(%eax)
425a15:	8b 45 fc             	mov    -0x4(%ebp),%eax
425a18:	c7 40 24 02 00 00 00 	movl   $0x2,0x24(%eax)
425a1f:	8b 45 fc             	mov    -0x4(%ebp),%eax
425a22:	83 c0 28             	add    $0x28,%eax
425a25:	33 d2                	xor    %edx,%edx
425a27:	89 10                	mov    %edx,(%eax)
425a29:	c7 40 04 ff ff ff 00 	movl   $0xffffff,0x4(%eax)
425a30:	6a 00                	push   $0x0
425a32:	8b 5d fc             	mov    -0x4(%ebp),%ebx
425a35:	53                   	push   %ebx
425a36:	8b 45 ec             	mov    -0x14(%ebp),%eax
425a39:	50                   	push   %eax
425a3a:	6a 04                	push   $0x4
425a3c:	8b 45 fc             	mov    -0x4(%ebp),%eax
425a3f:	53                   	push   %ebx
425a40:	8b 45 f0             	mov    -0x10(%ebp),%eax
425a43:	50                   	push   %eax
425a44:	e8 b3 0a fe ff       	call   0x4064fc
425a49:	e8 c6 f6 ff ff       	call   0x425114
425a4e:	89 45 f4             	mov    %eax,-0xc(%ebp)
425a51:	33 c0                	xor    %eax,%eax
425a53:	55                   	push   %ebp
425a54:	68 88 5a 42 00       	push   $0x425a88
425a59:	64 ff 30             	push   %fs:(%eax)
425a5c:	64 89 20             	mov    %esp,%fs:(%eax)
425a5f:	8b 55 08             	mov    0x8(%ebp),%edx
425a62:	b1 01                	mov    $0x1,%cl
425a64:	8b 45 f4             	mov    -0xc(%ebp),%eax
425a67:	e8 b8 f6 ff ff       	call   0x425124
425a6c:	8b 55 f8             	mov    -0x8(%ebp),%edx
425a6f:	89 02                	mov    %eax,(%edx)
425a71:	33 c0                	xor    %eax,%eax
425a73:	5a                   	pop    %edx
425a74:	59                   	pop    %ecx
425a75:	59                   	pop    %ecx
425a76:	64 89 10             	mov    %edx,%fs:(%eax)
425a79:	68 8f 5a 42 00       	push   $0x425a8f
425a7e:	8b 45 f4             	mov    -0xc(%ebp),%eax
425a81:	50                   	push   %eax
425a82:	e8 b5 0a fe ff       	call   0x40653c
425a87:	c3                   	ret
425a88:	e9 c7 df fd ff       	jmp    0x403a54
425a8d:	eb ef                	jmp    0x425a7e
425a8f:	33 c0                	xor    %eax,%eax
425a91:	5a                   	pop    %edx
425a92:	59                   	pop    %ecx
425a93:	59                   	pop    %ecx
425a94:	64 89 10             	mov    %edx,%fs:(%eax)
425a97:	68 af 5a 42 00       	push   $0x425aaf
425a9c:	8b 45 f0             	mov    -0x10(%ebp),%eax
425a9f:	50                   	push   %eax
425aa0:	6a 00                	push   $0x0
425aa2:	e8 ed 0f fe ff       	call   0x406a94
425aa7:	c3                   	ret
425aa8:	e9 a7 df fd ff       	jmp    0x403a54
425aad:	eb ed                	jmp    0x425a9c
425aaf:	5f                   	pop    %edi
425ab0:	5e                   	pop    %esi
425ab1:	5b                   	pop    %ebx
425ab2:	8b e5                	mov    %ebp,%esp
425ab4:	5d                   	pop    %ebp
425ab5:	c2 04 00             	ret    $0x4
425ab8:	85 c0                	test   %eax,%eax
425aba:	75 05                	jne    0x425ac1
425abc:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
425ac1:	c3                   	ret
425ac2:	8b c0                	mov    %eax,%eax
425ac4:	55                   	push   %ebp
425ac5:	8b ec                	mov    %esp,%ebp
425ac7:	83 c4 f8             	add    $0xfffffff8,%esp
425aca:	53                   	push   %ebx
425acb:	56                   	push   %esi
425acc:	57                   	push   %edi
425acd:	89 45 fc             	mov    %eax,-0x4(%ebp)
425ad0:	33 c9                	xor    %ecx,%ecx
425ad2:	8a 0a                	mov    (%edx),%cl
425ad4:	8b 45 08             	mov    0x8(%ebp),%eax
425ad7:	8b 40 08             	mov    0x8(%eax),%eax
425ada:	8b 00                	mov    (%eax),%eax
425adc:	2b c8                	sub    %eax,%ecx
425ade:	33 db                	xor    %ebx,%ebx
425ae0:	8a 5a 01             	mov    0x1(%edx),%bl
425ae3:	8b 55 08             	mov    0x8(%ebp),%edx
425ae6:	8b 52 08             	mov    0x8(%edx),%edx
425ae9:	2b 5a 04             	sub    0x4(%edx),%ebx
425aec:	8b 75 fc             	mov    -0x4(%ebp),%esi
425aef:	0f b6 36             	movzbl (%esi),%esi
425af2:	8b 55 08             	mov    0x8(%ebp),%edx
425af5:	8b 52 08             	mov    0x8(%edx),%edx
425af8:	2b f0                	sub    %eax,%esi
425afa:	8b 45 fc             	mov    -0x4(%ebp),%eax
425afd:	0f b6 40 01          	movzbl 0x1(%eax),%eax
425b01:	8b 55 08             	mov    0x8(%ebp),%edx
425b04:	8b 52 08             	mov    0x8(%edx),%edx
425b07:	2b 42 04             	sub    0x4(%edx),%eax
425b0a:	89 45 f8             	mov    %eax,-0x8(%ebp)
425b0d:	8b c1                	mov    %ecx,%eax
425b0f:	99                   	cltd
425b10:	33 c2                	xor    %edx,%eax
425b12:	2b c2                	sub    %edx,%eax
425b14:	8b f8                	mov    %eax,%edi
425b16:	8b c6                	mov    %esi,%eax
425b18:	99                   	cltd
425b19:	33 c2                	xor    %edx,%eax
425b1b:	2b c2                	sub    %edx,%eax
425b1d:	3b f8                	cmp    %eax,%edi
425b1f:	7f 26                	jg     0x425b47
425b21:	85 c9                	test   %ecx,%ecx
425b23:	7e 04                	jle    0x425b29
425b25:	3b f1                	cmp    %ecx,%esi
425b27:	7c 1e                	jl     0x425b47
425b29:	8b c3                	mov    %ebx,%eax
425b2b:	99                   	cltd
425b2c:	33 c2                	xor    %edx,%eax
425b2e:	2b c2                	sub    %edx,%eax
425b30:	8b c8                	mov    %eax,%ecx
425b32:	8b 45 f8             	mov    -0x8(%ebp),%eax
425b35:	99                   	cltd
425b36:	33 c2                	xor    %edx,%eax
425b38:	2b c2                	sub    %edx,%eax
425b3a:	3b c8                	cmp    %eax,%ecx
425b3c:	7f 09                	jg     0x425b47
425b3e:	85 db                	test   %ebx,%ebx
425b40:	7e 09                	jle    0x425b4b
425b42:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
425b45:	7e 04                	jle    0x425b4b
425b47:	33 c0                	xor    %eax,%eax
425b49:	eb 02                	jmp    0x425b4d
425b4b:	b0 01                	mov    $0x1,%al
425b4d:	5f                   	pop    %edi
425b4e:	5e                   	pop    %esi
425b4f:	5b                   	pop    %ebx
425b50:	59                   	pop    %ecx
425b51:	59                   	pop    %ecx
425b52:	5d                   	pop    %ebp
425b53:	c3                   	ret
425b54:	55                   	push   %ebp
425b55:	8b ec                	mov    %esp,%ebp
425b57:	83 c4 90             	add    $0xffffff90,%esp
425b5a:	53                   	push   %ebx
425b5b:	56                   	push   %esi
425b5c:	57                   	push   %edi
425b5d:	89 4d f4             	mov    %ecx,-0xc(%ebp)
425b60:	89 55 f8             	mov    %edx,-0x8(%ebp)
425b63:	89 45 fc             	mov    %eax,-0x4(%ebp)
425b66:	8b 5d 0c             	mov    0xc(%ebp),%ebx
425b69:	8b 45 f4             	mov    -0xc(%ebp),%eax
425b6c:	c1 e0 04             	shl    $0x4,%eax
425b6f:	89 45 ec             	mov    %eax,-0x14(%ebp)
425b72:	8b 45 ec             	mov    -0x14(%ebp),%eax
425b75:	e8 5a 22 fe ff       	call   0x407dd4
425b7a:	89 45 f0             	mov    %eax,-0x10(%ebp)
425b7d:	33 d2                	xor    %edx,%edx
425b7f:	55                   	push   %ebp
425b80:	68 4b 5e 42 00       	push   $0x425e4b
425b85:	64 ff 32             	push   %fs:(%edx)
425b88:	64 89 22             	mov    %esp,%fs:(%edx)
425b8b:	8b 55 f0             	mov    -0x10(%ebp),%edx
425b8e:	8b 4d ec             	mov    -0x14(%ebp),%ecx
425b91:	8b 45 fc             	mov    -0x4(%ebp),%eax
425b94:	8b 30                	mov    (%eax),%esi
425b96:	ff 56 0c             	call   *0xc(%esi)
425b99:	8b 03                	mov    (%ebx),%eax
425b9b:	0b 43 04             	or     0x4(%ebx),%eax
425b9e:	75 1b                	jne    0x425bbb
425ba0:	6a 0b                	push   $0xb
425ba2:	e8 95 0d fe ff       	call   0x40693c
425ba7:	8b 55 08             	mov    0x8(%ebp),%edx
425baa:	89 02                	mov    %eax,(%edx)
425bac:	6a 0c                	push   $0xc
425bae:	e8 89 0d fe ff       	call   0x40693c
425bb3:	8b 55 08             	mov    0x8(%ebp),%edx
425bb6:	89 42 04             	mov    %eax,0x4(%edx)
425bb9:	eb 0d                	jmp    0x425bc8
425bbb:	8b 45 08             	mov    0x8(%ebp),%eax
425bbe:	8b 13                	mov    (%ebx),%edx
425bc0:	89 10                	mov    %edx,(%eax)
425bc2:	8b 53 04             	mov    0x4(%ebx),%edx
425bc5:	89 50 04             	mov    %edx,0x4(%eax)
425bc8:	6a 00                	push   $0x0
425bca:	e8 7d 0c fe ff       	call   0x40684c
425bcf:	89 45 d8             	mov    %eax,-0x28(%ebp)
425bd2:	83 7d d8 00          	cmpl   $0x0,-0x28(%ebp)
425bd6:	75 05                	jne    0x425bdd
425bd8:	e8 3b f4 ff ff       	call   0x425018
425bdd:	33 d2                	xor    %edx,%edx
425bdf:	55                   	push   %ebp
425be0:	68 3d 5c 42 00       	push   $0x425c3d
425be5:	64 ff 32             	push   %fs:(%edx)
425be8:	64 89 22             	mov    %esp,%fs:(%edx)
425beb:	6a 0e                	push   $0xe
425bed:	8b 45 d8             	mov    -0x28(%ebp),%eax
425bf0:	50                   	push   %eax
425bf1:	e8 8e 09 fe ff       	call   0x406584
425bf6:	8b d8                	mov    %eax,%ebx
425bf8:	6a 0c                	push   $0xc
425bfa:	8b 45 d8             	mov    -0x28(%ebp),%eax
425bfd:	50                   	push   %eax
425bfe:	e8 81 09 fe ff       	call   0x406584
425c03:	66 0f af d8          	imul   %ax,%bx
425c07:	8b c3                	mov    %ebx,%eax
425c09:	66 83 f8 08          	cmp    $0x8,%ax
425c0d:	76 09                	jbe    0x425c18
425c0f:	c7 45 e4 ff ff ff 7f 	movl   $0x7fffffff,-0x1c(%ebp)
425c16:	eb 0c                	jmp    0x425c24
425c18:	8b c8                	mov    %eax,%ecx
425c1a:	b8 01 00 00 00       	mov    $0x1,%eax
425c1f:	d3 e0                	shl    %cl,%eax
425c21:	89 45 e4             	mov    %eax,-0x1c(%ebp)
425c24:	33 c0                	xor    %eax,%eax
425c26:	5a                   	pop    %edx
425c27:	59                   	pop    %ecx
425c28:	59                   	pop    %ecx
425c29:	64 89 10             	mov    %edx,%fs:(%eax)
425c2c:	68 44 5c 42 00       	push   $0x425c44
425c31:	8b 45 d8             	mov    -0x28(%ebp),%eax
425c34:	50                   	push   %eax
425c35:	6a 00                	push   $0x0
425c37:	e8 58 0e fe ff       	call   0x406a94
425c3c:	c3                   	ret
425c3d:	e9 12 de fd ff       	jmp    0x403a54
425c42:	eb ed                	jmp    0x425c31
425c44:	33 c0                	xor    %eax,%eax
425c46:	89 45 dc             	mov    %eax,-0x24(%ebp)
425c49:	8b 45 f0             	mov    -0x10(%ebp),%eax
425c4c:	0f b7 40 02          	movzwl 0x2(%eax),%eax
425c50:	e8 63 fe ff ff       	call   0x425ab8
425c55:	89 45 e0             	mov    %eax,-0x20(%ebp)
425c58:	8b 7d f4             	mov    -0xc(%ebp),%edi
425c5b:	4f                   	dec    %edi
425c5c:	85 ff                	test   %edi,%edi
425c5e:	7e 4c                	jle    0x425cac
425c60:	be 01 00 00 00       	mov    $0x1,%esi
425c65:	8b c6                	mov    %esi,%eax
425c67:	03 c0                	add    %eax,%eax
425c69:	8b 55 f0             	mov    -0x10(%ebp),%edx
425c6c:	0f b7 44 c2 02       	movzwl 0x2(%edx,%eax,8),%eax
425c71:	e8 42 fe ff ff       	call   0x425ab8
425c76:	8b d8                	mov    %eax,%ebx
425c78:	3b 5d e4             	cmp    -0x1c(%ebp),%ebx
425c7b:	7f 2b                	jg     0x425ca8
425c7d:	3b 5d e0             	cmp    -0x20(%ebp),%ebx
425c80:	7c 26                	jl     0x425ca8
425c82:	55                   	push   %ebp
425c83:	8b c6                	mov    %esi,%eax
425c85:	03 c0                	add    %eax,%eax
425c87:	8b 55 f0             	mov    -0x10(%ebp),%edx
425c8a:	8d 14 c2             	lea    (%edx,%eax,8),%edx
425c8d:	8b 45 dc             	mov    -0x24(%ebp),%eax
425c90:	03 c0                	add    %eax,%eax
425c92:	8b 4d f0             	mov    -0x10(%ebp),%ecx
425c95:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
425c98:	e8 27 fe ff ff       	call   0x425ac4
425c9d:	59                   	pop    %ecx
425c9e:	84 c0                	test   %al,%al
425ca0:	74 06                	je     0x425ca8
425ca2:	89 75 dc             	mov    %esi,-0x24(%ebp)
425ca5:	89 5d e0             	mov    %ebx,-0x20(%ebp)
425ca8:	46                   	inc    %esi
425ca9:	4f                   	dec    %edi
425caa:	75 b9                	jne    0x425c65