ad6b7e:	8b ff                	mov    %edi,%edi
ad6b80:	55                   	push   %ebp
ad6b81:	8b ec                	mov    %esp,%ebp
ad6b83:	56                   	push   %esi
ad6b84:	8b 75 08             	mov    0x8(%ebp),%esi
ad6b87:	57                   	push   %edi
ad6b88:	85 f6                	test   %esi,%esi
ad6b8a:	74 11                	je     0xad6b9d
ad6b8c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
ad6b8f:	85 c9                	test   %ecx,%ecx
ad6b91:	74 0a                	je     0xad6b9d
ad6b93:	8b 7d 10             	mov    0x10(%ebp),%edi
ad6b96:	85 ff                	test   %edi,%edi
ad6b98:	75 18                	jne    0xad6bb2
ad6b9a:	c6 06 00             	movb   $0x0,(%esi)
ad6b9d:	e8 cd 7c 96 ff       	call   0x43e86f
ad6ba2:	6a 16                	push   $0x16
ad6ba4:	5e                   	pop    %esi
ad6ba5:	89 30                	mov    %esi,(%eax)
ad6ba7:	e8 4c 87 94 ff       	call   0x41f2f8
ad6bac:	8b c6                	mov    %esi,%eax
ad6bae:	5f                   	pop    %edi
ad6baf:	5e                   	pop    %esi
ad6bb0:	5d                   	pop    %ebp
ad6bb1:	c3                   	ret
ad6bb2:	8b d6                	mov    %esi,%edx
ad6bb4:	80 3a 00             	cmpb   $0x0,(%edx)
ad6bb7:	74 06                	je     0xad6bbf
ad6bb9:	42                   	inc    %edx
ad6bba:	83 e9 01             	sub    $0x1,%ecx
ad6bbd:	75 f5                	jne    0xad6bb4
ad6bbf:	85 c9                	test   %ecx,%ecx
ad6bc1:	74 d7                	je     0xad6b9a
ad6bc3:	2b fa                	sub    %edx,%edi
ad6bc5:	8a 04 17             	mov    (%edi,%edx,1),%al
ad6bc8:	88 02                	mov    %al,(%edx)
ad6bca:	42                   	inc    %edx
ad6bcb:	84 c0                	test   %al,%al
ad6bcd:	74 05                	je     0xad6bd4
ad6bcf:	83 e9 01             	sub    $0x1,%ecx
ad6bd2:	75 f1                	jne    0xad6bc5
ad6bd4:	85 c9                	test   %ecx,%ecx
ad6bd6:	75 0b                	jne    0xad6be3
ad6bd8:	88 0e                	mov    %cl,(%esi)
ad6bda:	e8 90 7c 96 ff       	call   0x43e86f
ad6bdf:	6a 22                	push   $0x22
ad6be1:	eb c1                	jmp    0xad6ba4
ad6be3:	33 c0                	xor    %eax,%eax
ad6be5:	eb c7                	jmp    0xad6bae
ad6be7:	cc                   	int3
ad6be8:	cc                   	int3
ad6be9:	cc                   	int3
ad6bea:	cc                   	int3
ad6beb:	cc                   	int3
ad6bec:	cc                   	int3
ad6bed:	cc                   	int3
ad6bee:	cc                   	int3
ad6bef:	cc                   	int3
ad6bf0:	cc                   	int3
ad6bf1:	cc                   	int3
ad6bf2:	cc                   	int3
ad6bf3:	cc                   	int3
ad6bf4:	cc                   	int3
ad6bf5:	cc                   	int3
ad6bf6:	cc                   	int3
ad6bf7:	cc                   	int3
ad6bf8:	cc                   	int3
ad6bf9:	cc                   	int3
ad6bfa:	cc                   	int3
ad6bfb:	cc                   	int3
ad6bfc:	cc                   	int3
ad6bfd:	cc                   	int3
ad6bfe:	cc                   	int3
ad6bff:	cc                   	int3
ad6c00:	cc                   	int3
ad6c01:	8b ff                	mov    %edi,%edi
ad6c03:	55                   	push   %ebp
ad6c04:	8b ec                	mov    %esp,%ebp
ad6c06:	56                   	push   %esi
ad6c07:	8b 75 08             	mov    0x8(%ebp),%esi
ad6c0a:	57                   	push   %edi
ad6c0b:	85 f6                	test   %esi,%esi
ad6c0d:	74 11                	je     0xad6c20
ad6c0f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
ad6c12:	85 c9                	test   %ecx,%ecx
ad6c14:	74 0a                	je     0xad6c20
ad6c16:	8b 7d 10             	mov    0x10(%ebp),%edi
ad6c19:	85 ff                	test   %edi,%edi
ad6c1b:	75 18                	jne    0xad6c35
ad6c1d:	c6 06 00             	movb   $0x0,(%esi)
ad6c20:	e8 4a 7c 96 ff       	call   0x43e86f
ad6c25:	6a 16                	push   $0x16
ad6c27:	5e                   	pop    %esi
ad6c28:	89 30                	mov    %esi,(%eax)
ad6c2a:	e8 c9 86 94 ff       	call   0x41f2f8
ad6c2f:	5f                   	pop    %edi
ad6c30:	8b c6                	mov    %esi,%eax
ad6c32:	5e                   	pop    %esi
ad6c33:	5d                   	pop    %ebp
ad6c34:	c3                   	ret
ad6c35:	8b d6                	mov    %esi,%edx
ad6c37:	80 3a 00             	cmpb   $0x0,(%edx)
ad6c3a:	74 06                	je     0xad6c42
ad6c3c:	42                   	inc    %edx
ad6c3d:	83 e9 01             	sub    $0x1,%ecx
ad6c40:	75 f5                	jne    0xad6c37
ad6c42:	85 c9                	test   %ecx,%ecx
ad6c44:	74 d7                	je     0xad6c1d
ad6c46:	2b fa                	sub    %edx,%edi
ad6c48:	8a 04 17             	mov    (%edi,%edx,1),%al
ad6c4b:	88 02                	mov    %al,(%edx)
ad6c4d:	42                   	inc    %edx
ad6c4e:	84 c0                	test   %al,%al
ad6c50:	74 05                	je     0xad6c57
ad6c52:	83 e9 01             	sub    $0x1,%ecx
ad6c55:	75 f1                	jne    0xad6c48
ad6c57:	85 c9                	test   %ecx,%ecx
ad6c59:	75 0b                	jne    0xad6c66
ad6c5b:	88 0e                	mov    %cl,(%esi)
ad6c5d:	e8 0d 7c 96 ff       	call   0x43e86f
ad6c62:	6a 22                	push   $0x22
ad6c64:	eb c1                	jmp    0xad6c27
ad6c66:	33 f6                	xor    %esi,%esi
ad6c68:	eb c5                	jmp    0xad6c2f
ad6c6a:	cc                   	int3
ad6c6b:	cc                   	int3
ad6c6c:	cc                   	int3
ad6c6d:	cc                   	int3
ad6c6e:	cc                   	int3
ad6c6f:	cc                   	int3
ad6c70:	cc                   	int3
ad6c71:	cc                   	int3
ad6c72:	cc                   	int3
ad6c73:	cc                   	int3
ad6c74:	cc                   	int3
ad6c75:	cc                   	int3
ad6c76:	cc                   	int3
ad6c77:	cc                   	int3
ad6c78:	cc                   	int3
ad6c79:	cc                   	int3
ad6c7a:	cc                   	int3
ad6c7b:	cc                   	int3
ad6c7c:	cc                   	int3
ad6c7d:	cc                   	int3
ad6c7e:	cc                   	int3
ad6c7f:	cc                   	int3
ad6c80:	cc                   	int3
ad6c81:	cc                   	int3
ad6c82:	cc                   	int3
ad6c83:	cc                   	int3
ad6c84:	8b ff                	mov    %edi,%edi
ad6c86:	55                   	push   %ebp
ad6c87:	8b ec                	mov    %esp,%ebp
ad6c89:	51                   	push   %ecx
ad6c8a:	53                   	push   %ebx
ad6c8b:	56                   	push   %esi
ad6c8c:	57                   	push   %edi
ad6c8d:	8b 7d 08             	mov    0x8(%ebp),%edi
ad6c90:	83 cb ff             	or     $0xffffffff,%ebx
ad6c93:	85 ff                	test   %edi,%edi
ad6c95:	74 02                	je     0xad6c99
ad6c97:	89 1f                	mov    %ebx,(%edi)
ad6c99:	8b 75 0c             	mov    0xc(%ebp),%esi
ad6c9c:	3b f3                	cmp    %ebx,%esi
ad6c9e:	74 6e                	je     0xad6d0e
ad6ca0:	83 fe fe             	cmp    $0xfffffffe,%esi
ad6ca3:	74 69                	je     0xad6d0e
ad6ca5:	53                   	push   %ebx
ad6ca6:	56                   	push   %esi
ad6ca7:	ff 15 d4 35 d8 00    	call   *0xd835d4
ad6cad:	85 c0                	test   %eax,%eax
ad6caf:	75 1c                	jne    0xad6ccd
ad6cb1:	8d 45 fc             	lea    -0x4(%ebp),%eax
ad6cb4:	50                   	push   %eax
ad6cb5:	56                   	push   %esi
ad6cb6:	ff 15 dc 35 d8 00    	call   *0xd835dc
ad6cbc:	85 c0                	test   %eax,%eax
ad6cbe:	74 0d                	je     0xad6ccd
ad6cc0:	85 ff                	test   %edi,%edi
ad6cc2:	74 05                	je     0xad6cc9
ad6cc4:	8b 45 fc             	mov    -0x4(%ebp),%eax
ad6cc7:	89 07                	mov    %eax,(%edi)
ad6cc9:	8b fe                	mov    %esi,%edi
ad6ccb:	eb 32                	jmp    0xad6cff
ad6ccd:	ff 15 d4 36 d8 00    	call   *0xd836d4
ad6cd3:	83 f8 06             	cmp    $0x6,%eax
ad6cd6:	75 18                	jne    0xad6cf0
ad6cd8:	e8 92 7b 96 ff       	call   0x43e86f
ad6cdd:	c7 00 0a 00 00 00    	movl   $0xa,(%eax)
ad6ce3:	e8 cc 7f 93 ff       	call   0x40ecb4
ad6ce8:	c7 00 06 00 00 00    	movl   $0x6,(%eax)
ad6cee:	eb 07                	jmp    0xad6cf7
ad6cf0:	50                   	push   %eax
ad6cf1:	e8 df 8b 93 ff       	call   0x40f8d5
ad6cf6:	59                   	pop    %ecx
ad6cf7:	85 ff                	test   %edi,%edi
ad6cf9:	74 02                	je     0xad6cfd
ad6cfb:	89 1f                	mov    %ebx,(%edi)
ad6cfd:	8b fb                	mov    %ebx,%edi
ad6cff:	3b f3                	cmp    %ebx,%esi
ad6d01:	74 07                	je     0xad6d0a
ad6d03:	56                   	push   %esi
ad6d04:	ff 15 84 36 d8 00    	call   *0xd83684
ad6d0a:	8b c7                	mov    %edi,%eax
ad6d0c:	eb 0d                	jmp    0xad6d1b
ad6d0e:	e8 5c 7b 96 ff       	call   0x43e86f
ad6d13:	c7 00 0a 00 00 00    	movl   $0xa,(%eax)
ad6d19:	8b c3                	mov    %ebx,%eax
ad6d1b:	5f                   	pop    %edi
ad6d1c:	5e                   	pop    %esi
ad6d1d:	5b                   	pop    %ebx
ad6d1e:	8b e5                	mov    %ebp,%esp
ad6d20:	5d                   	pop    %ebp
ad6d21:	c3                   	ret
ad6d22:	cc                   	int3
ad6d23:	cc                   	int3
ad6d24:	cc                   	int3
ad6d25:	cc                   	int3
ad6d26:	cc                   	int3
ad6d27:	cc                   	int3
ad6d28:	cc                   	int3
ad6d29:	cc                   	int3
ad6d2a:	cc                   	int3
ad6d2b:	cc                   	int3
ad6d2c:	cc                   	int3
ad6d2d:	cc                   	int3
ad6d2e:	cc                   	int3
ad6d2f:	cc                   	int3
ad6d30:	cc                   	int3
ad6d31:	cc                   	int3
ad6d32:	cc                   	int3
ad6d33:	cc                   	int3
ad6d34:	cc                   	int3
ad6d35:	cc                   	int3
ad6d36:	cc                   	int3
ad6d37:	cc                   	int3
ad6d38:	cc                   	int3
ad6d39:	cc                   	int3
ad6d3a:	cc                   	int3
ad6d3b:	cc                   	int3
ad6d3c:	cc                   	int3
ad6d3d:	cc                   	int3
ad6d3e:	cc                   	int3
ad6d3f:	cc                   	int3
ad6d40:	cc                   	int3
ad6d41:	cc                   	int3
ad6d42:	cc                   	int3
ad6d43:	cc                   	int3
ad6d44:	cc                   	int3
ad6d45:	cc                   	int3
ad6d46:	cc                   	int3
ad6d47:	cc                   	int3
ad6d48:	cc                   	int3
ad6d49:	8b ff                	mov    %edi,%edi
ad6d4b:	55                   	push   %ebp
ad6d4c:	8b ec                	mov    %esp,%ebp
ad6d4e:	8b 45 0c             	mov    0xc(%ebp),%eax
ad6d51:	85 c0                	test   %eax,%eax
ad6d53:	75 0f                	jne    0xad6d64
ad6d55:	e8 15 7b 96 ff       	call   0x43e86f
ad6d5a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
ad6d60:	33 c0                	xor    %eax,%eax
ad6d62:	5d                   	pop    %ebp
ad6d63:	c3                   	ret
ad6d64:	8b 55 10             	mov    0x10(%ebp),%edx
ad6d67:	85 d2                	test   %edx,%edx
ad6d69:	74 03                	je     0xad6d6e
ad6d6b:	c6 00 00             	movb   $0x0,(%eax)
ad6d6e:	83 fa 01             	cmp    $0x1,%edx
ad6d71:	76 e2                	jbe    0xad6d55
ad6d73:	8b 4d 08             	mov    0x8(%ebp),%ecx
ad6d76:	53                   	push   %ebx
ad6d77:	6a 3b                	push   $0x3b
ad6d79:	5b                   	pop    %ebx
ad6d7a:	eb 01                	jmp    0xad6d7d
ad6d7c:	41                   	inc    %ecx
ad6d7d:	38 19                	cmp    %bl,(%ecx)
ad6d7f:	74 fb                	je     0xad6d7c
ad6d81:	56                   	push   %esi
ad6d82:	8d 72 ff             	lea    -0x1(%edx),%esi
ad6d85:	57                   	push   %edi
ad6d86:	8b f9                	mov    %ecx,%edi
ad6d88:	03 f0                	add    %eax,%esi
ad6d8a:	eb 33                	jmp    0xad6dbf
ad6d8c:	3a d3                	cmp    %bl,%dl
ad6d8e:	74 49                	je     0xad6dd9
ad6d90:	80 fa 22             	cmp    $0x22,%dl
ad6d93:	75 22                	jne    0xad6db7
ad6d95:	41                   	inc    %ecx
ad6d96:	8a 11                	mov    (%ecx),%dl
ad6d98:	84 d2                	test   %dl,%dl
ad6d9a:	74 3e                	je     0xad6dda
ad6d9c:	80 fa 22             	cmp    $0x22,%dl
ad6d9f:	74 0e                	je     0xad6daf
ad6da1:	88 10                	mov    %dl,(%eax)
ad6da3:	40                   	inc    %eax
ad6da4:	41                   	inc    %ecx
ad6da5:	3b c6                	cmp    %esi,%eax
ad6da7:	74 1e                	je     0xad6dc7
ad6da9:	8a 11                	mov    (%ecx),%dl
ad6dab:	84 d2                	test   %dl,%dl
ad6dad:	75 ed                	jne    0xad6d9c
ad6daf:	80 39 00             	cmpb   $0x0,(%ecx)
ad6db2:	74 26                	je     0xad6dda
ad6db4:	41                   	inc    %ecx
ad6db5:	eb 08                	jmp    0xad6dbf
ad6db7:	88 10                	mov    %dl,(%eax)
ad6db9:	40                   	inc    %eax
ad6dba:	41                   	inc    %ecx
ad6dbb:	3b c6                	cmp    %esi,%eax
ad6dbd:	74 08                	je     0xad6dc7
ad6dbf:	8a 11                	mov    (%ecx),%dl
ad6dc1:	84 d2                	test   %dl,%dl
ad6dc3:	75 c7                	jne    0xad6d8c
ad6dc5:	eb 13                	jmp    0xad6dda
ad6dc7:	c6 00 00             	movb   $0x0,(%eax)
ad6dca:	e8 a0 7a 96 ff       	call   0x43e86f
ad6dcf:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
ad6dd5:	33 c0                	xor    %eax,%eax
ad6dd7:	eb 12                	jmp    0xad6deb
ad6dd9:	41                   	inc    %ecx
ad6dda:	38 19                	cmp    %bl,(%ecx)
ad6ddc:	74 fb                	je     0xad6dd9
ad6dde:	c6 00 00             	movb   $0x0,(%eax)
ad6de1:	8b c1                	mov    %ecx,%eax
ad6de3:	2b c7                	sub    %edi,%eax
ad6de5:	f7 d8                	neg    %eax
ad6de7:	1b c0                	sbb    %eax,%eax
ad6de9:	23 c1                	and    %ecx,%eax
ad6deb:	5f                   	pop    %edi
ad6dec:	5e                   	pop    %esi
ad6ded:	5b                   	pop    %ebx
ad6dee:	5d                   	pop    %ebp
ad6def:	c3                   	ret
ad6df0:	cc                   	int3
ad6df1:	cc                   	int3
ad6df2:	cc                   	int3
ad6df3:	cc                   	int3
ad6df4:	cc                   	int3
ad6df5:	cc                   	int3
ad6df6:	cc                   	int3
ad6df7:	cc                   	int3
ad6df8:	cc                   	int3
ad6df9:	cc                   	int3
ad6dfa:	cc                   	int3
ad6dfb:	cc                   	int3
ad6dfc:	cc                   	int3
ad6dfd:	cc                   	int3
ad6dfe:	cc                   	int3
ad6dff:	cc                   	int3