ac6cbc:	cc                   	int3
ac6cbd:	cc                   	int3
ac6cbe:	8b ff                	mov    %edi,%edi
ac6cc0:	55                   	push   %ebp
ac6cc1:	8b ec                	mov    %esp,%ebp
ac6cc3:	8b 55 08             	mov    0x8(%ebp),%edx
ac6cc6:	56                   	push   %esi
ac6cc7:	85 d2                	test   %edx,%edx
ac6cc9:	74 13                	je     0xac6cde
ac6ccb:	8b 4d 0c             	mov    0xc(%ebp),%ecx
ac6cce:	85 c9                	test   %ecx,%ecx
ac6cd0:	74 0c                	je     0xac6cde
ac6cd2:	8b 75 10             	mov    0x10(%ebp),%esi
ac6cd5:	85 f6                	test   %esi,%esi
ac6cd7:	75 19                	jne    0xac6cf2
ac6cd9:	33 c0                	xor    %eax,%eax
ac6cdb:	66 89 02             	mov    %ax,(%edx)
ac6cde:	e8 8c 7b 97 ff       	call   0x43e86f
ac6ce3:	6a 16                	push   $0x16
ac6ce5:	5e                   	pop    %esi
ac6ce6:	89 30                	mov    %esi,(%eax)
ac6ce8:	e8 0b 86 95 ff       	call   0x41f2f8
ac6ced:	8b c6                	mov    %esi,%eax
ac6cef:	5e                   	pop    %esi
ac6cf0:	5d                   	pop    %ebp
ac6cf1:	c3                   	ret
ac6cf2:	57                   	push   %edi
ac6cf3:	8b fa                	mov    %edx,%edi
ac6cf5:	2b f2                	sub    %edx,%esi
ac6cf7:	0f b7 04 3e          	movzwl (%esi,%edi,1),%eax
ac6cfb:	66 89 07             	mov    %ax,(%edi)
ac6cfe:	8d 7f 02             	lea    0x2(%edi),%edi
ac6d01:	66 85 c0             	test   %ax,%ax
ac6d04:	74 05                	je     0xac6d0b
ac6d06:	83 e9 01             	sub    $0x1,%ecx
ac6d09:	75 ec                	jne    0xac6cf7
ac6d0b:	5f                   	pop    %edi
ac6d0c:	85 c9                	test   %ecx,%ecx
ac6d0e:	75 0e                	jne    0xac6d1e
ac6d10:	33 c0                	xor    %eax,%eax
ac6d12:	66 89 02             	mov    %ax,(%edx)
ac6d15:	e8 55 7b 97 ff       	call   0x43e86f
ac6d1a:	6a 22                	push   $0x22
ac6d1c:	eb c7                	jmp    0xac6ce5
ac6d1e:	33 f6                	xor    %esi,%esi
ac6d20:	eb cb                	jmp    0xac6ced
ac6d22:	cc                   	int3
ac6d23:	cc                   	int3
ac6d24:	cc                   	int3
ac6d25:	cc                   	int3
ac6d26:	cc                   	int3
ac6d27:	cc                   	int3
ac6d28:	cc                   	int3
ac6d29:	cc                   	int3
ac6d2a:	cc                   	int3
ac6d2b:	cc                   	int3
ac6d2c:	cc                   	int3
ac6d2d:	cc                   	int3
ac6d2e:	cc                   	int3
ac6d2f:	cc                   	int3
ac6d30:	cc                   	int3
ac6d31:	cc                   	int3
ac6d32:	cc                   	int3
ac6d33:	cc                   	int3
ac6d34:	cc                   	int3
ac6d35:	cc                   	int3
ac6d36:	cc                   	int3
ac6d37:	cc                   	int3
ac6d38:	cc                   	int3
ac6d39:	cc                   	int3
ac6d3a:	cc                   	int3
ac6d3b:	8b ff                	mov    %edi,%edi
ac6d3d:	55                   	push   %ebp
ac6d3e:	8b ec                	mov    %esp,%ebp
ac6d40:	8b 45 08             	mov    0x8(%ebp),%eax
ac6d43:	66 8b 08             	mov    (%eax),%cx
ac6d46:	83 c0 02             	add    $0x2,%eax
ac6d49:	66 85 c9             	test   %cx,%cx
ac6d4c:	75 f5                	jne    0xac6d43
ac6d4e:	2b 45 08             	sub    0x8(%ebp),%eax
ac6d51:	d1 f8                	sar    $1,%eax
ac6d53:	48                   	dec    %eax
ac6d54:	5d                   	pop    %ebp
ac6d55:	c3                   	ret
ac6d56:	cc                   	int3
ac6d57:	cc                   	int3
ac6d58:	cc                   	int3
ac6d59:	cc                   	int3
ac6d5a:	cc                   	int3
ac6d5b:	cc                   	int3
ac6d5c:	cc                   	int3
ac6d5d:	cc                   	int3
ac6d5e:	cc                   	int3
ac6d5f:	cc                   	int3
ac6d60:	8b 4c 24 04          	mov    0x4(%esp),%ecx
ac6d64:	f7 c1 03 00 00 00    	test   $0x3,%ecx
ac6d6a:	74 24                	je     0xac6d90
ac6d6c:	8a 01                	mov    (%ecx),%al
ac6d6e:	83 c1 01             	add    $0x1,%ecx
ac6d71:	84 c0                	test   %al,%al
ac6d73:	74 4e                	je     0xac6dc3
ac6d75:	f7 c1 03 00 00 00    	test   $0x3,%ecx
ac6d7b:	75 ef                	jne    0xac6d6c
ac6d7d:	05 00 00 00 00       	add    $0x0,%eax
ac6d82:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
ac6d89:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
ac6d90:	8b 01                	mov    (%ecx),%eax
ac6d92:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
ac6d97:	03 d0                	add    %eax,%edx
ac6d99:	83 f0 ff             	xor    $0xffffffff,%eax
ac6d9c:	33 c2                	xor    %edx,%eax
ac6d9e:	83 c1 04             	add    $0x4,%ecx
ac6da1:	a9 00 01 01 81       	test   $0x81010100,%eax
ac6da6:	74 e8                	je     0xac6d90
ac6da8:	8b 41 fc             	mov    -0x4(%ecx),%eax
ac6dab:	84 c0                	test   %al,%al
ac6dad:	74 32                	je     0xac6de1
ac6daf:	84 e4                	test   %ah,%ah
ac6db1:	74 24                	je     0xac6dd7
ac6db3:	a9 00 00 ff 00       	test   $0xff0000,%eax
ac6db8:	74 13                	je     0xac6dcd
ac6dba:	a9 00 00 00 ff       	test   $0xff000000,%eax
ac6dbf:	74 02                	je     0xac6dc3
ac6dc1:	eb cd                	jmp    0xac6d90
ac6dc3:	8d 41 ff             	lea    -0x1(%ecx),%eax
ac6dc6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
ac6dca:	2b c1                	sub    %ecx,%eax
ac6dcc:	c3                   	ret
ac6dcd:	8d 41 fe             	lea    -0x2(%ecx),%eax
ac6dd0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
ac6dd4:	2b c1                	sub    %ecx,%eax
ac6dd6:	c3                   	ret
ac6dd7:	8d 41 fd             	lea    -0x3(%ecx),%eax
ac6dda:	8b 4c 24 04          	mov    0x4(%esp),%ecx
ac6dde:	2b c1                	sub    %ecx,%eax
ac6de0:	c3                   	ret
ac6de1:	8d 41 fc             	lea    -0x4(%ecx),%eax
ac6de4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
ac6de8:	2b c1                	sub    %ecx,%eax
ac6dea:	c3                   	ret
ac6deb:	cc                   	int3
ac6dec:	cc                   	int3
ac6ded:	cc                   	int3
ac6dee:	cc                   	int3
ac6def:	cc                   	int3
ac6df0:	cc                   	int3
ac6df1:	cc                   	int3
ac6df2:	cc                   	int3
ac6df3:	cc                   	int3
ac6df4:	cc                   	int3
ac6df5:	cc                   	int3
ac6df6:	cc                   	int3
ac6df7:	cc                   	int3
ac6df8:	cc                   	int3
ac6df9:	cc                   	int3
ac6dfa:	cc                   	int3
ac6dfb:	cc                   	int3
ac6dfc:	cc                   	int3
ac6dfd:	cc                   	int3
ac6dfe:	cc                   	int3
ac6dff:	cc                   	int3
ac6e00:	cc                   	int3
ac6e01:	cc                   	int3
ac6e02:	cc                   	int3
ac6e03:	cc                   	int3
ac6e04:	cc                   	int3
ac6e05:	cc                   	int3
ac6e06:	cc                   	int3
ac6e07:	cc                   	int3
ac6e08:	cc                   	int3
ac6e09:	cc                   	int3
ac6e0a:	cc                   	int3
ac6e0b:	cc                   	int3
ac6e0c:	cc                   	int3
ac6e0d:	8b ff                	mov    %edi,%edi
ac6e0f:	55                   	push   %ebp
ac6e10:	8b ec                	mov    %esp,%ebp
ac6e12:	56                   	push   %esi
ac6e13:	8b 75 08             	mov    0x8(%ebp),%esi
ac6e16:	57                   	push   %edi
ac6e17:	85 f6                	test   %esi,%esi
ac6e19:	74 13                	je     0xac6e2e
ac6e1b:	8b 4d 0c             	mov    0xc(%ebp),%ecx
ac6e1e:	85 c9                	test   %ecx,%ecx
ac6e20:	74 0c                	je     0xac6e2e
ac6e22:	8b 7d 10             	mov    0x10(%ebp),%edi
ac6e25:	85 ff                	test   %edi,%edi
ac6e27:	75 1a                	jne    0xac6e43
ac6e29:	33 c0                	xor    %eax,%eax
ac6e2b:	66 89 06             	mov    %ax,(%esi)
ac6e2e:	e8 3c 7a 97 ff       	call   0x43e86f
ac6e33:	6a 16                	push   $0x16
ac6e35:	5e                   	pop    %esi
ac6e36:	89 30                	mov    %esi,(%eax)
ac6e38:	e8 bb 84 95 ff       	call   0x41f2f8
ac6e3d:	8b c6                	mov    %esi,%eax
ac6e3f:	5f                   	pop    %edi
ac6e40:	5e                   	pop    %esi
ac6e41:	5d                   	pop    %ebp
ac6e42:	c3                   	ret
ac6e43:	8b d6                	mov    %esi,%edx
ac6e45:	66 83 3a 00          	cmpw   $0x0,(%edx)
ac6e49:	74 08                	je     0xac6e53
ac6e4b:	83 c2 02             	add    $0x2,%edx
ac6e4e:	83 e9 01             	sub    $0x1,%ecx
ac6e51:	75 f2                	jne    0xac6e45
ac6e53:	85 c9                	test   %ecx,%ecx
ac6e55:	74 d2                	je     0xac6e29
ac6e57:	2b fa                	sub    %edx,%edi
ac6e59:	0f b7 04 17          	movzwl (%edi,%edx,1),%eax
ac6e5d:	66 89 02             	mov    %ax,(%edx)
ac6e60:	8d 52 02             	lea    0x2(%edx),%edx
ac6e63:	66 85 c0             	test   %ax,%ax
ac6e66:	74 05                	je     0xac6e6d
ac6e68:	83 e9 01             	sub    $0x1,%ecx
ac6e6b:	75 ec                	jne    0xac6e59
ac6e6d:	33 c0                	xor    %eax,%eax
ac6e6f:	85 c9                	test   %ecx,%ecx
ac6e71:	75 cc                	jne    0xac6e3f
ac6e73:	66 89 06             	mov    %ax,(%esi)
ac6e76:	e8 f4 79 97 ff       	call   0x43e86f
ac6e7b:	6a 22                	push   $0x22
ac6e7d:	eb b6                	jmp    0xac6e35
ac6e7f:	cc                   	int3
ac6e80:	cc                   	int3
ac6e81:	cc                   	int3
ac6e82:	cc                   	int3
ac6e83:	cc                   	int3
ac6e84:	cc                   	int3
ac6e85:	cc                   	int3
ac6e86:	cc                   	int3
ac6e87:	cc                   	int3
ac6e88:	cc                   	int3
ac6e89:	cc                   	int3
ac6e8a:	cc                   	int3
ac6e8b:	cc                   	int3
ac6e8c:	cc                   	int3
ac6e8d:	cc                   	int3
ac6e8e:	cc                   	int3
ac6e8f:	cc                   	int3
ac6e90:	cc                   	int3
ac6e91:	cc                   	int3
ac6e92:	cc                   	int3
ac6e93:	cc                   	int3
ac6e94:	cc                   	int3
ac6e95:	cc                   	int3
ac6e96:	cc                   	int3
ac6e97:	cc                   	int3
ac6e98:	cc                   	int3
ac6e99:	cc                   	int3
ac6e9a:	cc                   	int3
ac6e9b:	8b ff                	mov    %edi,%edi
ac6e9d:	55                   	push   %ebp
ac6e9e:	8b ec                	mov    %esp,%ebp
ac6ea0:	53                   	push   %ebx
ac6ea1:	56                   	push   %esi
ac6ea2:	57                   	push   %edi
ac6ea3:	8b 7d 08             	mov    0x8(%ebp),%edi
ac6ea6:	85 ff                	test   %edi,%edi
ac6ea8:	74 13                	je     0xac6ebd
ac6eaa:	8b 4d 0c             	mov    0xc(%ebp),%ecx
ac6ead:	85 c9                	test   %ecx,%ecx
ac6eaf:	74 0c                	je     0xac6ebd
ac6eb1:	8b 5d 10             	mov    0x10(%ebp),%ebx
ac6eb4:	85 db                	test   %ebx,%ebx
ac6eb6:	75 1b                	jne    0xac6ed3
ac6eb8:	33 c0                	xor    %eax,%eax
ac6eba:	66 89 07             	mov    %ax,(%edi)
ac6ebd:	e8 ad 79 97 ff       	call   0x43e86f
ac6ec2:	6a 16                	push   $0x16
ac6ec4:	5e                   	pop    %esi
ac6ec5:	89 30                	mov    %esi,(%eax)
ac6ec7:	e8 2c 84 95 ff       	call   0x41f2f8
ac6ecc:	5f                   	pop    %edi
ac6ecd:	8b c6                	mov    %esi,%eax
ac6ecf:	5e                   	pop    %esi
ac6ed0:	5b                   	pop    %ebx
ac6ed1:	5d                   	pop    %ebp
ac6ed2:	c3                   	ret
ac6ed3:	8b d7                	mov    %edi,%edx
ac6ed5:	33 f6                	xor    %esi,%esi
ac6ed7:	66 39 32             	cmp    %si,(%edx)
ac6eda:	74 08                	je     0xac6ee4
ac6edc:	83 c2 02             	add    $0x2,%edx
ac6edf:	83 e9 01             	sub    $0x1,%ecx
ac6ee2:	75 f3                	jne    0xac6ed7
ac6ee4:	85 c9                	test   %ecx,%ecx
ac6ee6:	74 d0                	je     0xac6eb8
ac6ee8:	2b da                	sub    %edx,%ebx
ac6eea:	0f b7 04 13          	movzwl (%ebx,%edx,1),%eax
ac6eee:	66 89 02             	mov    %ax,(%edx)
ac6ef1:	8d 52 02             	lea    0x2(%edx),%edx
ac6ef4:	66 85 c0             	test   %ax,%ax
ac6ef7:	74 05                	je     0xac6efe
ac6ef9:	83 e9 01             	sub    $0x1,%ecx
ac6efc:	75 ec                	jne    0xac6eea
ac6efe:	85 c9                	test   %ecx,%ecx
ac6f00:	75 ca                	jne    0xac6ecc
ac6f02:	33 c0                	xor    %eax,%eax
ac6f04:	66 89 07             	mov    %ax,(%edi)
ac6f07:	e8 63 79 97 ff       	call   0x43e86f
ac6f0c:	6a 22                	push   $0x22
ac6f0e:	eb b4                	jmp    0xac6ec4
ac6f10:	cc                   	int3
ac6f11:	cc                   	int3
ac6f12:	cc                   	int3
ac6f13:	cc                   	int3
ac6f14:	cc                   	int3
ac6f15:	cc                   	int3
ac6f16:	cc                   	int3
ac6f17:	cc                   	int3
ac6f18:	cc                   	int3
ac6f19:	cc                   	int3
ac6f1a:	cc                   	int3
ac6f1b:	cc                   	int3
ac6f1c:	cc                   	int3
ac6f1d:	cc                   	int3
ac6f1e:	cc                   	int3
ac6f1f:	cc                   	int3
ac6f20:	cc                   	int3
ac6f21:	cc                   	int3
ac6f22:	cc                   	int3
ac6f23:	cc                   	int3
ac6f24:	cc                   	int3
ac6f25:	cc                   	int3
ac6f26:	cc                   	int3
ac6f27:	cc                   	int3
ac6f28:	cc                   	int3
ac6f29:	cc                   	int3
ac6f2a:	cc                   	int3
ac6f2b:	cc                   	int3
ac6f2c:	cc                   	int3
ac6f2d:	8b ff                	mov    %edi,%edi
ac6f2f:	55                   	push   %ebp
ac6f30:	8b ec                	mov    %esp,%ebp
ac6f32:	8b 55 0c             	mov    0xc(%ebp),%edx
ac6f35:	56                   	push   %esi
ac6f36:	8b 75 08             	mov    0x8(%ebp),%esi
ac6f39:	57                   	push   %edi
ac6f3a:	0f b7 3a             	movzwl (%edx),%edi
ac6f3d:	0f b7 0e             	movzwl (%esi),%ecx
ac6f40:	2b cf                	sub    %edi,%ecx
ac6f42:	75 15                	jne    0xac6f59
ac6f44:	2b f2                	sub    %edx,%esi
ac6f46:	66 85 ff             	test   %di,%di
ac6f49:	74 0e                	je     0xac6f59
ac6f4b:	83 c2 02             	add    $0x2,%edx
ac6f4e:	0f b7 3a             	movzwl (%edx),%edi
ac6f51:	0f b7 0c 16          	movzwl (%esi,%edx,1),%ecx
ac6f55:	2b cf                	sub    %edi,%ecx