ab6984:	a8 c0                	test   $0xc0,%al
ab6986:	6a 00                	push   $0x0
ab6988:	58                   	pop    %eax
ab6989:	0f 95 c0             	setne  %al
ab698c:	c3                   	ret
ab698d:	cc                   	int3
ab698e:	cc                   	int3
ab698f:	cc                   	int3
ab6990:	8b 01                	mov    (%ecx),%eax
ab6992:	8b 40 0c             	mov    0xc(%eax),%eax
ab6995:	c1 e8 06             	shr    $0x6,%eax
ab6998:	83 e0 01             	and    $0x1,%eax
ab699b:	c3                   	ret
ab699c:	cc                   	int3
ab699d:	cc                   	int3
ab699e:	cc                   	int3
ab699f:	8b 01                	mov    (%ecx),%eax
ab69a1:	8b 40 0c             	mov    0xc(%eax),%eax
ab69a4:	c1 e8 08             	shr    $0x8,%eax
ab69a7:	83 e0 01             	and    $0x1,%eax
ab69aa:	c3                   	ret
ab69ab:	cc                   	int3
ab69ac:	cc                   	int3
ab69ad:	cc                   	int3
ab69ae:	8b ff                	mov    %edi,%edi
ab69b0:	55                   	push   %ebp
ab69b1:	8b ec                	mov    %esp,%ebp
ab69b3:	5d                   	pop    %ebp
ab69b4:	e9 a2 f9 ff ff       	jmp    0xab635b
ab69b9:	cc                   	int3
ab69ba:	cc                   	int3
ab69bb:	8b ff                	mov    %edi,%edi
ab69bd:	55                   	push   %ebp
ab69be:	8b ec                	mov    %esp,%ebp
ab69c0:	5d                   	pop    %ebp
ab69c1:	e9 fa f8 ff ff       	jmp    0xab62c0
ab69c6:	cc                   	int3
ab69c7:	cc                   	int3
ab69c8:	8b ff                	mov    %edi,%edi
ab69ca:	55                   	push   %ebp
ab69cb:	8b ec                	mov    %esp,%ebp
ab69cd:	5d                   	pop    %ebp
ab69ce:	e9 bd f9 ff ff       	jmp    0xab6390
ab69d3:	cc                   	int3
ab69d4:	cc                   	int3
ab69d5:	8b ff                	mov    %edi,%edi
ab69d7:	55                   	push   %ebp
ab69d8:	8b ec                	mov    %esp,%ebp
ab69da:	5d                   	pop    %ebp
ab69db:	e9 58 f8 ff ff       	jmp    0xab6238
ab69e0:	cc                   	int3
ab69e1:	cc                   	int3
ab69e2:	6a 0c                	push   $0xc
ab69e4:	68 d0 bd d4 00       	push   $0xd4bdd0
ab69e9:	e8 86 d9 97 ff       	call   0x434374
ab69ee:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
ab69f2:	8b 45 08             	mov    0x8(%ebp),%eax
ab69f5:	ff 30                	push   (%eax)
ab69f7:	e8 d9 f7 95 ff       	call   0x4161d5
ab69fc:	59                   	pop    %ecx
ab69fd:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
ab6a01:	8b 4d 0c             	mov    0xc(%ebp),%ecx
ab6a04:	e8 d1 00 00 00       	call   0xab6ada
ab6a09:	8b f0                	mov    %eax,%esi
ab6a0b:	89 75 e4             	mov    %esi,-0x1c(%ebp)
ab6a0e:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
ab6a15:	e8 0d 00 00 00       	call   0xab6a27
ab6a1a:	8b c6                	mov    %esi,%eax
ab6a1c:	e8 94 2f 97 ff       	call   0x4299b5
ab6a21:	c2 0c 00             	ret    $0xc
ab6a24:	8b 75 e4             	mov    -0x1c(%ebp),%esi
ab6a27:	8b 45 10             	mov    0x10(%ebp),%eax
ab6a2a:	ff 30                	push   (%eax)
ab6a2c:	e8 87 f5 96 ff       	call   0x425fb8
ab6a31:	59                   	pop    %ecx
ab6a32:	c3                   	ret
ab6a33:	cc                   	int3
ab6a34:	cc                   	int3
ab6a35:	cc                   	int3
ab6a36:	cc                   	int3
ab6a37:	cc                   	int3
ab6a38:	cc                   	int3
ab6a39:	cc                   	int3
ab6a3a:	cc                   	int3
ab6a3b:	cc                   	int3
ab6a3c:	cc                   	int3
ab6a3d:	cc                   	int3
ab6a3e:	cc                   	int3
ab6a3f:	cc                   	int3
ab6a40:	cc                   	int3
ab6a41:	cc                   	int3
ab6a42:	cc                   	int3
ab6a43:	cc                   	int3
ab6a44:	cc                   	int3
ab6a45:	cc                   	int3
ab6a46:	cc                   	int3
ab6a47:	8b ff                	mov    %edi,%edi
ab6a49:	55                   	push   %ebp
ab6a4a:	8b ec                	mov    %esp,%ebp
ab6a4c:	83 ec 0c             	sub    $0xc,%esp
ab6a4f:	8b 45 08             	mov    0x8(%ebp),%eax
ab6a52:	8d 4d ff             	lea    -0x1(%ebp),%ecx
ab6a55:	89 45 f8             	mov    %eax,-0x8(%ebp)
ab6a58:	89 45 f4             	mov    %eax,-0xc(%ebp)
ab6a5b:	8d 45 f8             	lea    -0x8(%ebp),%eax
ab6a5e:	50                   	push   %eax
ab6a5f:	ff 75 0c             	push   0xc(%ebp)
ab6a62:	8d 45 f4             	lea    -0xc(%ebp),%eax
ab6a65:	50                   	push   %eax
ab6a66:	e8 b4 e8 96 ff       	call   0x42531f
ab6a6b:	8b e5                	mov    %ebp,%esp
ab6a6d:	5d                   	pop    %ebp
ab6a6e:	c3                   	ret
ab6a6f:	cc                   	int3
ab6a70:	cc                   	int3
ab6a71:	cc                   	int3
ab6a72:	cc                   	int3
ab6a73:	cc                   	int3
ab6a74:	cc                   	int3
ab6a75:	cc                   	int3
ab6a76:	cc                   	int3
ab6a77:	cc                   	int3
ab6a78:	cc                   	int3
ab6a79:	8b ff                	mov    %edi,%edi
ab6a7b:	55                   	push   %ebp
ab6a7c:	8b ec                	mov    %esp,%ebp
ab6a7e:	8b 45 08             	mov    0x8(%ebp),%eax
ab6a81:	8b 00                	mov    (%eax),%eax
ab6a83:	89 01                	mov    %eax,(%ecx)
ab6a85:	8b c1                	mov    %ecx,%eax
ab6a87:	5d                   	pop    %ebp
ab6a88:	c2 04 00             	ret    $0x4
ab6a8b:	cc                   	int3
ab6a8c:	cc                   	int3
ab6a8d:	cc                   	int3
ab6a8e:	cc                   	int3
ab6a8f:	8b ff                	mov    %edi,%edi
ab6a91:	55                   	push   %ebp
ab6a92:	8b ec                	mov    %esp,%ebp
ab6a94:	8b 45 08             	mov    0x8(%ebp),%eax
ab6a97:	89 01                	mov    %eax,(%ecx)
ab6a99:	8b 45 0c             	mov    0xc(%ebp),%eax
ab6a9c:	89 41 04             	mov    %eax,0x4(%ecx)
ab6a9f:	8b 45 10             	mov    0x10(%ebp),%eax
ab6aa2:	89 41 08             	mov    %eax,0x8(%ecx)
ab6aa5:	8b 45 14             	mov    0x14(%ebp),%eax
ab6aa8:	89 41 0c             	mov    %eax,0xc(%ecx)
ab6aab:	8b c1                	mov    %ecx,%eax
ab6aad:	5d                   	pop    %ebp
ab6aae:	c2 10 00             	ret    $0x10
ab6ab1:	cc                   	int3
ab6ab2:	cc                   	int3
ab6ab3:	cc                   	int3
ab6ab4:	cc                   	int3
ab6ab5:	cc                   	int3
ab6ab6:	cc                   	int3
ab6ab7:	cc                   	int3
ab6ab8:	cc                   	int3
ab6ab9:	8b ff                	mov    %edi,%edi
ab6abb:	55                   	push   %ebp
ab6abc:	8b ec                	mov    %esp,%ebp
ab6abe:	8b 45 08             	mov    0x8(%ebp),%eax
ab6ac1:	8b 00                	mov    (%eax),%eax
ab6ac3:	89 01                	mov    %eax,(%ecx)
ab6ac5:	8b c1                	mov    %ecx,%eax
ab6ac7:	5d                   	pop    %ebp
ab6ac8:	c2 04 00             	ret    $0x4
ab6acb:	cc                   	int3
ab6acc:	cc                   	int3
ab6acd:	cc                   	int3
ab6ace:	cc                   	int3
ab6acf:	ff 31                	push   (%ecx)
ab6ad1:	e8 ff f6 95 ff       	call   0x4161d5
ab6ad6:	59                   	pop    %ecx
ab6ad7:	c3                   	ret
ab6ad8:	cc                   	int3
ab6ad9:	cc                   	int3
ab6ada:	8b ff                	mov    %edi,%edi
ab6adc:	55                   	push   %ebp
ab6add:	8b ec                	mov    %esp,%ebp
ab6adf:	51                   	push   %ecx
ab6ae0:	51                   	push   %ecx
ab6ae1:	56                   	push   %esi
ab6ae2:	8b f1                	mov    %ecx,%esi
ab6ae4:	57                   	push   %edi
ab6ae5:	8b 06                	mov    (%esi),%eax
ab6ae7:	8b 38                	mov    (%eax),%edi
ab6ae9:	57                   	push   %edi
ab6aea:	e8 f7 61 97 ff       	call   0x42cce6
ab6aef:	88 45 fc             	mov    %al,-0x4(%ebp)
ab6af2:	8b 06                	mov    (%esi),%eax
ab6af4:	ff 30                	push   (%eax)
ab6af6:	8b 46 0c             	mov    0xc(%esi),%eax
ab6af9:	ff 30                	push   (%eax)
ab6afb:	8b 46 08             	mov    0x8(%esi),%eax
ab6afe:	ff 30                	push   (%eax)
ab6b00:	8b 46 04             	mov    0x4(%esi),%eax
ab6b03:	ff 30                	push   (%eax)
ab6b05:	e8 6d 57 98 ff       	call   0x43c277
ab6b0a:	57                   	push   %edi
ab6b0b:	ff 75 fc             	push   -0x4(%ebp)
ab6b0e:	8b f0                	mov    %eax,%esi
ab6b10:	e8 c3 2d 98 ff       	call   0x4398d8
ab6b15:	83 c4 1c             	add    $0x1c,%esp
ab6b18:	8b c6                	mov    %esi,%eax
ab6b1a:	5f                   	pop    %edi
ab6b1b:	5e                   	pop    %esi
ab6b1c:	8b e5                	mov    %ebp,%esp
ab6b1e:	5d                   	pop    %ebp
ab6b1f:	c3                   	ret
ab6b20:	cc                   	int3
ab6b21:	cc                   	int3
ab6b22:	cc                   	int3
ab6b23:	cc                   	int3
ab6b24:	cc                   	int3
ab6b25:	cc                   	int3
ab6b26:	cc                   	int3
ab6b27:	cc                   	int3
ab6b28:	cc                   	int3
ab6b29:	cc                   	int3
ab6b2a:	cc                   	int3
ab6b2b:	cc                   	int3
ab6b2c:	cc                   	int3
ab6b2d:	cc                   	int3
ab6b2e:	cc                   	int3
ab6b2f:	cc                   	int3
ab6b30:	cc                   	int3
ab6b31:	ff 31                	push   (%ecx)
ab6b33:	e8 80 f4 96 ff       	call   0x425fb8
ab6b38:	59                   	pop    %ecx
ab6b39:	c3                   	ret
ab6b3a:	cc                   	int3
ab6b3b:	cc                   	int3
ab6b3c:	8b ff                	mov    %edi,%edi
ab6b3e:	55                   	push   %ebp
ab6b3f:	8b ec                	mov    %esp,%ebp
ab6b41:	83 ec 0c             	sub    $0xc,%esp
ab6b44:	53                   	push   %ebx
ab6b45:	56                   	push   %esi
ab6b46:	8b 75 0c             	mov    0xc(%ebp),%esi
ab6b49:	57                   	push   %edi
ab6b4a:	85 f6                	test   %esi,%esi
ab6b4c:	74 1e                	je     0xab6b6c
ab6b4e:	8b 7d 10             	mov    0x10(%ebp),%edi
ab6b51:	85 ff                	test   %edi,%edi
ab6b53:	74 17                	je     0xab6b6c
ab6b55:	8b 5d 14             	mov    0x14(%ebp),%ebx
ab6b58:	85 db                	test   %ebx,%ebx
ab6b5a:	75 19                	jne    0xab6b75
ab6b5c:	e8 0e 7d 98 ff       	call   0x43e86f
ab6b61:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ab6b67:	e8 8c 87 96 ff       	call   0x41f2f8
ab6b6c:	33 c0                	xor    %eax,%eax
ab6b6e:	5f                   	pop    %edi
ab6b6f:	5e                   	pop    %esi
ab6b70:	5b                   	pop    %ebx
ab6b71:	8b e5                	mov    %ebp,%esp
ab6b73:	5d                   	pop    %ebp
ab6b74:	c3                   	ret
ab6b75:	8b 4d 08             	mov    0x8(%ebp),%ecx
ab6b78:	85 c9                	test   %ecx,%ecx
ab6b7a:	74 e0                	je     0xab6b5c
ab6b7c:	83 c8 ff             	or     $0xffffffff,%eax
ab6b7f:	33 d2                	xor    %edx,%edx
ab6b81:	f7 f6                	div    %esi
ab6b83:	3b f8                	cmp    %eax,%edi
ab6b85:	77 d5                	ja     0xab6b5c
ab6b87:	8d 43 0c             	lea    0xc(%ebx),%eax
ab6b8a:	89 45 f4             	mov    %eax,-0xc(%ebp)
ab6b8d:	8b 00                	mov    (%eax),%eax
ab6b8f:	a9 c0 04 00 00       	test   $0x4c0,%eax
ab6b94:	74 05                	je     0xab6b9b
ab6b96:	8b 53 18             	mov    0x18(%ebx),%edx
ab6b99:	eb 05                	jmp    0xab6ba0
ab6b9b:	ba 00 10 00 00       	mov    $0x1000,%edx
ab6ba0:	0f af f7             	imul   %edi,%esi
ab6ba3:	89 55 fc             	mov    %edx,-0x4(%ebp)
ab6ba6:	8b fe                	mov    %esi,%edi
ab6ba8:	85 f6                	test   %esi,%esi
ab6baa:	0f 84 e6 00 00 00    	je     0xab6c96
ab6bb0:	8b 43 0c             	mov    0xc(%ebx),%eax
ab6bb3:	a8 c0                	test   $0xc0,%al
ab6bb5:	74 39                	je     0xab6bf0
ab6bb7:	8b 43 08             	mov    0x8(%ebx),%eax
ab6bba:	89 45 f8             	mov    %eax,-0x8(%ebp)
ab6bbd:	85 c0                	test   %eax,%eax
ab6bbf:	74 2f                	je     0xab6bf0
ab6bc1:	0f 88 d7 00 00 00    	js     0xab6c9e
ab6bc7:	3b f8                	cmp    %eax,%edi
ab6bc9:	73 05                	jae    0xab6bd0
ab6bcb:	8b c7                	mov    %edi,%eax
ab6bcd:	89 7d f8             	mov    %edi,-0x8(%ebp)
ab6bd0:	50                   	push   %eax
ab6bd1:	51                   	push   %ecx
ab6bd2:	ff 33                	push   (%ebx)
ab6bd4:	e8 a9 da 95 ff       	call   0x414682
ab6bd9:	8b 45 f8             	mov    -0x8(%ebp),%eax
ab6bdc:	83 c4 0c             	add    $0xc,%esp
ab6bdf:	29 43 08             	sub    %eax,0x8(%ebx)
ab6be2:	2b f8                	sub    %eax,%edi
ab6be4:	8b 4d 08             	mov    0x8(%ebp),%ecx
ab6be7:	01 03                	add    %eax,(%ebx)
ab6be9:	03 c8                	add    %eax,%ecx
ab6beb:	89 4d 08             	mov    %ecx,0x8(%ebp)
ab6bee:	eb 70                	jmp    0xab6c60
ab6bf0:	3b fa                	cmp    %edx,%edi
ab6bf2:	72 71                	jb     0xab6c65
ab6bf4:	8b 43 0c             	mov    0xc(%ebx),%eax
ab6bf7:	a8 c0                	test   $0xc0,%al
ab6bf9:	74 15                	je     0xab6c10
ab6bfb:	53                   	push   %ebx
ab6bfc:	e8 f6 3b 97 ff       	call   0x42a7f7
ab6c01:	59                   	pop    %ecx
ab6c02:	85 c0                	test   %eax,%eax
ab6c04:	0f 85 9d 00 00 00    	jne    0xab6ca7
ab6c0a:	8b 4d 08             	mov    0x8(%ebp),%ecx
ab6c0d:	8b 55 fc             	mov    -0x4(%ebp),%edx
ab6c10:	8b c7                	mov    %edi,%eax
ab6c12:	85 d2                	test   %edx,%edx
ab6c14:	74 0e                	je     0xab6c24
ab6c16:	33 d2                	xor    %edx,%edx
ab6c18:	f7 75 fc             	divl   -0x4(%ebp)
ab6c1b:	8b c7                	mov    %edi,%eax
ab6c1d:	2b c2                	sub    %edx,%eax
ab6c1f:	89 45 f8             	mov    %eax,-0x8(%ebp)
ab6c22:	eb 03                	jmp    0xab6c27
ab6c24:	89 7d f8             	mov    %edi,-0x8(%ebp)
ab6c27:	83 f8 fe             	cmp    $0xfffffffe,%eax
ab6c2a:	72 06                	jb     0xab6c32
ab6c2c:	6a fe                	push   $0xfffffffe
ab6c2e:	58                   	pop    %eax
ab6c2f:	89 45 f8             	mov    %eax,-0x8(%ebp)
ab6c32:	50                   	push   %eax
ab6c33:	51                   	push   %ecx
ab6c34:	53                   	push   %ebx
ab6c35:	e8 b0 5b 98 ff       	call   0x43c7ea
ab6c3a:	59                   	pop    %ecx
ab6c3b:	50                   	push   %eax
ab6c3c:	e8 83 d9 95 ff       	call   0x4145c4
ab6c41:	83 c4 0c             	add    $0xc,%esp
ab6c44:	83 f8 ff             	cmp    $0xffffffff,%eax
ab6c47:	74 55                	je     0xab6c9e
ab6c49:	8b 4d f8             	mov    -0x8(%ebp),%ecx
ab6c4c:	8b d1                	mov    %ecx,%edx
ab6c4e:	3b c1                	cmp    %ecx,%eax
ab6c50:	77 02                	ja     0xab6c54
ab6c52:	8b d0                	mov    %eax,%edx
ab6c54:	01 55 08             	add    %edx,0x8(%ebp)
ab6c57:	2b fa                	sub    %edx,%edi
ab6c59:	3b c1                	cmp    %ecx,%eax