412b23:	8b 75 f8             	mov    -0x8(%ebp),%esi
412b26:	33 d2                	xor    %edx,%edx
412b28:	8b c3                	mov    %ebx,%eax
412b2a:	f7 75 14             	divl   0x14(%ebp)
412b2d:	8b c3                	mov    %ebx,%eax
412b2f:	8b fe                	mov    %esi,%edi
412b31:	8b ca                	mov    %edx,%ecx
412b33:	33 d2                	xor    %edx,%edx
412b35:	f7 75 14             	divl   0x14(%ebp)
412b38:	6a 09                	push   $0x9
412b3a:	8b d8                	mov    %eax,%ebx
412b3c:	8d 56 02             	lea    0x2(%esi),%edx
412b3f:	58                   	pop    %eax
412b40:	3b c1                	cmp    %ecx,%eax
412b42:	1b c0                	sbb    %eax,%eax
412b44:	83 e0 27             	and    $0x27,%eax
412b47:	83 c0 30             	add    $0x30,%eax
412b4a:	66 03 c1             	add    %cx,%ax
412b4d:	8b 4d 10             	mov    0x10(%ebp),%ecx
412b50:	66 89 06             	mov    %ax,(%esi)
412b53:	8b 45 fc             	mov    -0x4(%ebp),%eax
412b56:	40                   	inc    %eax
412b57:	89 45 fc             	mov    %eax,-0x4(%ebp)
412b5a:	85 db                	test   %ebx,%ebx
412b5c:	74 06                	je     0x412b64
412b5e:	8b f2                	mov    %edx,%esi
412b60:	3b c1                	cmp    %ecx,%eax
412b62:	72 c2                	jb     0x412b26
412b64:	8b 75 f4             	mov    -0xc(%ebp),%esi
412b67:	3b c1                	cmp    %ecx,%eax
412b69:	72 1b                	jb     0x412b86
412b6b:	8b 45 0c             	mov    0xc(%ebp),%eax
412b6e:	33 c9                	xor    %ecx,%ecx
412b70:	66 89 08             	mov    %cx,(%eax)
412b73:	e8 f9 9a 00 00       	call   0x41c671
412b78:	6a 22                	push   $0x22
412b7a:	5e                   	pop    %esi
412b7b:	89 30                	mov    %esi,(%eax)
412b7d:	e8 6c a8 ff ff       	call   0x40d3ee
412b82:	8b c6                	mov    %esi,%eax
412b84:	eb 1d                	jmp    0x412ba3
412b86:	33 c0                	xor    %eax,%eax
412b88:	66 89 02             	mov    %ax,(%edx)
412b8b:	66 8b 06             	mov    (%esi),%ax
412b8e:	0f b7 0f             	movzwl (%edi),%ecx
412b91:	66 89 07             	mov    %ax,(%edi)
412b94:	83 ef 02             	sub    $0x2,%edi
412b97:	66 89 0e             	mov    %cx,(%esi)
412b9a:	83 c6 02             	add    $0x2,%esi
412b9d:	3b f7                	cmp    %edi,%esi
412b9f:	72 ea                	jb     0x412b8b
412ba1:	33 c0                	xor    %eax,%eax
412ba3:	5f                   	pop    %edi
412ba4:	5e                   	pop    %esi
412ba5:	5b                   	pop    %ebx
412ba6:	c9                   	leave
412ba7:	c3                   	ret
412ba8:	8b ff                	mov    %edi,%edi
412baa:	55                   	push   %ebp
412bab:	8b ec                	mov    %esp,%ebp
412bad:	83 ec 18             	sub    $0x18,%esp
412bb0:	8b 4d 10             	mov    0x10(%ebp),%ecx
412bb3:	8b d1                	mov    %ecx,%edx
412bb5:	8b 45 08             	mov    0x8(%ebp),%eax
412bb8:	53                   	push   %ebx
412bb9:	8b 5d 0c             	mov    0xc(%ebp),%ebx
412bbc:	56                   	push   %esi
412bbd:	33 f6                	xor    %esi,%esi
412bbf:	89 4d f8             	mov    %ecx,-0x8(%ebp)
412bc2:	80 7d 1c 00          	cmpb   $0x0,0x1c(%ebp)
412bc6:	57                   	push   %edi
412bc7:	89 75 fc             	mov    %esi,-0x4(%ebp)
412bca:	89 45 f4             	mov    %eax,-0xc(%ebp)
412bcd:	74 1a                	je     0x412be9
412bcf:	46                   	inc    %esi
412bd0:	f7 d8                	neg    %eax
412bd2:	6a 2d                	push   $0x2d
412bd4:	5a                   	pop    %edx
412bd5:	66 89 11             	mov    %dx,(%ecx)
412bd8:	83 d3 00             	adc    $0x0,%ebx
412bdb:	8d 51 02             	lea    0x2(%ecx),%edx
412bde:	89 75 fc             	mov    %esi,-0x4(%ebp)
412be1:	89 55 f8             	mov    %edx,-0x8(%ebp)
412be4:	f7 db                	neg    %ebx
412be6:	89 45 f4             	mov    %eax,-0xc(%ebp)
412be9:	8b 75 18             	mov    0x18(%ebp),%esi
412bec:	8b 7d f4             	mov    -0xc(%ebp),%edi
412bef:	89 55 ec             	mov    %edx,-0x14(%ebp)
412bf2:	89 75 f0             	mov    %esi,-0x10(%ebp)
412bf5:	6a 00                	push   $0x0
412bf7:	56                   	push   %esi
412bf8:	53                   	push   %ebx
412bf9:	57                   	push   %edi
412bfa:	89 55 e8             	mov    %edx,-0x18(%ebp)
412bfd:	e8 8e b1 01 00       	call   0x42dd90
412c02:	6a 00                	push   $0x0
412c04:	ff 75 f0             	push   -0x10(%ebp)
412c07:	8b f0                	mov    %eax,%esi
412c09:	53                   	push   %ebx
412c0a:	57                   	push   %edi
412c0b:	e8 10 b1 01 00       	call   0x42dd20
412c10:	6a 09                	push   $0x9
412c12:	59                   	pop    %ecx
412c13:	3b ce                	cmp    %esi,%ecx
412c15:	8b f8                	mov    %eax,%edi
412c17:	8b 45 f8             	mov    -0x8(%ebp),%eax
412c1a:	8b da                	mov    %edx,%ebx
412c1c:	1b c9                	sbb    %ecx,%ecx
412c1e:	83 e1 27             	and    $0x27,%ecx
412c21:	83 c1 30             	add    $0x30,%ecx
412c24:	66 03 ce             	add    %si,%cx
412c27:	8d 50 02             	lea    0x2(%eax),%edx
412c2a:	66 89 08             	mov    %cx,(%eax)
412c2d:	8b 45 fc             	mov    -0x4(%ebp),%eax
412c30:	40                   	inc    %eax
412c31:	89 55 f4             	mov    %edx,-0xc(%ebp)
412c34:	89 45 fc             	mov    %eax,-0x4(%ebp)
412c37:	85 db                	test   %ebx,%ebx
412c39:	75 04                	jne    0x412c3f
412c3b:	85 ff                	test   %edi,%edi
412c3d:	74 32                	je     0x412c71
412c3f:	8b 4d 14             	mov    0x14(%ebp),%ecx
412c42:	8b 75 f0             	mov    -0x10(%ebp),%esi
412c45:	89 55 f8             	mov    %edx,-0x8(%ebp)
412c48:	3b c1                	cmp    %ecx,%eax
412c4a:	72 a9                	jb     0x412bf5
412c4c:	8b 55 f4             	mov    -0xc(%ebp),%edx
412c4f:	8b 7d ec             	mov    -0x14(%ebp),%edi
412c52:	3b c1                	cmp    %ecx,%eax
412c54:	72 20                	jb     0x412c76
412c56:	8b 45 10             	mov    0x10(%ebp),%eax
412c59:	33 c9                	xor    %ecx,%ecx
412c5b:	66 89 08             	mov    %cx,(%eax)
412c5e:	e8 0e 9a 00 00       	call   0x41c671
412c63:	6a 22                	push   $0x22
412c65:	5e                   	pop    %esi
412c66:	89 30                	mov    %esi,(%eax)
412c68:	e8 81 a7 ff ff       	call   0x40d3ee
412c6d:	8b c6                	mov    %esi,%eax
412c6f:	eb 25                	jmp    0x412c96
412c71:	8b 4d 14             	mov    0x14(%ebp),%ecx
412c74:	eb d9                	jmp    0x412c4f
412c76:	33 c0                	xor    %eax,%eax
412c78:	66 89 02             	mov    %ax,(%edx)
412c7b:	8b 55 e8             	mov    -0x18(%ebp),%edx
412c7e:	66 8b 07             	mov    (%edi),%ax
412c81:	0f b7 0a             	movzwl (%edx),%ecx
412c84:	66 89 02             	mov    %ax,(%edx)
412c87:	83 ea 02             	sub    $0x2,%edx
412c8a:	66 89 0f             	mov    %cx,(%edi)
412c8d:	83 c7 02             	add    $0x2,%edi
412c90:	3b fa                	cmp    %edx,%edi
412c92:	72 ea                	jb     0x412c7e
412c94:	33 c0                	xor    %eax,%eax
412c96:	5f                   	pop    %edi
412c97:	5e                   	pop    %esi
412c98:	5b                   	pop    %ebx
412c99:	c9                   	leave
412c9a:	c3                   	ret
412c9b:	8b ff                	mov    %edi,%edi
412c9d:	55                   	push   %ebp
412c9e:	8b ec                	mov    %esp,%ebp
412ca0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
412ca3:	56                   	push   %esi
412ca4:	85 c9                	test   %ecx,%ecx
412ca6:	75 13                	jne    0x412cbb
412ca8:	e8 c4 99 00 00       	call   0x41c671
412cad:	6a 16                	push   $0x16
412caf:	5e                   	pop    %esi
412cb0:	89 30                	mov    %esi,(%eax)
412cb2:	e8 37 a7 ff ff       	call   0x40d3ee
412cb7:	8b c6                	mov    %esi,%eax
412cb9:	eb 4f                	jmp    0x412d0a
412cbb:	8b 55 10             	mov    0x10(%ebp),%edx
412cbe:	53                   	push   %ebx
412cbf:	85 d2                	test   %edx,%edx
412cc1:	74 24                	je     0x412ce7
412cc3:	8b 5d 18             	mov    0x18(%ebp),%ebx
412cc6:	33 c0                	xor    %eax,%eax
412cc8:	66 89 01             	mov    %ax,(%ecx)
412ccb:	0f b6 c3             	movzbl %bl,%eax
412cce:	40                   	inc    %eax
412ccf:	3b d0                	cmp    %eax,%edx
412cd1:	77 09                	ja     0x412cdc
412cd3:	e8 99 99 00 00       	call   0x41c671
412cd8:	6a 22                	push   $0x22
412cda:	eb 12                	jmp    0x412cee
412cdc:	8b 75 14             	mov    0x14(%ebp),%esi
412cdf:	8d 46 fe             	lea    -0x2(%esi),%eax
412ce2:	83 f8 22             	cmp    $0x22,%eax
412ce5:	76 13                	jbe    0x412cfa
412ce7:	e8 85 99 00 00       	call   0x41c671
412cec:	6a 16                	push   $0x16
412cee:	5e                   	pop    %esi
412cef:	89 30                	mov    %esi,(%eax)
412cf1:	e8 f8 a6 ff ff       	call   0x40d3ee
412cf6:	8b c6                	mov    %esi,%eax
412cf8:	eb 0f                	jmp    0x412d09
412cfa:	53                   	push   %ebx
412cfb:	56                   	push   %esi
412cfc:	52                   	push   %edx
412cfd:	51                   	push   %ecx
412cfe:	ff 75 08             	push   0x8(%ebp)
412d01:	e8 e6 fd ff ff       	call   0x412aec
412d06:	83 c4 14             	add    $0x14,%esp
412d09:	5b                   	pop    %ebx
412d0a:	5e                   	pop    %esi
412d0b:	5d                   	pop    %ebp
412d0c:	c3                   	ret
412d0d:	8b ff                	mov    %edi,%edi
412d0f:	55                   	push   %ebp
412d10:	8b ec                	mov    %esp,%ebp
412d12:	8b 4d 10             	mov    0x10(%ebp),%ecx
412d15:	56                   	push   %esi
412d16:	85 c9                	test   %ecx,%ecx
412d18:	75 13                	jne    0x412d2d
412d1a:	e8 52 99 00 00       	call   0x41c671
412d1f:	6a 16                	push   $0x16
412d21:	5e                   	pop    %esi
412d22:	89 30                	mov    %esi,(%eax)
412d24:	e8 c5 a6 ff ff       	call   0x40d3ee
412d29:	8b c6                	mov    %esi,%eax
412d2b:	eb 52                	jmp    0x412d7f
412d2d:	8b 55 14             	mov    0x14(%ebp),%edx
412d30:	53                   	push   %ebx
412d31:	85 d2                	test   %edx,%edx
412d33:	74 24                	je     0x412d59
412d35:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
412d38:	33 c0                	xor    %eax,%eax
412d3a:	66 89 01             	mov    %ax,(%ecx)
412d3d:	0f b6 c3             	movzbl %bl,%eax
412d40:	40                   	inc    %eax
412d41:	3b d0                	cmp    %eax,%edx
412d43:	77 09                	ja     0x412d4e
412d45:	e8 27 99 00 00       	call   0x41c671
412d4a:	6a 22                	push   $0x22
412d4c:	eb 12                	jmp    0x412d60
412d4e:	8b 75 18             	mov    0x18(%ebp),%esi
412d51:	8d 46 fe             	lea    -0x2(%esi),%eax
412d54:	83 f8 22             	cmp    $0x22,%eax
412d57:	76 13                	jbe    0x412d6c
412d59:	e8 13 99 00 00       	call   0x41c671
412d5e:	6a 16                	push   $0x16
412d60:	5e                   	pop    %esi
412d61:	89 30                	mov    %esi,(%eax)
412d63:	e8 86 a6 ff ff       	call   0x40d3ee
412d68:	8b c6                	mov    %esi,%eax
412d6a:	eb 12                	jmp    0x412d7e
412d6c:	53                   	push   %ebx
412d6d:	56                   	push   %esi
412d6e:	52                   	push   %edx
412d6f:	51                   	push   %ecx
412d70:	ff 75 0c             	push   0xc(%ebp)
412d73:	ff 75 08             	push   0x8(%ebp)
412d76:	e8 2d fe ff ff       	call   0x412ba8
412d7b:	83 c4 18             	add    $0x18,%esp
412d7e:	5b                   	pop    %ebx
412d7f:	5e                   	pop    %esi
412d80:	5d                   	pop    %ebp
412d81:	c3                   	ret
412d82:	8b ff                	mov    %edi,%edi
412d84:	55                   	push   %ebp
412d85:	8b ec                	mov    %esp,%ebp
412d87:	51                   	push   %ecx
412d88:	33 c0                	xor    %eax,%eax
412d8a:	83 7d 18 0a          	cmpl   $0xa,0x18(%ebp)
412d8e:	75 12                	jne    0x412da2
412d90:	39 45 0c             	cmp    %eax,0xc(%ebp)
412d93:	7f 0d                	jg     0x412da2
412d95:	7c 05                	jl     0x412d9c
412d97:	39 45 08             	cmp    %eax,0x8(%ebp)
412d9a:	73 06                	jae    0x412da2
412d9c:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
412da0:	eb 03                	jmp    0x412da5
412da2:	88 45 fc             	mov    %al,-0x4(%ebp)
412da5:	ff 75 fc             	push   -0x4(%ebp)
412da8:	ff 75 18             	push   0x18(%ebp)
412dab:	ff 75 14             	push   0x14(%ebp)
412dae:	ff 75 10             	push   0x10(%ebp)
412db1:	ff 75 0c             	push   0xc(%ebp)
412db4:	ff 75 08             	push   0x8(%ebp)
412db7:	e8 51 ff ff ff       	call   0x412d0d
412dbc:	83 c4 18             	add    $0x18,%esp
412dbf:	c9                   	leave
412dc0:	c3                   	ret
412dc1:	8b ff                	mov    %edi,%edi
412dc3:	55                   	push   %ebp
412dc4:	8b ec                	mov    %esp,%ebp
412dc6:	51                   	push   %ecx
412dc7:	83 7d 14 0a          	cmpl   $0xa,0x14(%ebp)
412dcb:	75 0a                	jne    0x412dd7
412dcd:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
412dd1:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
412dd5:	7c 04                	jl     0x412ddb
412dd7:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
412ddb:	ff 75 fc             	push   -0x4(%ebp)
412dde:	ff 75 14             	push   0x14(%ebp)
412de1:	ff 75 10             	push   0x10(%ebp)
412de4:	ff 75 0c             	push   0xc(%ebp)
412de7:	ff 75 08             	push   0x8(%ebp)
412dea:	e8 ac fe ff ff       	call   0x412c9b
412def:	83 c4 14             	add    $0x14,%esp
412df2:	c9                   	leave
412df3:	c3                   	ret
412df4:	8b ff                	mov    %edi,%edi
412df6:	55                   	push   %ebp
412df7:	8b ec                	mov    %esp,%ebp
412df9:	83 ec 14             	sub    $0x14,%esp
412dfc:	56                   	push   %esi
412dfd:	8b 75 08             	mov    0x8(%ebp),%esi
412e00:	85 f6                	test   %esi,%esi
412e02:	75 13                	jne    0x412e17
412e04:	e8 68 98 00 00       	call   0x41c671
412e09:	6a 16                	push   $0x16
412e0b:	5e                   	pop    %esi
412e0c:	89 30                	mov    %esi,(%eax)
412e0e:	e8 db a5 ff ff       	call   0x40d3ee
412e13:	8b c6                	mov    %esi,%eax
412e15:	eb 53                	jmp    0x412e6a
412e17:	57                   	push   %edi
412e18:	6a 09                	push   $0x9
412e1a:	83 c8 ff             	or     $0xffffffff,%eax
412e1d:	8b fe                	mov    %esi,%edi
412e1f:	59                   	pop    %ecx
412e20:	f3 ab                	rep stos %eax,%es:(%edi)
412e22:	8b 7d 0c             	mov    0xc(%ebp),%edi
412e25:	85 ff                	test   %edi,%edi
412e27:	75 13                	jne    0x412e3c
412e29:	e8 43 98 00 00       	call   0x41c671
412e2e:	6a 16                	push   $0x16
412e30:	5e                   	pop    %esi
412e31:	89 30                	mov    %esi,(%eax)
412e33:	e8 b6 a5 ff ff       	call   0x40d3ee
412e38:	8b c6                	mov    %esi,%eax
412e3a:	eb 2d                	jmp    0x412e69
412e3c:	53                   	push   %ebx
412e3d:	33 db                	xor    %ebx,%ebx
412e3f:	39 5f 04             	cmp    %ebx,0x4(%edi)
412e42:	7f 06                	jg     0x412e4a
412e44:	7c 16                	jl     0x412e5c
412e46:	39 1f                	cmp    %ebx,(%edi)
412e48:	72 12                	jb     0x412e5c
412e4a:	6a 07                	push   $0x7
412e4c:	58                   	pop    %eax
412e4d:	39 47 04             	cmp    %eax,0x4(%edi)
412e50:	7c 1b                	jl     0x412e6d
412e52:	7f 08                	jg     0x412e5c
412e54:	81 3f ff 2a 58 93    	cmpl   $0x93582aff,(%edi)
412e5a:	76 11                	jbe    0x412e6d
412e5c:	e8 10 98 00 00       	call   0x41c671