582990:	c7 47 3c 0f 00 00 00 	movl   $0xf,0x3c(%edi)
582997:	c6 47 28 00          	movb   $0x0,0x28(%edi)
58299b:	c7 47 40 00 00 00 00 	movl   $0x0,0x40(%edi)
5829a2:	c7 47 44 00 00 00 00 	movl   $0x0,0x44(%edi)
5829a9:	c7 47 48 00 00 00 00 	movl   $0x0,0x48(%edi)
5829b0:	c7 47 4c 00 00 00 00 	movl   $0x0,0x4c(%edi)
5829b7:	c7 47 50 00 00 00 00 	movl   $0x0,0x50(%edi)
5829be:	c7 47 64 00 00 00 00 	movl   $0x0,0x64(%edi)
5829c5:	c7 47 68 0f 00 00 00 	movl   $0xf,0x68(%edi)
5829cc:	c6 47 54 00          	movb   $0x0,0x54(%edi)
5829d0:	8b 00                	mov    (%eax),%eax
5829d2:	89 47 6c             	mov    %eax,0x6c(%edi)
5829d5:	8b c7                	mov    %edi,%eax
5829d7:	c6 47 70 00          	movb   $0x0,0x70(%edi)
5829db:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5829de:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5829e5:	59                   	pop    %ecx
5829e6:	5f                   	pop    %edi
5829e7:	5e                   	pop    %esi
5829e8:	8b e5                	mov    %ebp,%esp
5829ea:	5d                   	pop    %ebp
5829eb:	c2 04 00             	ret    $0x4
5829ee:	cc                   	int3
5829ef:	cc                   	int3
5829f0:	56                   	push   %esi
5829f1:	8b f1                	mov    %ecx,%esi
5829f3:	8b 4e 10             	mov    0x10(%esi),%ecx
5829f6:	85 c9                	test   %ecx,%ecx
5829f8:	74 19                	je     0x582a13
5829fa:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
582a00:	8d 41 ff             	lea    -0x1(%ecx),%eax
582a03:	89 46 10             	mov    %eax,0x10(%esi)
582a06:	8b c8                	mov    %eax,%ecx
582a08:	85 c0                	test   %eax,%eax
582a0a:	75 03                	jne    0x582a0f
582a0c:	89 46 0c             	mov    %eax,0xc(%esi)
582a0f:	85 c9                	test   %ecx,%ecx
582a11:	75 ed                	jne    0x582a00
582a13:	57                   	push   %edi
582a14:	8b 7e 08             	mov    0x8(%esi),%edi
582a17:	85 ff                	test   %edi,%edi
582a19:	74 1f                	je     0x582a3a
582a1b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
582a20:	8b 46 04             	mov    0x4(%esi),%eax
582a23:	4f                   	dec    %edi
582a24:	8b 04 b8             	mov    (%eax,%edi,4),%eax
582a27:	85 c0                	test   %eax,%eax
582a29:	74 0b                	je     0x582a36
582a2b:	6a 10                	push   $0x10
582a2d:	50                   	push   %eax
582a2e:	e8 3f e6 05 00       	call   0x5e1072
582a33:	83 c4 08             	add    $0x8,%esp
582a36:	85 ff                	test   %edi,%edi
582a38:	75 e6                	jne    0x582a20
582a3a:	8b 46 04             	mov    0x4(%esi),%eax
582a3d:	5f                   	pop    %edi
582a3e:	85 c0                	test   %eax,%eax
582a40:	74 2a                	je     0x582a6c
582a42:	8b 4e 08             	mov    0x8(%esi),%ecx
582a45:	c1 e1 02             	shl    $0x2,%ecx
582a48:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
582a4e:	72 12                	jb     0x582a62
582a50:	8b 50 fc             	mov    -0x4(%eax),%edx
582a53:	83 c1 23             	add    $0x23,%ecx
582a56:	2b c2                	sub    %edx,%eax
582a58:	83 c0 fc             	add    $0xfffffffc,%eax
582a5b:	83 f8 1f             	cmp    $0x1f,%eax
582a5e:	77 2f                	ja     0x582a8f
582a60:	8b c2                	mov    %edx,%eax
582a62:	51                   	push   %ecx
582a63:	50                   	push   %eax
582a64:	e8 09 e6 05 00       	call   0x5e1072
582a69:	83 c4 08             	add    $0x8,%esp
582a6c:	8b 06                	mov    (%esi),%eax
582a6e:	6a 08                	push   $0x8
582a70:	50                   	push   %eax
582a71:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
582a78:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
582a7f:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
582a85:	e8 e8 e5 05 00       	call   0x5e1072
582a8a:	83 c4 08             	add    $0x8,%esp
582a8d:	5e                   	pop    %esi
582a8e:	c3                   	ret
582a8f:	e8 9b a4 06 00       	call   0x5ecf2f
582a94:	cc                   	int3
582a95:	cc                   	int3
582a96:	cc                   	int3
582a97:	cc                   	int3
582a98:	cc                   	int3
582a99:	cc                   	int3
582a9a:	cc                   	int3
582a9b:	cc                   	int3
582a9c:	cc                   	int3
582a9d:	cc                   	int3
582a9e:	cc                   	int3
582a9f:	cc                   	int3
582aa0:	e9 4b ff ff ff       	jmp    0x5829f0
582aa5:	cc                   	int3
582aa6:	cc                   	int3
582aa7:	cc                   	int3
582aa8:	cc                   	int3
582aa9:	cc                   	int3
582aaa:	cc                   	int3
582aab:	cc                   	int3
582aac:	cc                   	int3
582aad:	cc                   	int3
582aae:	cc                   	int3
582aaf:	cc                   	int3
582ab0:	56                   	push   %esi
582ab1:	8b f1                	mov    %ecx,%esi
582ab3:	8b 4e 20             	mov    0x20(%esi),%ecx
582ab6:	83 f9 10             	cmp    $0x10,%ecx
582ab9:	72 28                	jb     0x582ae3
582abb:	8b 46 0c             	mov    0xc(%esi),%eax
582abe:	41                   	inc    %ecx
582abf:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
582ac5:	72 12                	jb     0x582ad9
582ac7:	8b 50 fc             	mov    -0x4(%eax),%edx
582aca:	83 c1 23             	add    $0x23,%ecx
582acd:	2b c2                	sub    %edx,%eax
582acf:	83 c0 fc             	add    $0xfffffffc,%eax
582ad2:	83 f8 1f             	cmp    $0x1f,%eax
582ad5:	77 20                	ja     0x582af7
582ad7:	8b c2                	mov    %edx,%eax
582ad9:	51                   	push   %ecx
582ada:	50                   	push   %eax
582adb:	e8 92 e5 05 00       	call   0x5e1072
582ae0:	83 c4 08             	add    $0x8,%esp
582ae3:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
582aea:	c7 46 20 0f 00 00 00 	movl   $0xf,0x20(%esi)
582af1:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
582af5:	5e                   	pop    %esi
582af6:	c3                   	ret
582af7:	e8 33 a4 06 00       	call   0x5ecf2f
582afc:	cc                   	int3
582afd:	cc                   	int3
582afe:	cc                   	int3
582aff:	cc                   	int3
582b00:	55                   	push   %ebp
582b01:	8b ec                	mov    %esp,%ebp
582b03:	83 ec 14             	sub    $0x14,%esp
582b06:	53                   	push   %ebx
582b07:	56                   	push   %esi
582b08:	8b f1                	mov    %ecx,%esi
582b0a:	b8 01 00 00 00       	mov    $0x1,%eax
582b0f:	57                   	push   %edi
582b10:	8b 7d 08             	mov    0x8(%ebp),%edi
582b13:	89 75 f4             	mov    %esi,-0xc(%ebp)
582b16:	8b 56 08             	mov    0x8(%esi),%edx
582b19:	85 d2                	test   %edx,%edx
582b1b:	0f 45 c2             	cmovne %edx,%eax
582b1e:	66 90                	xchg   %ax,%ax
582b20:	8b d8                	mov    %eax,%ebx
582b22:	2b da                	sub    %edx,%ebx
582b24:	3b df                	cmp    %edi,%ebx
582b26:	72 05                	jb     0x582b2d
582b28:	83 f8 08             	cmp    $0x8,%eax
582b2b:	73 13                	jae    0x582b40
582b2d:	b9 ff ff ff 0f       	mov    $0xfffffff,%ecx
582b32:	2b c8                	sub    %eax,%ecx
582b34:	3b c8                	cmp    %eax,%ecx
582b36:	0f 82 43 01 00 00    	jb     0x582c7f
582b3c:	03 c0                	add    %eax,%eax
582b3e:	eb e0                	jmp    0x582b20
582b40:	8b 7e 0c             	mov    0xc(%esi),%edi
582b43:	c1 ef 02             	shr    $0x2,%edi
582b46:	89 7d f0             	mov    %edi,-0x10(%ebp)
582b49:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
582b4e:	0f 87 37 01 00 00    	ja     0x582c8b
582b54:	c1 e0 02             	shl    $0x2,%eax
582b57:	3d 00 10 00 00       	cmp    $0x1000,%eax
582b5c:	72 27                	jb     0x582b85
582b5e:	8d 48 23             	lea    0x23(%eax),%ecx
582b61:	3b c8                	cmp    %eax,%ecx
582b63:	0f 86 22 01 00 00    	jbe    0x582c8b
582b69:	51                   	push   %ecx
582b6a:	e8 d3 e4 05 00       	call   0x5e1042
582b6f:	83 c4 04             	add    $0x4,%esp
582b72:	85 c0                	test   %eax,%eax
582b74:	0f 84 0c 01 00 00    	je     0x582c86
582b7a:	8d 50 23             	lea    0x23(%eax),%edx
582b7d:	83 e2 e0             	and    $0xffffffe0,%edx
582b80:	89 42 fc             	mov    %eax,-0x4(%edx)
582b83:	eb 13                	jmp    0x582b98
582b85:	85 c0                	test   %eax,%eax
582b87:	74 0d                	je     0x582b96
582b89:	50                   	push   %eax
582b8a:	e8 b3 e4 05 00       	call   0x5e1042
582b8f:	83 c4 04             	add    $0x4,%esp
582b92:	8b d0                	mov    %eax,%edx
582b94:	eb 02                	jmp    0x582b98
582b96:	33 d2                	xor    %edx,%edx
582b98:	8b 46 04             	mov    0x4(%esi),%eax
582b9b:	8b 76 08             	mov    0x8(%esi),%esi
582b9e:	c1 e7 02             	shl    $0x2,%edi
582ba1:	c1 e6 02             	shl    $0x2,%esi
582ba4:	89 7d f8             	mov    %edi,-0x8(%ebp)
582ba7:	89 55 fc             	mov    %edx,-0x4(%ebp)
582baa:	8d 0c 38             	lea    (%eax,%edi,1),%ecx
582bad:	03 fa                	add    %edx,%edi
582baf:	2b f1                	sub    %ecx,%esi
582bb1:	03 f0                	add    %eax,%esi
582bb3:	56                   	push   %esi
582bb4:	51                   	push   %ecx
582bb5:	57                   	push   %edi
582bb6:	e8 c5 08 06 00       	call   0x5e3480
582bbb:	8d 04 3e             	lea    (%esi,%edi,1),%eax
582bbe:	83 c4 0c             	add    $0xc,%esp
582bc1:	8b 75 f4             	mov    -0xc(%ebp),%esi
582bc4:	8b 7d f0             	mov    -0x10(%ebp),%edi
582bc7:	89 45 ec             	mov    %eax,-0x14(%ebp)
582bca:	8b 56 04             	mov    0x4(%esi),%edx
582bcd:	3b fb                	cmp    %ebx,%edi
582bcf:	77 35                	ja     0x582c06
582bd1:	8d 0c bd 00 00 00 00 	lea    0x0(,%edi,4),%ecx
582bd8:	51                   	push   %ecx
582bd9:	52                   	push   %edx
582bda:	50                   	push   %eax
582bdb:	e8 a0 08 06 00       	call   0x5e3480
582be0:	8b c3                	mov    %ebx,%eax
582be2:	2b c7                	sub    %edi,%eax
582be4:	8b 7d f8             	mov    -0x8(%ebp),%edi
582be7:	c1 e0 02             	shl    $0x2,%eax
582bea:	50                   	push   %eax
582beb:	8b 45 ec             	mov    -0x14(%ebp),%eax
582bee:	03 c7                	add    %edi,%eax
582bf0:	6a 00                	push   $0x0
582bf2:	50                   	push   %eax
582bf3:	e8 08 0e 06 00       	call   0x5e3a00
582bf8:	57                   	push   %edi
582bf9:	8b 7d fc             	mov    -0x4(%ebp),%edi
582bfc:	6a 00                	push   $0x0
582bfe:	57                   	push   %edi
582bff:	e8 fc 0d 06 00       	call   0x5e3a00
582c04:	eb 36                	jmp    0x582c3c
582c06:	8d 3c 9d 00 00 00 00 	lea    0x0(,%ebx,4),%edi
582c0d:	57                   	push   %edi
582c0e:	52                   	push   %edx
582c0f:	50                   	push   %eax
582c10:	e8 6b 08 06 00       	call   0x5e3480
582c15:	8b 76 04             	mov    0x4(%esi),%esi
582c18:	8d 04 37             	lea    (%edi,%esi,1),%eax
582c1b:	2b f0                	sub    %eax,%esi
582c1d:	03 75 f8             	add    -0x8(%ebp),%esi
582c20:	56                   	push   %esi
582c21:	50                   	push   %eax
582c22:	ff 75 fc             	push   -0x4(%ebp)
582c25:	e8 56 08 06 00       	call   0x5e3480
582c2a:	57                   	push   %edi
582c2b:	8b 7d fc             	mov    -0x4(%ebp),%edi
582c2e:	6a 00                	push   $0x0
582c30:	8d 04 3e             	lea    (%esi,%edi,1),%eax
582c33:	50                   	push   %eax
582c34:	e8 c7 0d 06 00       	call   0x5e3a00
582c39:	8b 75 f4             	mov    -0xc(%ebp),%esi
582c3c:	8b 46 04             	mov    0x4(%esi),%eax
582c3f:	83 c4 24             	add    $0x24,%esp
582c42:	85 c0                	test   %eax,%eax
582c44:	74 2a                	je     0x582c70
582c46:	8b 4e 08             	mov    0x8(%esi),%ecx
582c49:	c1 e1 02             	shl    $0x2,%ecx
582c4c:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
582c52:	72 12                	jb     0x582c66
582c54:	8b 50 fc             	mov    -0x4(%eax),%edx
582c57:	83 c1 23             	add    $0x23,%ecx
582c5a:	2b c2                	sub    %edx,%eax
582c5c:	83 c0 fc             	add    $0xfffffffc,%eax
582c5f:	83 f8 1f             	cmp    $0x1f,%eax
582c62:	77 22                	ja     0x582c86
582c64:	8b c2                	mov    %edx,%eax
582c66:	51                   	push   %ecx
582c67:	50                   	push   %eax
582c68:	e8 05 e4 05 00       	call   0x5e1072
582c6d:	83 c4 08             	add    $0x8,%esp
582c70:	01 5e 08             	add    %ebx,0x8(%esi)
582c73:	89 7e 04             	mov    %edi,0x4(%esi)
582c76:	5f                   	pop    %edi
582c77:	5e                   	pop    %esi
582c78:	5b                   	pop    %ebx
582c79:	8b e5                	mov    %ebp,%esp
582c7b:	5d                   	pop    %ebp
582c7c:	c2 04 00             	ret    $0x4
582c7f:	8b ce                	mov    %esi,%ecx
582c81:	e8 da 93 ed ff       	call   0x45c060
582c86:	e8 a4 a2 06 00       	call   0x5ecf2f
582c8b:	e8 50 22 ec ff       	call   0x444ee0
582c90:	cc                   	int3
582c91:	cc                   	int3
582c92:	cc                   	int3
582c93:	cc                   	int3
582c94:	cc                   	int3
582c95:	cc                   	int3
582c96:	cc                   	int3
582c97:	cc                   	int3
582c98:	cc                   	int3
582c99:	cc                   	int3
582c9a:	cc                   	int3
582c9b:	cc                   	int3
582c9c:	cc                   	int3
582c9d:	cc                   	int3
582c9e:	cc                   	int3
582c9f:	cc                   	int3
582ca0:	55                   	push   %ebp
582ca1:	8b ec                	mov    %esp,%ebp
582ca3:	83 ec 10             	sub    $0x10,%esp
582ca6:	53                   	push   %ebx
582ca7:	56                   	push   %esi
582ca8:	8b f1                	mov    %ecx,%esi
582caa:	b8 01 00 00 00       	mov    $0x1,%eax
582caf:	57                   	push   %edi
582cb0:	8b 7d 08             	mov    0x8(%ebp),%edi
582cb3:	89 75 f4             	mov    %esi,-0xc(%ebp)
582cb6:	8b 56 08             	mov    0x8(%esi),%edx
582cb9:	85 d2                	test   %edx,%edx
582cbb:	0f 45 c2             	cmovne %edx,%eax
582cbe:	66 90                	xchg   %ax,%ax
582cc0:	8b d8                	mov    %eax,%ebx
582cc2:	2b da                	sub    %edx,%ebx
582cc4:	3b df                	cmp    %edi,%ebx
582cc6:	72 05                	jb     0x582ccd
582cc8:	83 f8 08             	cmp    $0x8,%eax
582ccb:	73 13                	jae    0x582ce0
582ccd:	b9 66 66 66 06       	mov    $0x6666666,%ecx
582cd2:	2b c8                	sub    %eax,%ecx
582cd4:	3b c8                	cmp    %eax,%ecx
582cd6:	0f 82 44 01 00 00    	jb     0x582e20
582cdc:	03 c0                	add    %eax,%eax
582cde:	eb e0                	jmp    0x582cc0
582ce0:	8b 7e 0c             	mov    0xc(%esi),%edi
582ce3:	89 7d f8             	mov    %edi,-0x8(%ebp)
582ce6:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
582ceb:	0f 87 3b 01 00 00    	ja     0x582e2c
582cf1:	c1 e0 02             	shl    $0x2,%eax
582cf4:	3d 00 10 00 00       	cmp    $0x1000,%eax
582cf9:	72 27                	jb     0x582d22
582cfb:	8d 48 23             	lea    0x23(%eax),%ecx
582cfe:	3b c8                	cmp    %eax,%ecx
582d00:	0f 86 26 01 00 00    	jbe    0x582e2c
582d06:	51                   	push   %ecx
582d07:	e8 36 e3 05 00       	call   0x5e1042
582d0c:	83 c4 04             	add    $0x4,%esp
582d0f:	85 c0                	test   %eax,%eax
582d11:	0f 84 10 01 00 00    	je     0x582e27
582d17:	8d 50 23             	lea    0x23(%eax),%edx
582d1a:	83 e2 e0             	and    $0xffffffe0,%edx
582d1d:	89 42 fc             	mov    %eax,-0x4(%edx)
582d20:	eb 13                	jmp    0x582d35
582d22:	85 c0                	test   %eax,%eax
582d24:	74 0d                	je     0x582d33
582d26:	50                   	push   %eax