41ca7c:	53                   	push   %ebx
41ca7d:	0f bf 5d 14          	movswl 0x14(%ebp),%ebx
41ca81:	56                   	push   %esi
41ca82:	8b 70 04             	mov    0x4(%eax),%esi
41ca85:	8b cb                	mov    %ebx,%ecx
41ca87:	57                   	push   %edi
41ca88:	8b 38                	mov    (%eax),%edi
41ca8a:	8b d6                	mov    %esi,%edx
41ca8c:	23 55 10             	and    0x10(%ebp),%edx
41ca8f:	8b c7                	mov    %edi,%eax
41ca91:	23 45 0c             	and    0xc(%ebp),%eax
41ca94:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
41ca9a:	e8 c1 13 01 00       	call   0x42de60
41ca9f:	6a 08                	push   $0x8
41caa1:	0f b7 c0             	movzwl %ax,%eax
41caa4:	59                   	pop    %ecx
41caa5:	66 3b c1             	cmp    %cx,%ax
41caa8:	77 66                	ja     0x41cb10
41caaa:	73 04                	jae    0x41cab0
41caac:	32 c0                	xor    %al,%al
41caae:	eb 62                	jmp    0x41cb12
41cab0:	33 c0                	xor    %eax,%eax
41cab2:	33 d2                	xor    %edx,%edx
41cab4:	40                   	inc    %eax
41cab5:	8b cb                	mov    %ebx,%ecx
41cab7:	e8 84 13 01 00       	call   0x42de40
41cabc:	83 c0 ff             	add    $0xffffffff,%eax
41cabf:	83 d2 ff             	adc    $0xffffffff,%edx
41cac2:	23 c7                	and    %edi,%eax
41cac4:	23 d6                	and    %esi,%edx
41cac6:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
41cacc:	0b c2                	or     %edx,%eax
41cace:	75 40                	jne    0x41cb10
41cad0:	66 83 7d 14 30       	cmpw   $0x30,0x14(%ebp)
41cad5:	74 22                	je     0x41caf9
41cad7:	0f ac f7 04          	shrd   $0x4,%esi,%edi
41cadb:	8b cb                	mov    %ebx,%ecx
41cadd:	23 7d 0c             	and    0xc(%ebp),%edi
41cae0:	c1 ee 04             	shr    $0x4,%esi
41cae3:	8b c7                	mov    %edi,%eax
41cae5:	23 75 10             	and    0x10(%ebp),%esi
41cae8:	81 e6 ff ff 00 00    	and    $0xffff,%esi
41caee:	8b d6                	mov    %esi,%edx
41caf0:	e8 6b 13 01 00       	call   0x42de60
41caf5:	8a c8                	mov    %al,%cl
41caf7:	eb 10                	jmp    0x41cb09
41caf9:	33 c9                	xor    %ecx,%ecx
41cafb:	81 e6 00 00 f0 7f    	and    $0x7ff00000,%esi
41cb01:	8b c1                	mov    %ecx,%eax
41cb03:	0b c6                	or     %esi,%eax
41cb05:	74 02                	je     0x41cb09
41cb07:	b1 01                	mov    $0x1,%cl
41cb09:	80 e1 01             	and    $0x1,%cl
41cb0c:	8a c1                	mov    %cl,%al
41cb0e:	eb 02                	jmp    0x41cb12
41cb10:	b0 01                	mov    $0x1,%al
41cb12:	5f                   	pop    %edi
41cb13:	5e                   	pop    %esi
41cb14:	5b                   	pop    %ebx
41cb15:	5d                   	pop    %ebp
41cb16:	c3                   	ret
41cb17:	8b ff                	mov    %edi,%edi
41cb19:	55                   	push   %ebp
41cb1a:	8b ec                	mov    %esp,%ebp
41cb1c:	83 ec 2c             	sub    $0x2c,%esp
41cb1f:	33 d2                	xor    %edx,%edx
41cb21:	56                   	push   %esi
41cb22:	8b 75 1c             	mov    0x1c(%ebp),%esi
41cb25:	57                   	push   %edi
41cb26:	85 f6                	test   %esi,%esi
41cb28:	79 02                	jns    0x41cb2c
41cb2a:	8b f2                	mov    %edx,%esi
41cb2c:	8b 7d 0c             	mov    0xc(%ebp),%edi
41cb2f:	8d 46 0b             	lea    0xb(%esi),%eax
41cb32:	88 17                	mov    %dl,(%edi)
41cb34:	39 45 10             	cmp    %eax,0x10(%ebp)
41cb37:	77 22                	ja     0x41cb5b
41cb39:	8b 4d 2c             	mov    0x2c(%ebp),%ecx
41cb3c:	6a 22                	push   $0x22
41cb3e:	5e                   	pop    %esi
41cb3f:	51                   	push   %ecx
41cb40:	52                   	push   %edx
41cb41:	52                   	push   %edx
41cb42:	52                   	push   %edx
41cb43:	52                   	push   %edx
41cb44:	52                   	push   %edx
41cb45:	c6 41 1c 01          	movb   $0x1,0x1c(%ecx)
41cb49:	89 71 18             	mov    %esi,0x18(%ecx)
41cb4c:	e8 20 08 ff ff       	call   0x40d371
41cb51:	83 c4 18             	add    $0x18,%esp
41cb54:	8b c6                	mov    %esi,%eax
41cb56:	e9 e5 02 00 00       	jmp    0x41ce40
41cb5b:	53                   	push   %ebx
41cb5c:	8b 5d 08             	mov    0x8(%ebp),%ebx
41cb5f:	b9 ff 07 00 00       	mov    $0x7ff,%ecx
41cb64:	8b 43 04             	mov    0x4(%ebx),%eax
41cb67:	c1 e8 14             	shr    $0x14,%eax
41cb6a:	23 c1                	and    %ecx,%eax
41cb6c:	3b c1                	cmp    %ecx,%eax
41cb6e:	75 53                	jne    0x41cbc3
41cb70:	ff 75 2c             	push   0x2c(%ebp)
41cb73:	ff 75 28             	push   0x28(%ebp)
41cb76:	ff 75 24             	push   0x24(%ebp)
41cb79:	52                   	push   %edx
41cb7a:	56                   	push   %esi
41cb7b:	ff 75 18             	push   0x18(%ebp)
41cb7e:	ff 75 14             	push   0x14(%ebp)
41cb81:	ff 75 10             	push   0x10(%ebp)
41cb84:	57                   	push   %edi
41cb85:	53                   	push   %ebx
41cb86:	e8 b9 02 00 00       	call   0x41ce44
41cb8b:	83 c4 28             	add    $0x28,%esp
41cb8e:	85 c0                	test   %eax,%eax
41cb90:	74 08                	je     0x41cb9a
41cb92:	c6 07 00             	movb   $0x0,(%edi)
41cb95:	e9 a5 02 00 00       	jmp    0x41ce3f
41cb9a:	6a 65                	push   $0x65
41cb9c:	57                   	push   %edi
41cb9d:	e8 ae 26 01 00       	call   0x42f250
41cba2:	59                   	pop    %ecx
41cba3:	59                   	pop    %ecx
41cba4:	85 c0                	test   %eax,%eax
41cba6:	0f 84 91 02 00 00    	je     0x41ce3d
41cbac:	8a 4d 20             	mov    0x20(%ebp),%cl
41cbaf:	80 f1 01             	xor    $0x1,%cl
41cbb2:	c0 e1 05             	shl    $0x5,%cl
41cbb5:	80 c1 50             	add    $0x50,%cl
41cbb8:	88 08                	mov    %cl,(%eax)
41cbba:	c6 40 03 00          	movb   $0x0,0x3(%eax)
41cbbe:	e9 7a 02 00 00       	jmp    0x41ce3d
41cbc3:	39 53 04             	cmp    %edx,0x4(%ebx)
41cbc6:	7f 0a                	jg     0x41cbd2
41cbc8:	7c 04                	jl     0x41cbce
41cbca:	39 13                	cmp    %edx,(%ebx)
41cbcc:	73 04                	jae    0x41cbd2
41cbce:	c6 07 2d             	movb   $0x2d,(%edi)
41cbd1:	47                   	inc    %edi
41cbd2:	8a 45 20             	mov    0x20(%ebp),%al
41cbd5:	8d 57 01             	lea    0x1(%edi),%edx
41cbd8:	8b 4b 04             	mov    0x4(%ebx),%ecx
41cbdb:	34 01                	xor    $0x1,%al
41cbdd:	88 45 ff             	mov    %al,-0x1(%ebp)
41cbe0:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
41cbe6:	0f b6 c0             	movzbl %al,%eax
41cbe9:	c1 e0 05             	shl    $0x5,%eax
41cbec:	83 c0 07             	add    $0x7,%eax
41cbef:	c7 45 f0 ff 03 00 00 	movl   $0x3ff,-0x10(%ebp)
41cbf6:	89 45 d8             	mov    %eax,-0x28(%ebp)
41cbf9:	33 c0                	xor    %eax,%eax
41cbfb:	0b c1                	or     %ecx,%eax
41cbfd:	89 55 f4             	mov    %edx,-0xc(%ebp)
41cc00:	6a 30                	push   $0x30
41cc02:	58                   	pop    %eax
41cc03:	75 1e                	jne    0x41cc23
41cc05:	88 07                	mov    %al,(%edi)
41cc07:	8b 43 04             	mov    0x4(%ebx),%eax
41cc0a:	8b 0b                	mov    (%ebx),%ecx
41cc0c:	25 ff ff 0f 00       	and    $0xfffff,%eax
41cc11:	0b c8                	or     %eax,%ecx
41cc13:	75 05                	jne    0x41cc1a
41cc15:	21 4d f0             	and    %ecx,-0x10(%ebp)
41cc18:	eb 0c                	jmp    0x41cc26
41cc1a:	c7 45 f0 fe 03 00 00 	movl   $0x3fe,-0x10(%ebp)
41cc21:	eb 03                	jmp    0x41cc26
41cc23:	c6 07 31             	movb   $0x31,(%edi)
41cc26:	8d 7a 01             	lea    0x1(%edx),%edi
41cc29:	85 f6                	test   %esi,%esi
41cc2b:	75 04                	jne    0x41cc31
41cc2d:	32 c0                	xor    %al,%al
41cc2f:	eb 23                	jmp    0x41cc54
41cc31:	8b 45 2c             	mov    0x2c(%ebp),%eax
41cc34:	80 78 14 00          	cmpb   $0x0,0x14(%eax)
41cc38:	75 0d                	jne    0x41cc47
41cc3a:	8b c8                	mov    %eax,%ecx
41cc3c:	e8 7f 4c ff ff       	call   0x4118c0
41cc41:	8b 45 2c             	mov    0x2c(%ebp),%eax
41cc44:	8b 55 f4             	mov    -0xc(%ebp),%edx
41cc47:	8b 40 0c             	mov    0xc(%eax),%eax
41cc4a:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
41cc50:	8b 00                	mov    (%eax),%eax
41cc52:	8a 00                	mov    (%eax),%al
41cc54:	88 02                	mov    %al,(%edx)
41cc56:	8b 43 04             	mov    0x4(%ebx),%eax
41cc59:	25 ff ff 0f 00       	and    $0xfffff,%eax
41cc5e:	89 45 e0             	mov    %eax,-0x20(%ebp)
41cc61:	77 09                	ja     0x41cc6c
41cc63:	83 3b 00             	cmpl   $0x0,(%ebx)
41cc66:	0f 86 bf 00 00 00    	jbe    0x41cd2b
41cc6c:	6a 30                	push   $0x30
41cc6e:	58                   	pop    %eax
41cc6f:	89 45 f8             	mov    %eax,-0x8(%ebp)
41cc72:	b9 00 00 0f 00       	mov    $0xf0000,%ecx
41cc77:	33 c0                	xor    %eax,%eax
41cc79:	89 4d e8             	mov    %ecx,-0x18(%ebp)
41cc7c:	89 45 ec             	mov    %eax,-0x14(%ebp)
41cc7f:	8b 55 f8             	mov    -0x8(%ebp),%edx
41cc82:	0f b7 d2             	movzwl %dx,%edx
41cc85:	89 55 e4             	mov    %edx,-0x1c(%ebp)
41cc88:	8b d7                	mov    %edi,%edx
41cc8a:	89 7d e0             	mov    %edi,-0x20(%ebp)
41cc8d:	85 f6                	test   %esi,%esi
41cc8f:	7e 50                	jle    0x41cce1
41cc91:	8b 53 04             	mov    0x4(%ebx),%edx
41cc94:	23 03                	and    (%ebx),%eax
41cc96:	23 d1                	and    %ecx,%edx
41cc98:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
41cc9b:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
41cca1:	0f b7 c9             	movzwl %cx,%ecx
41cca4:	e8 b7 11 01 00       	call   0x42de60
41cca9:	6a 30                	push   $0x30
41ccab:	59                   	pop    %ecx
41ccac:	66 03 c1             	add    %cx,%ax
41ccaf:	0f b7 c0             	movzwl %ax,%eax
41ccb2:	83 f8 39             	cmp    $0x39,%eax
41ccb5:	76 03                	jbe    0x41ccba
41ccb7:	03 45 d8             	add    -0x28(%ebp),%eax
41ccba:	8b 4d e8             	mov    -0x18(%ebp),%ecx
41ccbd:	8b 55 f8             	mov    -0x8(%ebp),%edx
41ccc0:	88 07                	mov    %al,(%edi)
41ccc2:	83 ea 04             	sub    $0x4,%edx
41ccc5:	8b 45 ec             	mov    -0x14(%ebp),%eax
41ccc8:	47                   	inc    %edi
41ccc9:	0f ac c8 04          	shrd   $0x4,%ecx,%eax
41cccd:	89 55 f8             	mov    %edx,-0x8(%ebp)
41ccd0:	c1 e9 04             	shr    $0x4,%ecx
41ccd3:	4e                   	dec    %esi
41ccd4:	89 45 ec             	mov    %eax,-0x14(%ebp)
41ccd7:	89 4d e8             	mov    %ecx,-0x18(%ebp)
41ccda:	66 85 d2             	test   %dx,%dx
41ccdd:	79 a0                	jns    0x41cc7f
41ccdf:	eb 4a                	jmp    0x41cd2b
41cce1:	ff 75 28             	push   0x28(%ebp)
41cce4:	8b fa                	mov    %edx,%edi
41cce6:	ff 75 e4             	push   -0x1c(%ebp)
41cce9:	51                   	push   %ecx
41ccea:	50                   	push   %eax
41cceb:	53                   	push   %ebx
41ccec:	e8 66 06 00 00       	call   0x41d357
41ccf1:	83 c4 14             	add    $0x14,%esp
41ccf4:	84 c0                	test   %al,%al
41ccf6:	74 47                	je     0x41cd3f
41ccf8:	8b 7d e0             	mov    -0x20(%ebp),%edi
41ccfb:	6a 30                	push   $0x30
41ccfd:	5b                   	pop    %ebx
41ccfe:	8d 47 ff             	lea    -0x1(%edi),%eax
41cd01:	8a 08                	mov    (%eax),%cl
41cd03:	80 f9 66             	cmp    $0x66,%cl
41cd06:	74 05                	je     0x41cd0d
41cd08:	80 f9 46             	cmp    $0x46,%cl
41cd0b:	75 05                	jne    0x41cd12
41cd0d:	88 18                	mov    %bl,(%eax)
41cd0f:	48                   	dec    %eax
41cd10:	eb ef                	jmp    0x41cd01
41cd12:	8b 5d 08             	mov    0x8(%ebp),%ebx
41cd15:	3b 45 f4             	cmp    -0xc(%ebp),%eax
41cd18:	74 0e                	je     0x41cd28
41cd1a:	80 f9 39             	cmp    $0x39,%cl
41cd1d:	75 03                	jne    0x41cd22
41cd1f:	02 4d d8             	add    -0x28(%ebp),%cl
41cd22:	fe c1                	inc    %cl
41cd24:	88 08                	mov    %cl,(%eax)
41cd26:	eb 03                	jmp    0x41cd2b
41cd28:	fe 40 ff             	incb   -0x1(%eax)
41cd2b:	85 f6                	test   %esi,%esi
41cd2d:	7e 10                	jle    0x41cd3f
41cd2f:	56                   	push   %esi
41cd30:	6a 30                	push   $0x30
41cd32:	58                   	pop    %eax
41cd33:	50                   	push   %eax
41cd34:	57                   	push   %edi
41cd35:	e8 86 e6 fe ff       	call   0x40b3c0
41cd3a:	83 c4 0c             	add    $0xc,%esp
41cd3d:	03 fe                	add    %esi,%edi
41cd3f:	8b 45 f4             	mov    -0xc(%ebp),%eax
41cd42:	80 38 00             	cmpb   $0x0,(%eax)
41cd45:	75 02                	jne    0x41cd49
41cd47:	8b f8                	mov    %eax,%edi
41cd49:	8a 45 ff             	mov    -0x1(%ebp),%al
41cd4c:	b1 34                	mov    $0x34,%cl
41cd4e:	c0 e0 05             	shl    $0x5,%al
41cd51:	04 50                	add    $0x50,%al
41cd53:	88 07                	mov    %al,(%edi)
41cd55:	8b 03                	mov    (%ebx),%eax
41cd57:	8b 53 04             	mov    0x4(%ebx),%edx
41cd5a:	e8 01 11 01 00       	call   0x42de60
41cd5f:	8b d8                	mov    %eax,%ebx
41cd61:	33 f6                	xor    %esi,%esi
41cd63:	81 e3 ff 07 00 00    	and    $0x7ff,%ebx
41cd69:	8d 47 02             	lea    0x2(%edi),%eax
41cd6c:	2b 5d f0             	sub    -0x10(%ebp),%ebx
41cd6f:	89 45 f0             	mov    %eax,-0x10(%ebp)
41cd72:	1b f6                	sbb    %esi,%esi
41cd74:	78 0a                	js     0x41cd80
41cd76:	7f 04                	jg     0x41cd7c
41cd78:	85 db                	test   %ebx,%ebx
41cd7a:	72 04                	jb     0x41cd80
41cd7c:	b1 2b                	mov    $0x2b,%cl
41cd7e:	eb 0a                	jmp    0x41cd8a
41cd80:	f7 db                	neg    %ebx
41cd82:	6a 2d                	push   $0x2d
41cd84:	83 d6 00             	adc    $0x0,%esi
41cd87:	f7 de                	neg    %esi
41cd89:	59                   	pop    %ecx
41cd8a:	88 4f 01             	mov    %cl,0x1(%edi)
41cd8d:	8b f8                	mov    %eax,%edi
41cd8f:	6a 30                	push   $0x30
41cd91:	59                   	pop    %ecx
41cd92:	88 08                	mov    %cl,(%eax)
41cd94:	85 f6                	test   %esi,%esi
41cd96:	0f 8c 96 00 00 00    	jl     0x41ce32
41cd9c:	b8 e8 03 00 00       	mov    $0x3e8,%eax
41cda1:	7f 04                	jg     0x41cda7
41cda3:	3b d8                	cmp    %eax,%ebx
41cda5:	72 2e                	jb     0x41cdd5
41cda7:	6a 00                	push   $0x0
41cda9:	50                   	push   %eax
41cdaa:	56                   	push   %esi
41cdab:	53                   	push   %ebx
41cdac:	e8 5f d1 fe ff       	call   0x409f10
41cdb1:	6a 30                	push   $0x30
41cdb3:	59                   	pop    %ecx
41cdb4:	6a 00                	push   $0x0
41cdb6:	02 c1                	add    %cl,%al
41cdb8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41cdbb:	68 e8 03 00 00       	push   $0x3e8
41cdc0:	56                   	push   %esi
41cdc1:	53                   	push   %ebx
41cdc2:	88 01                	mov    %al,(%ecx)
41cdc4:	8d 79 01             	lea    0x1(%ecx),%edi
41cdc7:	e8 34 d2 fe ff       	call   0x40a000
41cdcc:	8b d8                	mov    %eax,%ebx
41cdce:	8b f2                	mov    %edx,%esi
41cdd0:	3b 7d f0             	cmp    -0x10(%ebp),%edi
41cdd3:	75 0b                	jne    0x41cde0
41cdd5:	85 f6                	test   %esi,%esi
41cdd7:	7c 59                	jl     0x41ce32
41cdd9:	7f 05                	jg     0x41cde0
41cddb:	83 fb 64             	cmp    $0x64,%ebx
41cdde:	72 27                	jb     0x41ce07
41cde0:	6a 00                	push   $0x0
41cde2:	6a 64                	push   $0x64
41cde4:	56                   	push   %esi
41cde5:	53                   	push   %ebx
41cde6:	e8 25 d1 fe ff       	call   0x409f10
41cdeb:	6a 30                	push   $0x30
41cded:	59                   	pop    %ecx
41cdee:	6a 00                	push   $0x0
41cdf0:	6a 64                	push   $0x64
41cdf2:	02 c1                	add    %cl,%al
41cdf4:	56                   	push   %esi