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
ac6f57:	74 ed                	je     0xac6f46
ac6f59:	5f                   	pop    %edi
ac6f5a:	5e                   	pop    %esi
ac6f5b:	85 c9                	test   %ecx,%ecx
ac6f5d:	79 05                	jns    0xac6f64
ac6f5f:	83 c8 ff             	or     $0xffffffff,%eax
ac6f62:	5d                   	pop    %ebp
ac6f63:	c3                   	ret
ac6f64:	33 c0                	xor    %eax,%eax
ac6f66:	85 c9                	test   %ecx,%ecx
ac6f68:	0f 9f c0             	setg   %al
ac6f6b:	5d                   	pop    %ebp
ac6f6c:	c3                   	ret
ac6f6d:	cc                   	int3
ac6f6e:	cc                   	int3
ac6f6f:	cc                   	int3
ac6f70:	cc                   	int3
ac6f71:	cc                   	int3
ac6f72:	cc                   	int3
ac6f73:	cc                   	int3
ac6f74:	cc                   	int3
ac6f75:	cc                   	int3
ac6f76:	cc                   	int3
ac6f77:	cc                   	int3
ac6f78:	cc                   	int3
ac6f79:	cc                   	int3
ac6f7a:	cc                   	int3
ac6f7b:	cc                   	int3
ac6f7c:	cc                   	int3
ac6f7d:	8b ff                	mov    %edi,%edi
ac6f7f:	55                   	push   %ebp
ac6f80:	8b ec                	mov    %esp,%ebp
ac6f82:	8b 45 08             	mov    0x8(%ebp),%eax
ac6f85:	99                   	cltd
ac6f86:	33 c2                	xor    %edx,%eax
ac6f88:	2b c2                	sub    %edx,%eax
ac6f8a:	5d                   	pop    %ebp
ac6f8b:	c3                   	ret
ac6f8c:	cc                   	int3
ac6f8d:	cc                   	int3
ac6f8e:	cc                   	int3
ac6f8f:	8b ff                	mov    %edi,%edi
ac6f91:	55                   	push   %ebp
ac6f92:	8b ec                	mov    %esp,%ebp
ac6f94:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
ac6f98:	75 04                	jne    0xac6f9e
ac6f9a:	33 c0                	xor    %eax,%eax
ac6f9c:	5d                   	pop    %ebp
ac6f9d:	c3                   	ret
ac6f9e:	8b 4d 08             	mov    0x8(%ebp),%ecx
ac6fa1:	57                   	push   %edi
ac6fa2:	33 ff                	xor    %edi,%edi
ac6fa4:	8d 51 02             	lea    0x2(%ecx),%edx
ac6fa7:	66 8b 01             	mov    (%ecx),%ax
ac6faa:	83 c1 02             	add    $0x2,%ecx
ac6fad:	66 3b c7             	cmp    %di,%ax
ac6fb0:	75 f5                	jne    0xac6fa7
ac6fb2:	2b ca                	sub    %edx,%ecx
ac6fb4:	d1 f9                	sar    $1,%ecx
ac6fb6:	53                   	push   %ebx
ac6fb7:	8d 59 01             	lea    0x1(%ecx),%ebx
ac6fba:	8d 04 1b             	lea    (%ebx,%ebx,1),%eax
ac6fbd:	50                   	push   %eax
ac6fbe:	e8 f0 dc 94 ff       	call   0x414cb3
ac6fc3:	8b f8                	mov    %eax,%edi
ac6fc5:	59                   	pop    %ecx
ac6fc6:	85 ff                	test   %edi,%edi
ac6fc8:	75 04                	jne    0xac6fce
ac6fca:	5b                   	pop    %ebx
ac6fcb:	5f                   	pop    %edi
ac6fcc:	5d                   	pop    %ebp
ac6fcd:	c3                   	ret
ac6fce:	ff 75 08             	push   0x8(%ebp)
ac6fd1:	53                   	push   %ebx
ac6fd2:	57                   	push   %edi
ac6fd3:	e8 93 b6 94 ff       	call   0x41266b
ac6fd8:	83 c4 0c             	add    $0xc,%esp
ac6fdb:	85 c0                	test   %eax,%eax
ac6fdd:	75 04                	jne    0xac6fe3
ac6fdf:	8b c7                	mov    %edi,%eax
ac6fe1:	eb e7                	jmp    0xac6fca
ac6fe3:	33 c0                	xor    %eax,%eax
ac6fe5:	50                   	push   %eax
ac6fe6:	50                   	push   %eax
ac6fe7:	50                   	push   %eax
ac6fe8:	50                   	push   %eax
ac6fe9:	50                   	push   %eax
ac6fea:	e8 69 f4 96 ff       	call   0x436458
ac6fef:	cc                   	int3
ac6ff0:	cc                   	int3
ac6ff1:	cc                   	int3
ac6ff2:	cc                   	int3
ac6ff3:	cc                   	int3
ac6ff4:	cc                   	int3
ac6ff5:	cc                   	int3
ac6ff6:	cc                   	int3
ac6ff7:	cc                   	int3
ac6ff8:	cc                   	int3
ac6ff9:	cc                   	int3
ac6ffa:	cc                   	int3
ac6ffb:	cc                   	int3
ac6ffc:	cc                   	int3
ac6ffd:	cc                   	int3
ac6ffe:	cc                   	int3
ac6fff:	cc                   	int3
ac7000:	cc                   	int3
ac7001:	cc                   	int3
ac7002:	cc                   	int3
ac7003:	cc                   	int3
ac7004:	cc                   	int3
ac7005:	cc                   	int3
ac7006:	cc                   	int3
ac7007:	cc                   	int3
ac7008:	ff 15 ac 38 d8 00    	call   *0xd838ac
ac700e:	a3 58 19 d8 00       	mov    %eax,0xd81958
ac7013:	ff 15 6c 35 d8 00    	call   *0xd8356c
ac7019:	a3 5c 19 d8 00       	mov    %eax,0xd8195c
ac701e:	b0 01                	mov    $0x1,%al
ac7020:	c3                   	ret
ac7021:	cc                   	int3
ac7022:	cc                   	int3
ac7023:	cc                   	int3
ac7024:	cc                   	int3
ac7025:	cc                   	int3
ac7026:	cc                   	int3
ac7027:	b0 01                	mov    $0x1,%al
ac7029:	c3                   	ret
ac702a:	b8 4c 19 d8 00       	mov    $0xd8194c,%eax
ac702f:	c3                   	ret
ac7030:	b8 50 19 d8 00       	mov    $0xd81950,%eax
ac7035:	c3                   	ret
ac7036:	b8 54 19 d8 00       	mov    $0xd81954,%eax
ac703b:	c3                   	ret
ac703c:	b8 58 19 d8 00       	mov    $0xd81958,%eax
ac7041:	c3                   	ret
ac7042:	b8 60 19 d8 00       	mov    $0xd81960,%eax
ac7047:	c3                   	ret
ac7048:	b8 5c 19 d8 00       	mov    $0xd8195c,%eax
ac704d:	c3                   	ret
ac704e:	b8 64 19 d8 00       	mov    $0xd81964,%eax
ac7053:	c3                   	ret
ac7054:	8b ff                	mov    %edi,%edi
ac7056:	55                   	push   %ebp
ac7057:	8b ec                	mov    %esp,%ebp
ac7059:	8b 45 08             	mov    0x8(%ebp),%eax
ac705c:	56                   	push   %esi
ac705d:	85 c0                	test   %eax,%eax
ac705f:	75 13                	jne    0xac7074
ac7061:	e8 09 78 97 ff       	call   0x43e86f
ac7066:	6a 16                	push   $0x16
ac7068:	5e                   	pop    %esi
ac7069:	89 30                	mov    %esi,(%eax)
ac706b:	e8 88 82 95 ff       	call   0x41f2f8
ac7070:	8b c6                	mov    %esi,%eax
ac7072:	eb 0e                	jmp    0xac7082
ac7074:	8b 0d 60 19 d8 00    	mov    0xd81960,%ecx
ac707a:	85 c9                	test   %ecx,%ecx
ac707c:	74 e3                	je     0xac7061
ac707e:	89 08                	mov    %ecx,(%eax)
ac7080:	33 c0                	xor    %eax,%eax
ac7082:	5e                   	pop    %esi
ac7083:	5d                   	pop    %ebp
ac7084:	c3                   	ret
ac7085:	cc                   	int3
ac7086:	cc                   	int3
ac7087:	cc                   	int3
ac7088:	cc                   	int3
ac7089:	cc                   	int3
ac708a:	cc                   	int3
ac708b:	cc                   	int3
ac708c:	cc                   	int3
ac708d:	cc                   	int3
ac708e:	cc                   	int3
ac708f:	cc                   	int3
ac7090:	cc                   	int3