595a6e:	cc                   	int3
595a6f:	cc                   	int3
595a70:	8b 54 24 08          	mov    0x8(%esp),%edx
595a74:	85 d2                	test   %edx,%edx
595a76:	7f 03                	jg     0x595a7b
595a78:	33 c0                	xor    %eax,%eax
595a7a:	c3                   	ret
595a7b:	53                   	push   %ebx
595a7c:	56                   	push   %esi
595a7d:	8b 74 24 0c          	mov    0xc(%esp),%esi
595a81:	57                   	push   %edi
595a82:	8a 0e                	mov    (%esi),%cl
595a84:	84 c9                	test   %cl,%cl
595a86:	78 15                	js     0x595a9d
595a88:	0f b6 d1             	movzbl %cl,%edx
595a8b:	b8 01 00 00 00       	mov    $0x1,%eax
595a90:	8b 4c 24 18          	mov    0x18(%esp),%ecx
595a94:	83 e2 7f             	and    $0x7f,%edx
595a97:	5f                   	pop    %edi
595a98:	5e                   	pop    %esi
595a99:	5b                   	pop    %ebx
595a9a:	89 11                	mov    %edx,(%ecx)
595a9c:	c3                   	ret
595a9d:	8a c1                	mov    %cl,%al
595a9f:	24 e0                	and    $0xe0,%al
595aa1:	3c c0                	cmp    $0xc0,%al
595aa3:	75 44                	jne    0x595ae9
595aa5:	83 fa 02             	cmp    $0x2,%edx
595aa8:	0f 8c c7 01 00 00    	jl     0x595c75
595aae:	8a 5e 01             	mov    0x1(%esi),%bl
595ab1:	8a c3                	mov    %bl,%al
595ab3:	24 c0                	and    $0xc0,%al
595ab5:	3c 80                	cmp    $0x80,%al
595ab7:	0f 85 52 02 00 00    	jne    0x595d0f
595abd:	0f b6 d1             	movzbl %cl,%edx
595ac0:	83 e2 1f             	and    $0x1f,%edx
595ac3:	0f b6 c3             	movzbl %bl,%eax
595ac6:	c1 e2 06             	shl    $0x6,%edx
595ac9:	83 e0 3f             	and    $0x3f,%eax
595acc:	0b d0                	or     %eax,%edx
595ace:	81 fa 80 00 00 00    	cmp    $0x80,%edx
595ad4:	0f 82 1d 02 00 00    	jb     0x595cf7
595ada:	8b 4c 24 18          	mov    0x18(%esp),%ecx
595ade:	b8 02 00 00 00       	mov    $0x2,%eax
595ae3:	5f                   	pop    %edi
595ae4:	5e                   	pop    %esi
595ae5:	5b                   	pop    %ebx
595ae6:	89 11                	mov    %edx,(%ecx)
595ae8:	c3                   	ret
595ae9:	8a c1                	mov    %cl,%al
595aeb:	24 f0                	and    $0xf0,%al
595aed:	3c e0                	cmp    $0xe0,%al
595aef:	75 5c                	jne    0x595b4d
595af1:	83 fa 03             	cmp    $0x3,%edx
595af4:	0f 8c 7b 01 00 00    	jl     0x595c75
595afa:	8a 46 01             	mov    0x1(%esi),%al
595afd:	24 c0                	and    $0xc0,%al
595aff:	3c 80                	cmp    $0x80,%al
595b01:	0f 85 08 02 00 00    	jne    0x595d0f
595b07:	8a 46 02             	mov    0x2(%esi),%al
595b0a:	24 c0                	and    $0xc0,%al
595b0c:	3c 80                	cmp    $0x80,%al
595b0e:	0f 85 fb 01 00 00    	jne    0x595d0f
595b14:	0f b6 46 02          	movzbl 0x2(%esi),%eax
595b18:	0f b6 d1             	movzbl %cl,%edx
595b1b:	83 e0 3f             	and    $0x3f,%eax
595b1e:	0f b6 4e 01          	movzbl 0x1(%esi),%ecx
595b22:	83 e2 0f             	and    $0xf,%edx
595b25:	83 e1 3f             	and    $0x3f,%ecx
595b28:	c1 e2 0c             	shl    $0xc,%edx
595b2b:	c1 e1 06             	shl    $0x6,%ecx
595b2e:	0b c8                	or     %eax,%ecx
595b30:	0b d1                	or     %ecx,%edx
595b32:	81 fa 00 08 00 00    	cmp    $0x800,%edx
595b38:	0f 82 b9 01 00 00    	jb     0x595cf7
595b3e:	8b 4c 24 18          	mov    0x18(%esp),%ecx
595b42:	b8 03 00 00 00       	mov    $0x3,%eax
595b47:	5f                   	pop    %edi
595b48:	5e                   	pop    %esi
595b49:	5b                   	pop    %ebx
595b4a:	89 11                	mov    %edx,(%ecx)
595b4c:	c3                   	ret
595b4d:	8a c1                	mov    %cl,%al
595b4f:	24 f8                	and    $0xf8,%al
595b51:	3c f0                	cmp    $0xf0,%al
595b53:	75 75                	jne    0x595bca
595b55:	83 fa 04             	cmp    $0x4,%edx
595b58:	0f 8c 17 01 00 00    	jl     0x595c75
595b5e:	8a 46 01             	mov    0x1(%esi),%al
595b61:	24 c0                	and    $0xc0,%al
595b63:	3c 80                	cmp    $0x80,%al
595b65:	0f 85 a4 01 00 00    	jne    0x595d0f
595b6b:	8a 46 02             	mov    0x2(%esi),%al
595b6e:	24 c0                	and    $0xc0,%al
595b70:	3c 80                	cmp    $0x80,%al
595b72:	0f 85 97 01 00 00    	jne    0x595d0f
595b78:	8a 46 03             	mov    0x3(%esi),%al
595b7b:	24 c0                	and    $0xc0,%al
595b7d:	3c 80                	cmp    $0x80,%al
595b7f:	0f 85 8a 01 00 00    	jne    0x595d0f
595b85:	0f b6 46 01          	movzbl 0x1(%esi),%eax
595b89:	0f b6 d1             	movzbl %cl,%edx
595b8c:	83 e0 3f             	and    $0x3f,%eax
595b8f:	0f b6 4e 02          	movzbl 0x2(%esi),%ecx
595b93:	83 e2 07             	and    $0x7,%edx
595b96:	c1 e0 0c             	shl    $0xc,%eax
595b99:	83 e1 3f             	and    $0x3f,%ecx
595b9c:	c1 e2 12             	shl    $0x12,%edx
595b9f:	0b d0                	or     %eax,%edx
595ba1:	c1 e1 06             	shl    $0x6,%ecx
595ba4:	0f b6 46 03          	movzbl 0x3(%esi),%eax
595ba8:	83 e0 3f             	and    $0x3f,%eax
595bab:	0b c8                	or     %eax,%ecx
595bad:	0b d1                	or     %ecx,%edx
595baf:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
595bb5:	0f 82 3c 01 00 00    	jb     0x595cf7
595bbb:	8b 4c 24 18          	mov    0x18(%esp),%ecx
595bbf:	b8 04 00 00 00       	mov    $0x4,%eax
595bc4:	5f                   	pop    %edi
595bc5:	5e                   	pop    %esi
595bc6:	5b                   	pop    %ebx
595bc7:	89 11                	mov    %edx,(%ecx)
595bc9:	c3                   	ret
595bca:	8a c1                	mov    %cl,%al
595bcc:	24 fc                	and    $0xfc,%al
595bce:	3c f8                	cmp    $0xf8,%al
595bd0:	0f 85 8e 00 00 00    	jne    0x595c64
595bd6:	83 fa 05             	cmp    $0x5,%edx
595bd9:	0f 8c 96 00 00 00    	jl     0x595c75
595bdf:	8a 46 01             	mov    0x1(%esi),%al
595be2:	24 c0                	and    $0xc0,%al
595be4:	3c 80                	cmp    $0x80,%al
595be6:	0f 85 23 01 00 00    	jne    0x595d0f
595bec:	8a 46 02             	mov    0x2(%esi),%al
595bef:	24 c0                	and    $0xc0,%al
595bf1:	3c 80                	cmp    $0x80,%al
595bf3:	0f 85 16 01 00 00    	jne    0x595d0f
595bf9:	8a 46 03             	mov    0x3(%esi),%al
595bfc:	24 c0                	and    $0xc0,%al
595bfe:	3c 80                	cmp    $0x80,%al
595c00:	0f 85 09 01 00 00    	jne    0x595d0f
595c06:	8a 46 04             	mov    0x4(%esi),%al
595c09:	24 c0                	and    $0xc0,%al
595c0b:	3c 80                	cmp    $0x80,%al
595c0d:	0f 85 fc 00 00 00    	jne    0x595d0f
595c13:	0f b6 46 01          	movzbl 0x1(%esi),%eax
595c17:	0f b6 d1             	movzbl %cl,%edx
595c1a:	83 e0 3f             	and    $0x3f,%eax
595c1d:	0f b6 4e 03          	movzbl 0x3(%esi),%ecx
595c21:	83 e2 03             	and    $0x3,%edx
595c24:	c1 e0 12             	shl    $0x12,%eax
595c27:	83 e1 3f             	and    $0x3f,%ecx
595c2a:	c1 e2 18             	shl    $0x18,%edx
595c2d:	0b d0                	or     %eax,%edx
595c2f:	c1 e1 06             	shl    $0x6,%ecx
595c32:	0f b6 46 02          	movzbl 0x2(%esi),%eax
595c36:	83 e0 3f             	and    $0x3f,%eax
595c39:	c1 e0 0c             	shl    $0xc,%eax
595c3c:	0b d0                	or     %eax,%edx
595c3e:	0f b6 46 04          	movzbl 0x4(%esi),%eax
595c42:	83 e0 3f             	and    $0x3f,%eax
595c45:	0b c8                	or     %eax,%ecx
595c47:	0b d1                	or     %ecx,%edx
595c49:	81 fa 00 00 20 00    	cmp    $0x200000,%edx
595c4f:	0f 82 a2 00 00 00    	jb     0x595cf7
595c55:	8b 4c 24 18          	mov    0x18(%esp),%ecx
595c59:	b8 05 00 00 00       	mov    $0x5,%eax
595c5e:	5f                   	pop    %edi
595c5f:	5e                   	pop    %esi
595c60:	5b                   	pop    %ebx
595c61:	89 11                	mov    %edx,(%ecx)
595c63:	c3                   	ret
595c64:	8a c1                	mov    %cl,%al
595c66:	24 fe                	and    $0xfe,%al
595c68:	3c fc                	cmp    $0xfc,%al
595c6a:	0f 85 a8 00 00 00    	jne    0x595d18
595c70:	83 fa 06             	cmp    $0x6,%edx
595c73:	7d 07                	jge    0x595c7c
595c75:	5f                   	pop    %edi
595c76:	5e                   	pop    %esi
595c77:	83 c8 ff             	or     $0xffffffff,%eax
595c7a:	5b                   	pop    %ebx
595c7b:	c3                   	ret
595c7c:	8a 46 01             	mov    0x1(%esi),%al
595c7f:	24 c0                	and    $0xc0,%al
595c81:	3c 80                	cmp    $0x80,%al
595c83:	0f 85 86 00 00 00    	jne    0x595d0f
595c89:	8a 46 02             	mov    0x2(%esi),%al
595c8c:	24 c0                	and    $0xc0,%al
595c8e:	3c 80                	cmp    $0x80,%al
595c90:	75 7d                	jne    0x595d0f
595c92:	8a 46 03             	mov    0x3(%esi),%al
595c95:	24 c0                	and    $0xc0,%al
595c97:	3c 80                	cmp    $0x80,%al
595c99:	75 74                	jne    0x595d0f
595c9b:	8a 46 04             	mov    0x4(%esi),%al
595c9e:	24 c0                	and    $0xc0,%al
595ca0:	3c 80                	cmp    $0x80,%al
595ca2:	75 6b                	jne    0x595d0f
595ca4:	8a 46 05             	mov    0x5(%esi),%al
595ca7:	24 c0                	and    $0xc0,%al
595ca9:	3c 80                	cmp    $0x80,%al
595cab:	75 62                	jne    0x595d0f
595cad:	0f b6 46 01          	movzbl 0x1(%esi),%eax
595cb1:	83 e0 3f             	and    $0x3f,%eax
595cb4:	0f b6 d1             	movzbl %cl,%edx
595cb7:	0f b6 4e 04          	movzbl 0x4(%esi),%ecx
595cbb:	83 e2 01             	and    $0x1,%edx
595cbe:	c1 e0 18             	shl    $0x18,%eax
595cc1:	83 e1 3f             	and    $0x3f,%ecx
595cc4:	c1 e2 1e             	shl    $0x1e,%edx
595cc7:	0b d0                	or     %eax,%edx
595cc9:	c1 e1 06             	shl    $0x6,%ecx
595ccc:	0f b6 46 02          	movzbl 0x2(%esi),%eax
595cd0:	83 e0 3f             	and    $0x3f,%eax
595cd3:	c1 e0 12             	shl    $0x12,%eax
595cd6:	0b d0                	or     %eax,%edx
595cd8:	0f b6 46 03          	movzbl 0x3(%esi),%eax
595cdc:	83 e0 3f             	and    $0x3f,%eax
595cdf:	c1 e0 0c             	shl    $0xc,%eax
595ce2:	0b d0                	or     %eax,%edx
595ce4:	0f b6 46 05          	movzbl 0x5(%esi),%eax
595ce8:	83 e0 3f             	and    $0x3f,%eax
595ceb:	0b c8                	or     %eax,%ecx
595ced:	0b d1                	or     %ecx,%edx
595cef:	81 fa 00 00 00 04    	cmp    $0x4000000,%edx
595cf5:	73 09                	jae    0x595d00
595cf7:	5f                   	pop    %edi
595cf8:	5e                   	pop    %esi
595cf9:	b8 fc ff ff ff       	mov    $0xfffffffc,%eax
595cfe:	5b                   	pop    %ebx
595cff:	c3                   	ret
595d00:	8b 4c 24 18          	mov    0x18(%esp),%ecx
595d04:	b8 06 00 00 00       	mov    $0x6,%eax
595d09:	5f                   	pop    %edi
595d0a:	5e                   	pop    %esi
595d0b:	5b                   	pop    %ebx
595d0c:	89 11                	mov    %edx,(%ecx)
595d0e:	c3                   	ret
595d0f:	5f                   	pop    %edi
595d10:	5e                   	pop    %esi
595d11:	b8 fd ff ff ff       	mov    $0xfffffffd,%eax
595d16:	5b                   	pop    %ebx
595d17:	c3                   	ret
595d18:	5f                   	pop    %edi
595d19:	5e                   	pop    %esi
595d1a:	b8 fe ff ff ff       	mov    $0xfffffffe,%eax
595d1f:	5b                   	pop    %ebx
595d20:	c3                   	ret
595d21:	cc                   	int3
595d22:	cc                   	int3
595d23:	cc                   	int3
595d24:	cc                   	int3
595d25:	cc                   	int3
595d26:	cc                   	int3
595d27:	cc                   	int3
595d28:	cc                   	int3
595d29:	cc                   	int3
595d2a:	cc                   	int3
595d2b:	cc                   	int3
595d2c:	cc                   	int3
595d2d:	cc                   	int3
595d2e:	cc                   	int3
595d2f:	cc                   	int3
595d30:	8b 4c 24 04          	mov    0x4(%esp),%ecx
595d34:	85 c9                	test   %ecx,%ecx
595d36:	75 1b                	jne    0x595d53
595d38:	8d 41 06             	lea    0x6(%ecx),%eax
595d3b:	8b 54 24 0c          	mov    0xc(%esp),%edx
595d3f:	81 fa 80 00 00 00    	cmp    $0x80,%edx
595d45:	73 18                	jae    0x595d5f
595d47:	85 c9                	test   %ecx,%ecx
595d49:	74 02                	je     0x595d4d
595d4b:	88 11                	mov    %dl,(%ecx)
595d4d:	b8 01 00 00 00       	mov    $0x1,%eax
595d52:	c3                   	ret
595d53:	8b 44 24 08          	mov    0x8(%esp),%eax
595d57:	85 c0                	test   %eax,%eax
595d59:	7f e0                	jg     0x595d3b
595d5b:	83 c8 ff             	or     $0xffffffff,%eax
595d5e:	c3                   	ret
595d5f:	81 fa 00 08 00 00    	cmp    $0x800,%edx
595d65:	73 23                	jae    0x595d8a
595d67:	83 f8 02             	cmp    $0x2,%eax
595d6a:	7c ef                	jl     0x595d5b
595d6c:	85 c9                	test   %ecx,%ecx
595d6e:	74 14                	je     0x595d84
595d70:	8b c2                	mov    %edx,%eax
595d72:	80 e2 3f             	and    $0x3f,%dl
595d75:	c1 e8 06             	shr    $0x6,%eax
595d78:	24 1f                	and    $0x1f,%al
595d7a:	0c c0                	or     $0xc0,%al
595d7c:	80 ca 80             	or     $0x80,%dl
595d7f:	88 01                	mov    %al,(%ecx)
595d81:	88 51 01             	mov    %dl,0x1(%ecx)
595d84:	b8 02 00 00 00       	mov    $0x2,%eax
595d89:	c3                   	ret
595d8a:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
595d90:	73 2f                	jae    0x595dc1
595d92:	83 f8 03             	cmp    $0x3,%eax
595d95:	7c c4                	jl     0x595d5b
595d97:	85 c9                	test   %ecx,%ecx
595d99:	74 20                	je     0x595dbb
595d9b:	8b c2                	mov    %edx,%eax
595d9d:	c1 e8 0c             	shr    $0xc,%eax
595da0:	24 0f                	and    $0xf,%al
595da2:	0c e0                	or     $0xe0,%al
595da4:	88 01                	mov    %al,(%ecx)
595da6:	8b c2                	mov    %edx,%eax
595da8:	c1 e8 06             	shr    $0x6,%eax
595dab:	80 e2 3f             	and    $0x3f,%dl
595dae:	24 3f                	and    $0x3f,%al
595db0:	0c 80                	or     $0x80,%al
595db2:	80 ca 80             	or     $0x80,%dl
595db5:	88 41 01             	mov    %al,0x1(%ecx)
595db8:	88 51 02             	mov    %dl,0x2(%ecx)
595dbb:	b8 03 00 00 00       	mov    $0x3,%eax
595dc0:	c3                   	ret
595dc1:	81 fa 00 00 20 00    	cmp    $0x200000,%edx
595dc7:	73 3b                	jae    0x595e04
595dc9:	83 f8 04             	cmp    $0x4,%eax
595dcc:	7c 8d                	jl     0x595d5b
595dce:	85 c9                	test   %ecx,%ecx
595dd0:	74 2c                	je     0x595dfe
595dd2:	8b c2                	mov    %edx,%eax
595dd4:	c1 e8 12             	shr    $0x12,%eax
595dd7:	24 07                	and    $0x7,%al
595dd9:	0c f0                	or     $0xf0,%al
595ddb:	88 01                	mov    %al,(%ecx)
595ddd:	8b c2                	mov    %edx,%eax
595ddf:	c1 e8 0c             	shr    $0xc,%eax
595de2:	24 3f                	and    $0x3f,%al
595de4:	0c 80                	or     $0x80,%al
595de6:	88 41 01             	mov    %al,0x1(%ecx)
595de9:	8b c2                	mov    %edx,%eax
595deb:	c1 e8 06             	shr    $0x6,%eax
595dee:	80 e2 3f             	and    $0x3f,%dl
595df1:	24 3f                	and    $0x3f,%al
595df3:	0c 80                	or     $0x80,%al
595df5:	80 ca 80             	or     $0x80,%dl
595df8:	88 41 02             	mov    %al,0x2(%ecx)
595dfb:	88 51 03             	mov    %dl,0x3(%ecx)
595dfe:	b8 04 00 00 00       	mov    $0x4,%eax
595e03:	c3                   	ret
595e04:	81 fa 00 00 00 04    	cmp    $0x4000000,%edx
595e0a:	73 4b                	jae    0x595e57
595e0c:	83 f8 05             	cmp    $0x5,%eax
595e0f:	0f 8c 46 ff ff ff    	jl     0x595d5b
595e15:	85 c9                	test   %ecx,%ecx
595e17:	74 38                	je     0x595e51