576dc5:	c1 f9 03             	sar    $0x3,%ecx
576dc8:	66 83 e1 1f          	and    $0x1f,%cx
576dcc:	c1 e1 0b             	shl    $0xb,%ecx
576dcf:	66 89 0c 70          	mov    %cx,(%eax,%esi,2)
576dd3:	eb 10                	jmp    0x576de5
576dd5:	8b d6                	mov    %esi,%edx
576dd7:	8b 4b 08             	mov    0x8(%ebx),%ecx
576dda:	03 d2                	add    %edx,%edx
576ddc:	8b c7                	mov    %edi,%eax
576dde:	03 d1                	add    %ecx,%edx
576de0:	e8 43 09 00 00       	call   0x577728
576de5:	46                   	inc    %esi
576de6:	8b 53 04             	mov    0x4(%ebx),%edx
576de9:	3b f2                	cmp    %edx,%esi
576deb:	7c 99                	jl     0x576d86
576ded:	eb 05                	jmp    0x576df4
576def:	33 c9                	xor    %ecx,%ecx
576df1:	89 4b 08             	mov    %ecx,0x8(%ebx)
576df4:	8b 47 08             	mov    0x8(%edi),%eax
576df7:	a8 02                	test   $0x2,%al
576df9:	75 04                	jne    0x576dff
576dfb:	a8 01                	test   $0x1,%al
576dfd:	74 0c                	je     0x576e0b
576dff:	8b c3                	mov    %ebx,%eax
576e01:	e8 d6 fe ff ff       	call   0x576cdc
576e06:	83 c8 ff             	or     $0xffffffff,%eax
576e09:	eb 02                	jmp    0x576e0d
576e0b:	33 c0                	xor    %eax,%eax
576e0d:	5f                   	pop    %edi
576e0e:	5e                   	pop    %esi
576e0f:	5b                   	pop    %ebx
576e10:	59                   	pop    %ecx
576e11:	5d                   	pop    %ebp
576e12:	c2 04 00             	ret    $0x4
576e15:	90                   	nop
576e16:	90                   	nop
576e17:	90                   	nop
576e18:	53                   	push   %ebx
576e19:	8b d8                	mov    %eax,%ebx
576e1b:	56                   	push   %esi
576e1c:	57                   	push   %edi
576e1d:	8a 53 0c             	mov    0xc(%ebx),%dl
576e20:	8a 03                	mov    (%ebx),%al
576e22:	80 e2 07             	and    $0x7,%dl
576e25:	8b f9                	mov    %ecx,%edi
576e27:	c1 e2 05             	shl    $0x5,%edx
576e2a:	0a d0                	or     %al,%dl
576e2c:	8b c7                	mov    %edi,%eax
576e2e:	e8 8d 08 00 00       	call   0x5776c0
576e33:	33 f6                	xor    %esi,%esi
576e35:	eb 2b                	jmp    0x576e62
576e37:	8a 03                	mov    (%ebx),%al
576e39:	84 c0                	test   %al,%al
576e3b:	75 16                	jne    0x576e53
576e3d:	8b 53 08             	mov    0x8(%ebx),%edx
576e40:	8b c7                	mov    %edi,%eax
576e42:	0f b7 14 72          	movzwl (%edx,%esi,2),%edx
576e46:	c1 fa 0b             	sar    $0xb,%edx
576e49:	c1 e2 03             	shl    $0x3,%edx
576e4c:	e8 6f 08 00 00       	call   0x5776c0
576e51:	eb 0e                	jmp    0x576e61
576e53:	8b 4b 08             	mov    0x8(%ebx),%ecx
576e56:	8b c7                	mov    %edi,%eax
576e58:	66 8b 14 71          	mov    (%ecx,%esi,2),%dx
576e5c:	e8 8b 09 00 00       	call   0x5777ec
576e61:	46                   	inc    %esi
576e62:	8b 4b 04             	mov    0x4(%ebx),%ecx
576e65:	3b f1                	cmp    %ecx,%esi
576e67:	7c ce                	jl     0x576e37
576e69:	33 c0                	xor    %eax,%eax
576e6b:	5f                   	pop    %edi
576e6c:	5e                   	pop    %esi
576e6d:	5b                   	pop    %ebx
576e6e:	c3                   	ret
576e6f:	90                   	nop
576e70:	83 c0 08             	add    $0x8,%eax
576e73:	8b d0                	mov    %eax,%edx
576e75:	8b c1                	mov    %ecx,%eax
576e77:	e8 ac 08 00 00       	call   0x577728
576e7c:	85 c0                	test   %eax,%eax
576e7e:	74 04                	je     0x576e84
576e80:	83 c8 ff             	or     $0xffffffff,%eax
576e83:	c3                   	ret
576e84:	33 c0                	xor    %eax,%eax
576e86:	c3                   	ret
576e87:	90                   	nop
576e88:	83 c0 08             	add    $0x8,%eax
576e8b:	66 8b 10             	mov    (%eax),%dx
576e8e:	8b c1                	mov    %ecx,%eax
576e90:	e8 57 09 00 00       	call   0x5777ec
576e95:	85 c0                	test   %eax,%eax
576e97:	74 04                	je     0x576e9d
576e99:	83 c8 ff             	or     $0xffffffff,%eax
576e9c:	c3                   	ret
576e9d:	33 c0                	xor    %eax,%eax
576e9f:	c3                   	ret
576ea0:	83 c0 08             	add    $0x8,%eax
576ea3:	0f b7 08             	movzwl (%eax),%ecx
576ea6:	51                   	push   %ecx
576ea7:	68 af 27 6a 00       	push   $0x6a27af
576eac:	52                   	push   %edx
576ead:	e8 1a 32 00 00       	call   0x57a0cc
576eb2:	83 c4 0c             	add    $0xc,%esp
576eb5:	33 c0                	xor    %eax,%eax
576eb7:	c3                   	ret
576eb8:	83 c0 08             	add    $0x8,%eax
576ebb:	8b 50 04             	mov    0x4(%eax),%edx
576ebe:	85 d2                	test   %edx,%edx
576ec0:	74 07                	je     0x576ec9
576ec2:	8b c2                	mov    %edx,%eax
576ec4:	e8 bb 14 00 00       	call   0x578384
576ec9:	c3                   	ret
576eca:	90                   	nop
576ecb:	90                   	nop
576ecc:	53                   	push   %ebx
576ecd:	56                   	push   %esi
576ece:	8b f0                	mov    %eax,%esi
576ed0:	57                   	push   %edi
576ed1:	55                   	push   %ebp
576ed2:	33 c0                	xor    %eax,%eax
576ed4:	8d 5e 08             	lea    0x8(%esi),%ebx
576ed7:	8b e9                	mov    %ecx,%ebp
576ed9:	89 43 04             	mov    %eax,0x4(%ebx)
576edc:	66 83 7e 02 01       	cmpw   $0x1,0x2(%esi)
576ee1:	72 4f                	jb     0x576f32
576ee3:	8b d3                	mov    %ebx,%edx
576ee5:	8b c5                	mov    %ebp,%eax
576ee7:	e8 70 07 00 00       	call   0x57765c
576eec:	85 c0                	test   %eax,%eax
576eee:	75 42                	jne    0x576f32
576ef0:	66 8b 7e 02          	mov    0x2(%esi),%di
576ef4:	66 81 c7 ff ff       	add    $0xffff,%di
576ef9:	66 89 7b 02          	mov    %di,0x2(%ebx)
576efd:	66 85 ff             	test   %di,%di
576f00:	76 27                	jbe    0x576f29
576f02:	0f b7 c7             	movzwl %di,%eax
576f05:	e8 72 14 00 00       	call   0x57837c
576f0a:	89 43 04             	mov    %eax,0x4(%ebx)
576f0d:	85 c0                	test   %eax,%eax
576f0f:	74 21                	je     0x576f32
576f11:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
576f15:	8b 53 04             	mov    0x4(%ebx),%edx
576f18:	8b c5                	mov    %ebp,%eax
576f1a:	e8 61 19 00 00       	call   0x578880
576f1f:	0f b7 53 02          	movzwl 0x2(%ebx),%edx
576f23:	3b c2                	cmp    %edx,%eax
576f25:	75 0b                	jne    0x576f32
576f27:	eb 05                	jmp    0x576f2e
576f29:	33 c9                	xor    %ecx,%ecx
576f2b:	89 4b 04             	mov    %ecx,0x4(%ebx)
576f2e:	33 c0                	xor    %eax,%eax
576f30:	eb 0a                	jmp    0x576f3c
576f32:	8b c6                	mov    %esi,%eax
576f34:	e8 7f ff ff ff       	call   0x576eb8
576f39:	83 c8 ff             	or     $0xffffffff,%eax
576f3c:	5d                   	pop    %ebp
576f3d:	5f                   	pop    %edi
576f3e:	5e                   	pop    %esi
576f3f:	5b                   	pop    %ebx
576f40:	c3                   	ret
576f41:	90                   	nop
576f42:	90                   	nop
576f43:	90                   	nop
576f44:	53                   	push   %ebx
576f45:	8d 58 08             	lea    0x8(%eax),%ebx
576f48:	56                   	push   %esi
576f49:	8b f1                	mov    %ecx,%esi
576f4b:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
576f4f:	8b c6                	mov    %esi,%eax
576f51:	8b 53 04             	mov    0x4(%ebx),%edx
576f54:	e8 a3 19 00 00       	call   0x5788fc
576f59:	0f b7 53 02          	movzwl 0x2(%ebx),%edx
576f5d:	3b c2                	cmp    %edx,%eax
576f5f:	74 06                	je     0x576f67
576f61:	83 c8 ff             	or     $0xffffffff,%eax
576f64:	5e                   	pop    %esi
576f65:	5b                   	pop    %ebx
576f66:	c3                   	ret
576f67:	33 c0                	xor    %eax,%eax
576f69:	5e                   	pop    %esi
576f6a:	5b                   	pop    %ebx
576f6b:	c3                   	ret
576f6c:	53                   	push   %ebx
576f6d:	8d 58 08             	lea    0x8(%eax),%ebx
576f70:	56                   	push   %esi
576f71:	8b f2                	mov    %edx,%esi
576f73:	0f b7 43 02          	movzwl 0x2(%ebx),%eax
576f77:	50                   	push   %eax
576f78:	33 d2                	xor    %edx,%edx
576f7a:	8a 13                	mov    (%ebx),%dl
576f7c:	52                   	push   %edx
576f7d:	68 bc 27 6a 00       	push   $0x6a27bc
576f82:	56                   	push   %esi
576f83:	e8 44 31 00 00       	call   0x57a0cc
576f88:	83 c4 10             	add    $0x10,%esp
576f8b:	66 83 7b 02 00       	cmpw   $0x0,0x2(%ebx)
576f90:	76 1c                	jbe    0x576fae
576f92:	68 cf 27 6a 00       	push   $0x6a27cf
576f97:	56                   	push   %esi
576f98:	e8 2f 31 00 00       	call   0x57a0cc
576f9d:	0f b7 4b 02          	movzwl 0x2(%ebx),%ecx
576fa1:	83 c4 08             	add    $0x8,%esp
576fa4:	8b 53 04             	mov    0x4(%ebx),%edx
576fa7:	8b c6                	mov    %esi,%eax
576fa9:	e8 c2 2f 00 00       	call   0x579f70
576fae:	33 c0                	xor    %eax,%eax
576fb0:	5e                   	pop    %esi
576fb1:	5b                   	pop    %ebx
576fb2:	c3                   	ret
576fb3:	90                   	nop
576fb4:	83 c0 08             	add    $0x8,%eax
576fb7:	8b 50 08             	mov    0x8(%eax),%edx
576fba:	85 d2                	test   %edx,%edx
576fbc:	74 07                	je     0x576fc5
576fbe:	8b c2                	mov    %edx,%eax
576fc0:	e8 bf 13 00 00       	call   0x578384
576fc5:	c3                   	ret
576fc6:	90                   	nop
576fc7:	90                   	nop
576fc8:	53                   	push   %ebx
576fc9:	56                   	push   %esi
576fca:	8b f0                	mov    %eax,%esi
576fcc:	57                   	push   %edi
576fcd:	55                   	push   %ebp
576fce:	33 c0                	xor    %eax,%eax
576fd0:	8d 5e 08             	lea    0x8(%esi),%ebx
576fd3:	8b e9                	mov    %ecx,%ebp
576fd5:	89 43 08             	mov    %eax,0x8(%ebx)
576fd8:	66 83 7e 02 01       	cmpw   $0x1,0x2(%esi)
576fdd:	72 46                	jb     0x577025
576fdf:	8b d3                	mov    %ebx,%edx
576fe1:	8b c5                	mov    %ebp,%eax
576fe3:	e8 74 06 00 00       	call   0x57765c
576fe8:	85 c0                	test   %eax,%eax
576fea:	75 39                	jne    0x577025
576fec:	0f b7 7e 02          	movzwl 0x2(%esi),%edi
576ff0:	4f                   	dec    %edi
576ff1:	89 7b 04             	mov    %edi,0x4(%ebx)
576ff4:	85 ff                	test   %edi,%edi
576ff6:	76 24                	jbe    0x57701c
576ff8:	8b c7                	mov    %edi,%eax
576ffa:	e8 7d 13 00 00       	call   0x57837c
576fff:	89 43 08             	mov    %eax,0x8(%ebx)
577002:	85 c0                	test   %eax,%eax
577004:	74 1f                	je     0x577025
577006:	8b 4b 04             	mov    0x4(%ebx),%ecx
577009:	8b 53 08             	mov    0x8(%ebx),%edx
57700c:	8b c5                	mov    %ebp,%eax
57700e:	e8 6d 18 00 00       	call   0x578880
577013:	8b 53 04             	mov    0x4(%ebx),%edx
577016:	3b c2                	cmp    %edx,%eax
577018:	75 0b                	jne    0x577025
57701a:	eb 05                	jmp    0x577021
57701c:	33 c9                	xor    %ecx,%ecx
57701e:	89 4b 08             	mov    %ecx,0x8(%ebx)
577021:	33 c0                	xor    %eax,%eax
577023:	eb 0a                	jmp    0x57702f
577025:	8b c6                	mov    %esi,%eax
577027:	e8 88 ff ff ff       	call   0x576fb4
57702c:	83 c8 ff             	or     $0xffffffff,%eax
57702f:	5d                   	pop    %ebp
577030:	5f                   	pop    %edi
577031:	5e                   	pop    %esi
577032:	5b                   	pop    %ebx
577033:	c3                   	ret
577034:	53                   	push   %ebx
577035:	8d 58 08             	lea    0x8(%eax),%ebx
577038:	56                   	push   %esi
577039:	8b f1                	mov    %ecx,%esi
57703b:	8b c6                	mov    %esi,%eax
57703d:	8a 13                	mov    (%ebx),%dl
57703f:	e8 7c 06 00 00       	call   0x5776c0
577044:	85 c0                	test   %eax,%eax
577046:	74 06                	je     0x57704e
577048:	83 c8 ff             	or     $0xffffffff,%eax
57704b:	5e                   	pop    %esi
57704c:	5b                   	pop    %ebx
57704d:	c3                   	ret
57704e:	8b 4b 04             	mov    0x4(%ebx),%ecx
577051:	8b 53 08             	mov    0x8(%ebx),%edx
577054:	8b c6                	mov    %esi,%eax
577056:	e8 a1 18 00 00       	call   0x5788fc
57705b:	8b 53 04             	mov    0x4(%ebx),%edx
57705e:	3b c2                	cmp    %edx,%eax
577060:	74 06                	je     0x577068
577062:	83 c8 ff             	or     $0xffffffff,%eax
577065:	5e                   	pop    %esi
577066:	5b                   	pop    %ebx
577067:	c3                   	ret
577068:	33 c0                	xor    %eax,%eax
57706a:	5e                   	pop    %esi
57706b:	5b                   	pop    %ebx
57706c:	c3                   	ret
57706d:	90                   	nop
57706e:	90                   	nop
57706f:	90                   	nop
577070:	53                   	push   %ebx
577071:	8d 58 08             	lea    0x8(%eax),%ebx
577074:	56                   	push   %esi
577075:	8b f2                	mov    %edx,%esi
577077:	8b 43 04             	mov    0x4(%ebx),%eax
57707a:	33 d2                	xor    %edx,%edx
57707c:	50                   	push   %eax
57707d:	8a 13                	mov    (%ebx),%dl
57707f:	52                   	push   %edx
577080:	68 d7 27 6a 00       	push   $0x6a27d7
577085:	56                   	push   %esi
577086:	e8 41 30 00 00       	call   0x57a0cc
57708b:	83 c4 10             	add    $0x10,%esp
57708e:	8b 4b 04             	mov    0x4(%ebx),%ecx
577091:	85 c9                	test   %ecx,%ecx
577093:	76 1b                	jbe    0x5770b0
577095:	68 ea 27 6a 00       	push   $0x6a27ea
57709a:	56                   	push   %esi
57709b:	e8 2c 30 00 00       	call   0x57a0cc
5770a0:	83 c4 08             	add    $0x8,%esp
5770a3:	8b 4b 04             	mov    0x4(%ebx),%ecx
5770a6:	8b 53 08             	mov    0x8(%ebx),%edx
5770a9:	8b c6                	mov    %esi,%eax
5770ab:	e8 c0 2e 00 00       	call   0x579f70
5770b0:	33 c0                	xor    %eax,%eax
5770b2:	5e                   	pop    %esi
5770b3:	5b                   	pop    %ebx
5770b4:	c3                   	ret
5770b5:	90                   	nop
5770b6:	90                   	nop
5770b7:	90                   	nop
5770b8:	83 c0 08             	add    $0x8,%eax
5770bb:	8b 50 04             	mov    0x4(%eax),%edx
5770be:	85 d2                	test   %edx,%edx
5770c0:	74 07                	je     0x5770c9
5770c2:	8b c2                	mov    %edx,%eax
5770c4:	e8 bb 12 00 00       	call   0x578384
5770c9:	c3                   	ret
5770ca:	90                   	nop
5770cb:	90                   	nop
5770cc:	53                   	push   %ebx
5770cd:	56                   	push   %esi
5770ce:	57                   	push   %edi
5770cf:	55                   	push   %ebp
5770d0:	83 c4 f4             	add    $0xfffffff4,%esp
5770d3:	8b f1                	mov    %ecx,%esi
5770d5:	8b ea                	mov    %edx,%ebp
5770d7:	89 04 24             	mov    %eax,(%esp)
5770da:	8b 3c 24             	mov    (%esp),%edi
5770dd:	83 c7 08             	add    $0x8,%edi
5770e0:	8b 45 00             	mov    0x0(%ebp),%eax
5770e3:	3d 00 01 00 00       	cmp    $0x100,%eax
5770e8:	7e 13                	jle    0x5770fd
5770ea:	8b 14 24             	mov    (%esp),%edx