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
412e61:	6a 16                	push   $0x16
412e63:	5e                   	pop    %esi
412e64:	89 30                	mov    %esi,(%eax)
412e66:	8b c6                	mov    %esi,%eax
412e68:	5b                   	pop    %ebx
412e69:	5f                   	pop    %edi
412e6a:	5e                   	pop    %esi
412e6b:	c9                   	leave
412e6c:	c3                   	ret
412e6d:	e8 53 c5 00 00       	call   0x41f3c5
412e72:	8d 45 f8             	lea    -0x8(%ebp),%eax
412e75:	89 5d f8             	mov    %ebx,-0x8(%ebp)
412e78:	50                   	push   %eax
412e79:	89 5d f4             	mov    %ebx,-0xc(%ebp)
412e7c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
412e7f:	e8 73 b9 00 00       	call   0x41e7f7
412e84:	59                   	pop    %ecx
412e85:	85 c0                	test   %eax,%eax
412e87:	0f 85 ed 01 00 00    	jne    0x41307a
412e8d:	8d 45 f4             	lea    -0xc(%ebp),%eax
412e90:	50                   	push   %eax
412e91:	e8 8d b9 00 00       	call   0x41e823
412e96:	59                   	pop    %ecx
412e97:	85 c0                	test   %eax,%eax
412e99:	0f 85 db 01 00 00    	jne    0x41307a
412e9f:	8d 45 fc             	lea    -0x4(%ebp),%eax
412ea2:	50                   	push   %eax
412ea3:	e8 a7 b9 00 00       	call   0x41e84f
412ea8:	59                   	pop    %ecx
412ea9:	85 c0                	test   %eax,%eax
412eab:	0f 85 c9 01 00 00    	jne    0x41307a
412eb1:	8b 0f                	mov    (%edi),%ecx
412eb3:	8b d1                	mov    %ecx,%edx
412eb5:	8b 5f 04             	mov    0x4(%edi),%ebx
412eb8:	81 c2 7f 0b fc ff    	add    $0xfffc0b7f,%edx
412ebe:	8b c3                	mov    %ebx,%eax
412ec0:	83 d0 ff             	adc    $0xffffffff,%eax
412ec3:	83 f8 07             	cmp    $0x7,%eax
412ec6:	77 6e                	ja     0x412f36
412ec8:	72 08                	jb     0x412ed2
412eca:	81 fa fd 41 50 93    	cmp    $0x935041fd,%edx
412ed0:	77 64                	ja     0x412f36
412ed2:	8b 45 fc             	mov    -0x4(%ebp),%eax
412ed5:	99                   	cltd
412ed6:	2b c8                	sub    %eax,%ecx
412ed8:	8d 45 ec             	lea    -0x14(%ebp),%eax
412edb:	50                   	push   %eax
412edc:	1b da                	sbb    %edx,%ebx
412ede:	89 4d ec             	mov    %ecx,-0x14(%ebp)
412ee1:	56                   	push   %esi
412ee2:	89 5d f0             	mov    %ebx,-0x10(%ebp)
412ee5:	e8 11 bc 00 00       	call   0x41eafb
412eea:	59                   	pop    %ecx
412eeb:	59                   	pop    %ecx
412eec:	85 c0                	test   %eax,%eax
412eee:	0f 85 74 ff ff ff    	jne    0x412e68
412ef4:	39 45 f8             	cmp    %eax,-0x8(%ebp)
412ef7:	0f 84 76 01 00 00    	je     0x413073
412efd:	56                   	push   %esi
412efe:	e8 1f c5 00 00       	call   0x41f422
412f03:	59                   	pop    %ecx
412f04:	85 c0                	test   %eax,%eax
412f06:	0f 84 67 01 00 00    	je     0x413073
412f0c:	8b 45 f4             	mov    -0xc(%ebp),%eax
412f0f:	99                   	cltd
412f10:	29 45 ec             	sub    %eax,-0x14(%ebp)
412f13:	8d 45 ec             	lea    -0x14(%ebp),%eax
412f16:	50                   	push   %eax
412f17:	19 55 f0             	sbb    %edx,-0x10(%ebp)
412f1a:	56                   	push   %esi
412f1b:	e8 db bb 00 00       	call   0x41eafb
412f20:	59                   	pop    %ecx
412f21:	59                   	pop    %ecx
412f22:	85 c0                	test   %eax,%eax
412f24:	0f 85 3e ff ff ff    	jne    0x412e68
412f2a:	c7 46 20 01 00 00 00 	movl   $0x1,0x20(%esi)
412f31:	e9 3d 01 00 00       	jmp    0x413073
412f36:	57                   	push   %edi
412f37:	56                   	push   %esi
412f38:	e8 be bb 00 00       	call   0x41eafb
412f3d:	59                   	pop    %ecx
412f3e:	59                   	pop    %ecx
412f3f:	85 c0                	test   %eax,%eax
412f41:	0f 85 21 ff ff ff    	jne    0x412e68
412f47:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
412f4b:	8b 06                	mov    (%esi),%eax
412f4d:	99                   	cltd
412f4e:	8b f8                	mov    %eax,%edi
412f50:	8b da                	mov    %edx,%ebx
412f52:	74 1a                	je     0x412f6e
412f54:	56                   	push   %esi
412f55:	e8 c8 c4 00 00       	call   0x41f422
412f5a:	59                   	pop    %ecx
412f5b:	85 c0                	test   %eax,%eax
412f5d:	74 0f                	je     0x412f6e
412f5f:	8b 45 fc             	mov    -0x4(%ebp),%eax
412f62:	03 45 f4             	add    -0xc(%ebp),%eax
412f65:	c7 46 20 01 00 00 00 	movl   $0x1,0x20(%esi)
412f6c:	eb 03                	jmp    0x412f71
412f6e:	8b 45 fc             	mov    -0x4(%ebp),%eax
412f71:	99                   	cltd
412f72:	2b f8                	sub    %eax,%edi
412f74:	6a 00                	push   $0x0
412f76:	6a 3c                	push   $0x3c
412f78:	1b da                	sbb    %edx,%ebx
412f7a:	53                   	push   %ebx
412f7b:	57                   	push   %edi
412f7c:	e8 7f 70 ff ff       	call   0x40a000
412f81:	89 06                	mov    %eax,(%esi)
412f83:	85 c0                	test   %eax,%eax
412f85:	79 0b                	jns    0x412f92
412f87:	83 c0 3c             	add    $0x3c,%eax
412f8a:	83 c7 c4             	add    $0xffffffc4,%edi
412f8d:	89 06                	mov    %eax,(%esi)
412f8f:	83 d3 ff             	adc    $0xffffffff,%ebx
412f92:	6a 00                	push   $0x0
412f94:	6a 3c                	push   $0x3c
412f96:	53                   	push   %ebx
412f97:	57                   	push   %edi
412f98:	e8 73 6f ff ff       	call   0x409f10
412f9d:	8b f8                	mov    %eax,%edi
412f9f:	8b da                	mov    %edx,%ebx
412fa1:	8b 46 04             	mov    0x4(%esi),%eax
412fa4:	99                   	cltd
412fa5:	03 f8                	add    %eax,%edi
412fa7:	6a 00                	push   $0x0
412fa9:	6a 3c                	push   $0x3c
412fab:	13 da                	adc    %edx,%ebx
412fad:	53                   	push   %ebx
412fae:	57                   	push   %edi
412faf:	e8 4c 70 ff ff       	call   0x40a000
412fb4:	89 46 04             	mov    %eax,0x4(%esi)
412fb7:	85 c0                	test   %eax,%eax
412fb9:	79 0c                	jns    0x412fc7
412fbb:	83 c0 3c             	add    $0x3c,%eax
412fbe:	83 c7 c4             	add    $0xffffffc4,%edi
412fc1:	89 46 04             	mov    %eax,0x4(%esi)
412fc4:	83 d3 ff             	adc    $0xffffffff,%ebx
412fc7:	6a 00                	push   $0x0
412fc9:	6a 3c                	push   $0x3c
412fcb:	53                   	push   %ebx
412fcc:	57                   	push   %edi
412fcd:	e8 3e 6f ff ff       	call   0x409f10
412fd2:	8b f8                	mov    %eax,%edi
412fd4:	8b da                	mov    %edx,%ebx
412fd6:	8b 46 08             	mov    0x8(%esi),%eax
412fd9:	99                   	cltd
412fda:	03 f8                	add    %eax,%edi
412fdc:	6a 00                	push   $0x0
412fde:	6a 18                	push   $0x18
412fe0:	13 da                	adc    %edx,%ebx
412fe2:	53                   	push   %ebx
412fe3:	57                   	push   %edi
412fe4:	e8 17 70 ff ff       	call   0x40a000
412fe9:	89 46 08             	mov    %eax,0x8(%esi)
412fec:	85 c0                	test   %eax,%eax
412fee:	79 0c                	jns    0x412ffc
412ff0:	83 c0 18             	add    $0x18,%eax
412ff3:	83 c7 e8             	add    $0xffffffe8,%edi
412ff6:	89 46 08             	mov    %eax,0x8(%esi)
412ff9:	83 d3 ff             	adc    $0xffffffff,%ebx
412ffc:	6a 00                	push   $0x0
412ffe:	6a 18                	push   $0x18
413000:	53                   	push   %ebx
413001:	57                   	push   %edi
413002:	e8 09 6f ff ff       	call   0x409f10
413007:	8b c8                	mov    %eax,%ecx
413009:	85 d2                	test   %edx,%edx
41300b:	7c 26                	jl     0x413033
41300d:	7f 04                	jg     0x413013
41300f:	85 c9                	test   %ecx,%ecx
413011:	74 16                	je     0x413029
413013:	8b 46 18             	mov    0x18(%esi),%eax
413016:	03 c1                	add    %ecx,%eax
413018:	01 4e 0c             	add    %ecx,0xc(%esi)