ab8aa5:	41                   	inc    %ecx
ab8aa6:	84 c0                	test   %al,%al
ab8aa8:	75 f9                	jne    0xab8aa3
ab8aaa:	2b ce                	sub    %esi,%ecx
ab8aac:	8d 34 11             	lea    (%ecx,%edx,1),%esi
ab8aaf:	3b d6                	cmp    %esi,%edx
ab8ab1:	74 22                	je     0xab8ad5
ab8ab3:	8a 46 ff             	mov    -0x1(%esi),%al
ab8ab6:	3c 5c                	cmp    $0x5c,%al
ab8ab8:	75 16                	jne    0xab8ad0
ab8aba:	6a 5c                	push   $0x5c
ab8abc:	52                   	push   %edx
ab8abd:	e8 85 ae 97 ff       	call   0x433947
ab8ac2:	59                   	pop    %ecx
ab8ac3:	59                   	pop    %ecx
ab8ac4:	8d 4e ff             	lea    -0x1(%esi),%ecx
ab8ac7:	33 d2                	xor    %edx,%edx
ab8ac9:	3b c8                	cmp    %eax,%ecx
ab8acb:	0f 95 c0             	setne  %al
ab8ace:	eb 05                	jmp    0xab8ad5
ab8ad0:	3c 2f                	cmp    $0x2f,%al
ab8ad2:	0f 95 c0             	setne  %al
ab8ad5:	5e                   	pop    %esi
ab8ad6:	5d                   	pop    %ebp
ab8ad7:	c3                   	ret
ab8ad8:	cc                   	int3
ab8ad9:	cc                   	int3
ab8ada:	cc                   	int3
ab8adb:	cc                   	int3
ab8adc:	cc                   	int3
ab8add:	cc                   	int3
ab8ade:	cc                   	int3
ab8adf:	cc                   	int3
ab8ae0:	cc                   	int3
ab8ae1:	cc                   	int3
ab8ae2:	cc                   	int3
ab8ae3:	cc                   	int3
ab8ae4:	cc                   	int3
ab8ae5:	cc                   	int3
ab8ae6:	cc                   	int3
ab8ae7:	cc                   	int3
ab8ae8:	8b ff                	mov    %edi,%edi
ab8aea:	55                   	push   %ebp
ab8aeb:	8b ec                	mov    %esp,%ebp
ab8aed:	8b 55 08             	mov    0x8(%ebp),%edx
ab8af0:	8b ca                	mov    %edx,%ecx
ab8af2:	56                   	push   %esi
ab8af3:	8d 71 02             	lea    0x2(%ecx),%esi
ab8af6:	66 8b 01             	mov    (%ecx),%ax
ab8af9:	83 c1 02             	add    $0x2,%ecx
ab8afc:	66 85 c0             	test   %ax,%ax
ab8aff:	75 f5                	jne    0xab8af6
ab8b01:	2b ce                	sub    %esi,%ecx
ab8b03:	d1 f9                	sar    $1,%ecx
ab8b05:	5e                   	pop    %esi
ab8b06:	8d 04 4a             	lea    (%edx,%ecx,2),%eax
ab8b09:	3b d0                	cmp    %eax,%edx
ab8b0b:	75 04                	jne    0xab8b11
ab8b0d:	32 c0                	xor    %al,%al
ab8b0f:	5d                   	pop    %ebp
ab8b10:	c3                   	ret
ab8b11:	0f b7 40 fe          	movzwl -0x2(%eax),%eax
ab8b15:	83 f8 5c             	cmp    $0x5c,%eax
ab8b18:	74 f3                	je     0xab8b0d
ab8b1a:	83 f8 2f             	cmp    $0x2f,%eax
ab8b1d:	0f 95 c0             	setne  %al
ab8b20:	5d                   	pop    %ebp
ab8b21:	c3                   	ret
ab8b22:	cc                   	int3
ab8b23:	cc                   	int3
ab8b24:	cc                   	int3
ab8b25:	cc                   	int3
ab8b26:	cc                   	int3
ab8b27:	cc                   	int3
ab8b28:	cc                   	int3
ab8b29:	cc                   	int3
ab8b2a:	cc                   	int3
ab8b2b:	cc                   	int3
ab8b2c:	cc                   	int3
ab8b2d:	cc                   	int3
ab8b2e:	cc                   	int3
ab8b2f:	cc                   	int3
ab8b30:	8b ff                	mov    %edi,%edi
ab8b32:	56                   	push   %esi
ab8b33:	8b f1                	mov    %ecx,%esi
ab8b35:	83 3e ff             	cmpl   $0xffffffff,(%esi)
ab8b38:	74 0b                	je     0xab8b45
ab8b3a:	ff 36                	push   (%esi)
ab8b3c:	ff 15 84 36 d8 00    	call   *0xd83684
ab8b42:	83 0e ff             	orl    $0xffffffff,(%esi)
ab8b45:	5e                   	pop    %esi
ab8b46:	c3                   	ret
ab8b47:	cc                   	int3
ab8b48:	cc                   	int3
ab8b49:	cc                   	int3
ab8b4a:	cc                   	int3
ab8b4b:	cc                   	int3
ab8b4c:	8b 01                	mov    (%ecx),%eax
ab8b4e:	85 c0                	test   %eax,%eax
ab8b50:	74 09                	je     0xab8b5b
ab8b52:	33 d2                	xor    %edx,%edx
ab8b54:	89 50 04             	mov    %edx,0x4(%eax)
ab8b57:	89 10                	mov    %edx,(%eax)
ab8b59:	89 11                	mov    %edx,(%ecx)
ab8b5b:	c3                   	ret
ab8b5c:	cc                   	int3
ab8b5d:	cc                   	int3
ab8b5e:	cc                   	int3
ab8b5f:	cc                   	int3
ab8b60:	8b ff                	mov    %edi,%edi
ab8b62:	56                   	push   %esi
ab8b63:	8b f1                	mov    %ecx,%esi
ab8b65:	83 3e 00             	cmpl   $0x0,(%esi)
ab8b68:	74 0b                	je     0xab8b75
ab8b6a:	ff 36                	push   (%esi)
ab8b6c:	e8 b2 a7 94 ff       	call   0x403323
ab8b71:	83 26 00             	andl   $0x0,(%esi)
ab8b74:	59                   	pop    %ecx
ab8b75:	5e                   	pop    %esi
ab8b76:	c3                   	ret
ab8b77:	cc                   	int3
ab8b78:	cc                   	int3
ab8b79:	cc                   	int3
ab8b7a:	cc                   	int3
ab8b7b:	cc                   	int3
ab8b7c:	8b ff                	mov    %edi,%edi
ab8b7e:	55                   	push   %ebp
ab8b7f:	8b ec                	mov    %esp,%ebp
ab8b81:	ff 75 08             	push   0x8(%ebp)
ab8b84:	ff 15 84 36 d8 00    	call   *0xd83684
ab8b8a:	f7 d8                	neg    %eax
ab8b8c:	1b c0                	sbb    %eax,%eax
ab8b8e:	f7 d8                	neg    %eax
ab8b90:	5d                   	pop    %ebp
ab8b91:	c3                   	ret
ab8b92:	cc                   	int3
ab8b93:	cc                   	int3
ab8b94:	cc                   	int3
ab8b95:	cc                   	int3
ab8b96:	cc                   	int3
ab8b97:	8b ff                	mov    %edi,%edi
ab8b99:	55                   	push   %ebp
ab8b9a:	8b ec                	mov    %esp,%ebp
ab8b9c:	8b 45 08             	mov    0x8(%ebp),%eax
ab8b9f:	83 60 04 00          	andl   $0x0,0x4(%eax)
ab8ba3:	83 20 00             	andl   $0x0,(%eax)
ab8ba6:	b0 01                	mov    $0x1,%al
ab8ba8:	5d                   	pop    %ebp
ab8ba9:	c3                   	ret
ab8baa:	cc                   	int3
ab8bab:	cc                   	int3
ab8bac:	cc                   	int3
ab8bad:	cc                   	int3
ab8bae:	8b ff                	mov    %edi,%edi
ab8bb0:	55                   	push   %ebp
ab8bb1:	8b ec                	mov    %esp,%ebp
ab8bb3:	ff 75 08             	push   0x8(%ebp)
ab8bb6:	e8 68 a7 94 ff       	call   0x403323
ab8bbb:	59                   	pop    %ecx
ab8bbc:	b0 01                	mov    $0x1,%al
ab8bbe:	5d                   	pop    %ebp
ab8bbf:	c3                   	ret
ab8bc0:	cc                   	int3
ab8bc1:	cc                   	int3
ab8bc2:	cc                   	int3
ab8bc3:	cc                   	int3
ab8bc4:	8b 01                	mov    (%ecx),%eax
ab8bc6:	83 21 00             	andl   $0x0,(%ecx)
ab8bc9:	c3                   	ret
ab8bca:	8b 01                	mov    (%ecx),%eax
ab8bcc:	83 21 00             	andl   $0x0,(%ecx)
ab8bcf:	c3                   	ret
ab8bd0:	8b 01                	mov    (%ecx),%eax
ab8bd2:	83 21 00             	andl   $0x0,(%ecx)
ab8bd5:	c3                   	ret
ab8bd6:	8b 01                	mov    (%ecx),%eax
ab8bd8:	c3                   	ret
ab8bd9:	8b 01                	mov    (%ecx),%eax
ab8bdb:	c3                   	ret
ab8bdc:	8b 01                	mov    (%ecx),%eax
ab8bde:	c3                   	ret
ab8bdf:	8b 01                	mov    (%ecx),%eax
ab8be1:	c3                   	ret
ab8be2:	8b c1                	mov    %ecx,%eax
ab8be4:	c3                   	ret
ab8be5:	83 c8 ff             	or     $0xffffffff,%eax
ab8be8:	c3                   	ret
ab8be9:	33 c0                	xor    %eax,%eax
ab8beb:	c3                   	ret
ab8bec:	33 c0                	xor    %eax,%eax
ab8bee:	c3                   	ret
ab8bef:	8b ff                	mov    %edi,%edi
ab8bf1:	55                   	push   %ebp
ab8bf2:	8b ec                	mov    %esp,%ebp
ab8bf4:	8b 15 30 19 d8 00    	mov    0xd81930,%edx
ab8bfa:	8b c2                	mov    %edx,%eax
ab8bfc:	8b 0d 2c 19 d8 00    	mov    0xd8192c,%ecx
ab8c02:	56                   	push   %esi
ab8c03:	8b 75 08             	mov    0x8(%ebp),%esi
ab8c06:	57                   	push   %edi
ab8c07:	8d 3c ca             	lea    (%edx,%ecx,8),%edi
ab8c0a:	3b d7                	cmp    %edi,%edx
ab8c0c:	74 0b                	je     0xab8c19
ab8c0e:	39 30                	cmp    %esi,(%eax)
ab8c10:	74 4c                	je     0xab8c5e
ab8c12:	83 c0 08             	add    $0x8,%eax
ab8c15:	3b c7                	cmp    %edi,%eax
ab8c17:	75 f5                	jne    0xab8c0e
ab8c19:	85 f6                	test   %esi,%esi
ab8c1b:	74 04                	je     0xab8c21
ab8c1d:	33 c0                	xor    %eax,%eax
ab8c1f:	eb 3d                	jmp    0xab8c5e
ab8c21:	8d 41 01             	lea    0x1(%ecx),%eax
ab8c24:	3b c1                	cmp    %ecx,%eax
ab8c26:	72 f5                	jb     0xab8c1d
ab8c28:	3d ff ff ff 1f       	cmp    $0x1fffffff,%eax
ab8c2d:	73 ee                	jae    0xab8c1d
ab8c2f:	6a 08                	push   $0x8
ab8c31:	50                   	push   %eax
ab8c32:	52                   	push   %edx
ab8c33:	e8 b3 15 95 ff       	call   0x40a1eb
ab8c38:	6a 00                	push   $0x0
ab8c3a:	8b f0                	mov    %eax,%esi
ab8c3c:	e8 a5 95 97 ff       	call   0x4321e6
ab8c41:	83 c4 10             	add    $0x10,%esp
ab8c44:	85 f6                	test   %esi,%esi
ab8c46:	74 d5                	je     0xab8c1d
ab8c48:	8b 0d 2c 19 d8 00    	mov    0xd8192c,%ecx
ab8c4e:	89 35 30 19 d8 00    	mov    %esi,0xd81930
ab8c54:	8d 04 ce             	lea    (%esi,%ecx,8),%eax
ab8c57:	41                   	inc    %ecx
ab8c58:	89 0d 2c 19 d8 00    	mov    %ecx,0xd8192c
ab8c5e:	5f                   	pop    %edi
ab8c5f:	5e                   	pop    %esi
ab8c60:	5d                   	pop    %ebp
ab8c61:	c3                   	ret
ab8c62:	cc                   	int3
ab8c63:	cc                   	int3
ab8c64:	cc                   	int3
ab8c65:	cc                   	int3
ab8c66:	cc                   	int3
ab8c67:	cc                   	int3
ab8c68:	cc                   	int3
ab8c69:	cc                   	int3
ab8c6a:	cc                   	int3
ab8c6b:	cc                   	int3
ab8c6c:	cc                   	int3
ab8c6d:	cc                   	int3
ab8c6e:	cc                   	int3
ab8c6f:	cc                   	int3
ab8c70:	cc                   	int3
ab8c71:	cc                   	int3
ab8c72:	cc                   	int3
ab8c73:	cc                   	int3
ab8c74:	cc                   	int3
ab8c75:	cc                   	int3
ab8c76:	cc                   	int3
ab8c77:	cc                   	int3
ab8c78:	cc                   	int3
ab8c79:	cc                   	int3
ab8c7a:	cc                   	int3
ab8c7b:	cc                   	int3
ab8c7c:	cc                   	int3
ab8c7d:	cc                   	int3
ab8c7e:	33 c0                	xor    %eax,%eax
ab8c80:	39 01                	cmp    %eax,(%ecx)
ab8c82:	0f 95 c0             	setne  %al
ab8c85:	c3                   	ret
ab8c86:	cc                   	int3
ab8c87:	cc                   	int3
ab8c88:	33 c0                	xor    %eax,%eax
ab8c8a:	39 01                	cmp    %eax,(%ecx)
ab8c8c:	0f 95 c0             	setne  %al
ab8c8f:	c3                   	ret
ab8c90:	cc                   	int3
ab8c91:	cc                   	int3
ab8c92:	8b ff                	mov    %edi,%edi
ab8c94:	56                   	push   %esi
ab8c95:	8b f1                	mov    %ecx,%esi
ab8c97:	ff 36                	push   (%esi)
ab8c99:	e8 48 95 97 ff       	call   0x4321e6
ab8c9e:	83 26 00             	andl   $0x0,(%esi)
ab8ca1:	59                   	pop    %ecx
ab8ca2:	5e                   	pop    %esi
ab8ca3:	c3                   	ret
ab8ca4:	cc                   	int3
ab8ca5:	cc                   	int3
ab8ca6:	cc                   	int3
ab8ca7:	cc                   	int3
ab8ca8:	8b ff                	mov    %edi,%edi
ab8caa:	56                   	push   %esi
ab8cab:	8b f1                	mov    %ecx,%esi
ab8cad:	ff 36                	push   (%esi)
ab8caf:	e8 32 95 97 ff       	call   0x4321e6
ab8cb4:	83 26 00             	andl   $0x0,(%esi)
ab8cb7:	59                   	pop    %ecx
ab8cb8:	5e                   	pop    %esi
ab8cb9:	c3                   	ret
ab8cba:	cc                   	int3
ab8cbb:	cc                   	int3
ab8cbc:	cc                   	int3
ab8cbd:	cc                   	int3
ab8cbe:	8b ff                	mov    %edi,%edi
ab8cc0:	56                   	push   %esi
ab8cc1:	8b f1                	mov    %ecx,%esi
ab8cc3:	ff 36                	push   (%esi)
ab8cc5:	e8 1c 95 97 ff       	call   0x4321e6
ab8cca:	83 26 00             	andl   $0x0,(%esi)
ab8ccd:	59                   	pop    %ecx
ab8cce:	5e                   	pop    %esi
ab8ccf:	c3                   	ret
ab8cd0:	cc                   	int3
ab8cd1:	cc                   	int3
ab8cd2:	cc                   	int3
ab8cd3:	cc                   	int3
ab8cd4:	6a 10                	push   $0x10
ab8cd6:	68 c0 be d4 00       	push   $0xd4bec0
ab8cdb:	e8 94 b6 97 ff       	call   0x434374
ab8ce0:	33 c0                	xor    %eax,%eax
ab8ce2:	8b 75 08             	mov    0x8(%ebp),%esi
ab8ce5:	85 f6                	test   %esi,%esi
ab8ce7:	0f 95 c0             	setne  %al
ab8cea:	85 c0                	test   %eax,%eax
ab8cec:	75 18                	jne    0xab8d06
ab8cee:	e8 7c 5b 98 ff       	call   0x43e86f
ab8cf3:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab8cf9:	e8 fa 65 96 ff       	call   0x41f2f8
ab8cfe:	83 c8 ff             	or     $0xffffffff,%eax
ab8d01:	e9 90 00 00 00       	jmp    0xab8d96
ab8d06:	83 cf ff             	or     $0xffffffff,%edi
ab8d09:	89 7d e0             	mov    %edi,-0x20(%ebp)
ab8d0c:	6a 0a                	push   $0xa
ab8d0e:	e8 7d a5 96 ff       	call   0x423290
ab8d13:	59                   	pop    %ecx
ab8d14:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
ab8d18:	56                   	push   %esi
ab8d19:	e8 d1 fe ff ff       	call   0xab8bef
ab8d1e:	59                   	pop    %ecx
ab8d1f:	8b d8                	mov    %eax,%ebx
ab8d21:	85 db                	test   %ebx,%ebx
ab8d23:	75 0d                	jne    0xab8d32
ab8d25:	e8 45 5b 98 ff       	call   0x43e86f
ab8d2a:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
ab8d30:	eb 56                	jmp    0xab8d88
ab8d32:	56                   	push   %esi
ab8d33:	e8 eb a5 94 ff       	call   0x403323
ab8d38:	8b 73 04             	mov    0x4(%ebx),%esi
ab8d3b:	83 23 00             	andl   $0x0,(%ebx)
ab8d3e:	83 63 04 00          	andl   $0x0,0x4(%ebx)
ab8d42:	e8 28 5b 98 ff       	call   0x43e86f