46fa44:	ba 00 10 00 00       	mov    $0x1000,%edx
46fa49:	1b c0                	sbb    %eax,%eax
46fa4b:	25 00 f4 ff ff       	and    $0xfffff400,%eax
46fa50:	03 c2                	add    %edx,%eax
46fa52:	85 c6                	test   %eax,%esi
46fa54:	74 3d                	je     0x46fa93
46fa56:	85 15 94 83 4c 00    	test   %edx,0x4c8394
46fa5c:	75 35                	jne    0x46fa93
46fa5e:	8d 45 f8             	lea    -0x8(%ebp),%eax
46fa61:	c7 45 f8 10 14 4a 00 	movl   $0x4a1410,-0x8(%ebp)
46fa68:	50                   	push   %eax
46fa69:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
46fa6c:	c7 45 fc 08 00 00 00 	movl   $0x8,-0x4(%ebp)
46fa73:	e8 6e ed ff ff       	call   0x46e7e6
46fa78:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46fa7b:	51                   	push   %ecx
46fa7c:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46fa7f:	51                   	push   %ecx
46fa80:	8b c8                	mov    %eax,%ecx
46fa82:	e8 f6 f0 ff ff       	call   0x46eb7d
46fa87:	8b 7d f8             	mov    -0x8(%ebp),%edi
46fa8a:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46fa8d:	89 7d f0             	mov    %edi,-0x10(%ebp)
46fa90:	89 4d f4             	mov    %ecx,-0xc(%ebp)
46fa93:	f7 c6 00 00 01 00    	test   $0x10000,%esi
46fa99:	74 2f                	je     0x46faca
46fa9b:	8d 45 f8             	lea    -0x8(%ebp),%eax
46fa9e:	c7 45 f8 1c 14 4a 00 	movl   $0x4a141c,-0x8(%ebp)
46faa5:	50                   	push   %eax
46faa6:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
46faa9:	c7 45 fc 0b 00 00 00 	movl   $0xb,-0x4(%ebp)
46fab0:	e8 31 ed ff ff       	call   0x46e7e6
46fab5:	8d 4d f0             	lea    -0x10(%ebp),%ecx
46fab8:	51                   	push   %ecx
46fab9:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46fabc:	51                   	push   %ecx
46fabd:	8b c8                	mov    %eax,%ecx
46fabf:	e8 b9 f0 ff ff       	call   0x46eb7d
46fac4:	8b 7d f8             	mov    -0x8(%ebp),%edi
46fac7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46faca:	8b 45 08             	mov    0x8(%ebp),%eax
46facd:	89 38                	mov    %edi,(%eax)
46facf:	89 48 04             	mov    %ecx,0x4(%eax)
46fad2:	5f                   	pop    %edi
46fad3:	5e                   	pop    %esi
46fad4:	5b                   	pop    %ebx
46fad5:	c9                   	leave
46fad6:	c3                   	ret
46fad7:	55                   	push   %ebp
46fad8:	8b ec                	mov    %esp,%ebp
46fada:	53                   	push   %ebx
46fadb:	8a 5d 08             	mov    0x8(%ebp),%bl
46fade:	56                   	push   %esi
46fadf:	8b f1                	mov    %ecx,%esi
46fae1:	84 db                	test   %bl,%bl
46fae3:	74 24                	je     0x46fb09
46fae5:	6a 08                	push   $0x8
46fae7:	b9 a8 83 4c 00       	mov    $0x4c83a8,%ecx
46faec:	e8 42 23 00 00       	call   0x471e33
46faf1:	85 c0                	test   %eax,%eax
46faf3:	74 0d                	je     0x46fb02
46faf5:	c7 00 58 16 4a 00    	movl   $0x4a1658,(%eax)
46fafb:	88 58 04             	mov    %bl,0x4(%eax)
46fafe:	89 06                	mov    %eax,(%esi)
46fb00:	eb 07                	jmp    0x46fb09
46fb02:	83 26 00             	andl   $0x0,(%esi)
46fb05:	c6 46 04 03          	movb   $0x3,0x4(%esi)
46fb09:	5e                   	pop    %esi
46fb0a:	5b                   	pop    %ebx
46fb0b:	5d                   	pop    %ebp
46fb0c:	c2 04 00             	ret    $0x4
46fb0f:	55                   	push   %ebp
46fb10:	8b ec                	mov    %esp,%ebp
46fb12:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
46fb17:	83 ec 10             	sub    $0x10,%esp
46fb1a:	80 38 00             	cmpb   $0x0,(%eax)
46fb1d:	75 04                	jne    0x46fb23
46fb1f:	6a 01                	push   $0x1
46fb21:	eb 47                	jmp    0x46fb6a
46fb23:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
46fb27:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46fb2a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46fb2e:	6a 26                	push   $0x26
46fb30:	e8 a2 ff ff ff       	call   0x46fad7
46fb35:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fb38:	50                   	push   %eax
46fb39:	e8 17 3f 00 00       	call   0x473a55
46fb3e:	59                   	pop    %ecx
46fb3f:	50                   	push   %eax
46fb40:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46fb43:	e8 f3 f0 ff ff       	call   0x46ec3b
46fb48:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
46fb4d:	80 38 40             	cmpb   $0x40,(%eax)
46fb50:	75 16                	jne    0x46fb68
46fb52:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46fb55:	40                   	inc    %eax
46fb56:	a3 8c 83 4c 00       	mov    %eax,0x4c838c
46fb5b:	8b 45 08             	mov    0x8(%ebp),%eax
46fb5e:	89 08                	mov    %ecx,(%eax)
46fb60:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46fb63:	89 48 04             	mov    %ecx,0x4(%eax)
46fb66:	c9                   	leave
46fb67:	c3                   	ret
46fb68:	6a 02                	push   $0x2
46fb6a:	8b 4d 08             	mov    0x8(%ebp),%ecx
46fb6d:	e8 e4 ec ff ff       	call   0x46e856
46fb72:	8b 45 08             	mov    0x8(%ebp),%eax
46fb75:	c9                   	leave
46fb76:	c3                   	ret
46fb77:	55                   	push   %ebp
46fb78:	8b ec                	mov    %esp,%ebp
46fb7a:	83 ec 18             	sub    $0x18,%esp
46fb7d:	53                   	push   %ebx
46fb7e:	56                   	push   %esi
46fb7f:	8b 75 08             	mov    0x8(%ebp),%esi
46fb82:	33 db                	xor    %ebx,%ebx
46fb84:	43                   	inc    %ebx
46fb85:	57                   	push   %edi
46fb86:	83 26 00             	andl   $0x0,(%esi)
46fb89:	83 66 04 00          	andl   $0x0,0x4(%esi)
46fb8d:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
46fb92:	8a 00                	mov    (%eax),%al
46fb94:	3c 40                	cmp    $0x40,%al
46fb96:	0f 84 3e 01 00 00    	je     0x46fcda
46fb9c:	3c 5a                	cmp    $0x5a,%al
46fb9e:	0f 84 36 01 00 00    	je     0x46fcda
46fba4:	85 db                	test   %ebx,%ebx
46fba6:	74 04                	je     0x46fbac
46fba8:	33 db                	xor    %ebx,%ebx
46fbaa:	eb 09                	jmp    0x46fbb5
46fbac:	6a 2c                	push   $0x2c
46fbae:	8b ce                	mov    %esi,%ecx
46fbb0:	e8 dd f0 ff ff       	call   0x46ec92
46fbb5:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
46fbba:	8a 00                	mov    (%eax),%al
46fbbc:	84 c0                	test   %al,%al
46fbbe:	0f 84 f6 00 00 00    	je     0x46fcba
46fbc4:	0f be c0             	movsbl %al,%eax
46fbc7:	83 c0 d0             	add    $0xffffffd0,%eax
46fbca:	83 f8 09             	cmp    $0x9,%eax
46fbcd:	0f 87 80 00 00 00    	ja     0x46fc53
46fbd3:	8b 0d 80 83 4c 00    	mov    0x4c8380,%ecx
46fbd9:	ff 05 8c 83 4c 00    	incl   0x4c838c
46fbdf:	50                   	push   %eax
46fbe0:	8d 45 e8             	lea    -0x18(%ebp),%eax
46fbe3:	50                   	push   %eax
46fbe4:	e8 c7 ee ff ff       	call   0x46eab0
46fbe9:	80 7e 04 01          	cmpb   $0x1,0x4(%esi)
46fbed:	8b c8                	mov    %eax,%ecx
46fbef:	0f 8f b9 00 00 00    	jg     0x46fcae
46fbf5:	83 3e 00             	cmpl   $0x0,(%esi)
46fbf8:	8b 01                	mov    (%ecx),%eax
46fbfa:	75 22                	jne    0x46fc1e
46fbfc:	85 c0                	test   %eax,%eax
46fbfe:	75 11                	jne    0x46fc11
46fc00:	0f be 41 04          	movsbl 0x4(%ecx),%eax
46fc04:	50                   	push   %eax
46fc05:	8b ce                	mov    %esi,%ecx
46fc07:	e8 72 ee ff ff       	call   0x46ea7e
46fc0c:	e9 9d 00 00 00       	jmp    0x46fcae
46fc11:	89 06                	mov    %eax,(%esi)
46fc13:	8b 41 04             	mov    0x4(%ecx),%eax
46fc16:	89 46 04             	mov    %eax,0x4(%esi)
46fc19:	e9 90 00 00 00       	jmp    0x46fcae
46fc1e:	85 c0                	test   %eax,%eax
46fc20:	75 27                	jne    0x46fc49
46fc22:	0f be 41 04          	movsbl 0x4(%ecx),%eax
46fc26:	85 c0                	test   %eax,%eax
46fc28:	0f 84 80 00 00 00    	je     0x46fcae
46fc2e:	83 f8 02             	cmp    $0x2,%eax
46fc31:	74 d1                	je     0x46fc04
46fc33:	83 f8 03             	cmp    $0x3,%eax
46fc36:	74 cc                	je     0x46fc04
46fc38:	50                   	push   %eax
46fc39:	e8 8b 4e 00 00       	call   0x474ac9
46fc3e:	59                   	pop    %ecx
46fc3f:	50                   	push   %eax
46fc40:	8b ce                	mov    %esi,%ecx
46fc42:	e8 46 e9 ff ff       	call   0x46e58d
46fc47:	eb 65                	jmp    0x46fcae
46fc49:	50                   	push   %eax
46fc4a:	8b ce                	mov    %esi,%ecx
46fc4c:	e8 3c e9 ff ff       	call   0x46e58d
46fc51:	eb 5b                	jmp    0x46fcae
46fc53:	8b 3d 8c 83 4c 00    	mov    0x4c838c,%edi
46fc59:	8d 45 f8             	lea    -0x8(%ebp),%eax
46fc5c:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
46fc60:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
46fc64:	50                   	push   %eax
46fc65:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fc68:	50                   	push   %eax
46fc69:	e8 d7 2c 00 00       	call   0x472945
46fc6e:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
46fc73:	2b c7                	sub    %edi,%eax
46fc75:	59                   	pop    %ecx
46fc76:	59                   	pop    %ecx
46fc77:	83 f8 01             	cmp    $0x1,%eax
46fc7a:	7e 14                	jle    0x46fc90
46fc7c:	8b 0d 80 83 4c 00    	mov    0x4c8380,%ecx
46fc82:	83 39 09             	cmpl   $0x9,(%ecx)
46fc85:	74 09                	je     0x46fc90
46fc87:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fc8a:	50                   	push   %eax
46fc8b:	e8 97 f0 ff ff       	call   0x46ed27
46fc90:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fc93:	8b ce                	mov    %esi,%ecx
46fc95:	50                   	push   %eax
46fc96:	e8 a0 ef ff ff       	call   0x46ec3b
46fc9b:	39 3d 8c 83 4c 00    	cmp    %edi,0x4c838c
46fca1:	75 0b                	jne    0x46fcae
46fca3:	83 66 04 00          	andl   $0x0,0x4(%esi)
46fca7:	83 26 00             	andl   $0x0,(%esi)
46fcaa:	c6 46 04 02          	movb   $0x2,0x4(%esi)
46fcae:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
46fcb2:	0f 84 d5 fe ff ff    	je     0x46fb8d
46fcb8:	eb 20                	jmp    0x46fcda
46fcba:	80 7e 04 01          	cmpb   $0x1,0x4(%esi)
46fcbe:	7f 1a                	jg     0x46fcda
46fcc0:	83 3e 00             	cmpl   $0x0,(%esi)
46fcc3:	8b ce                	mov    %esi,%ecx
46fcc5:	74 0c                	je     0x46fcd3
46fcc7:	68 cc 17 4a 00       	push   $0x4a17cc
46fccc:	e8 bc e8 ff ff       	call   0x46e58d
46fcd1:	eb 07                	jmp    0x46fcda
46fcd3:	6a 01                	push   $0x1
46fcd5:	e8 a4 ed ff ff       	call   0x46ea7e
46fcda:	5f                   	pop    %edi
46fcdb:	8b c6                	mov    %esi,%eax
46fcdd:	5e                   	pop    %esi
46fcde:	5b                   	pop    %ebx
46fcdf:	c9                   	leave
46fce0:	c3                   	ret
46fce1:	55                   	push   %ebp
46fce2:	8b ec                	mov    %esp,%ebp
46fce4:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
46fce9:	83 ec 10             	sub    $0x10,%esp
46fcec:	0f be 08             	movsbl (%eax),%ecx
46fcef:	83 e9 58             	sub    $0x58,%ecx
46fcf2:	0f 84 cc 00 00 00    	je     0x46fdc4
46fcf8:	49                   	dec    %ecx
46fcf9:	83 e9 01             	sub    $0x1,%ecx
46fcfc:	0f 84 8b 00 00 00    	je     0x46fd8d
46fd02:	8d 45 f8             	lea    -0x8(%ebp),%eax
46fd05:	50                   	push   %eax
46fd06:	e8 6c fe ff ff       	call   0x46fb77
46fd0b:	8b 55 fc             	mov    -0x4(%ebp),%edx
46fd0e:	59                   	pop    %ecx
46fd0f:	84 d2                	test   %dl,%dl
46fd11:	75 6d                	jne    0x46fd80
46fd13:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
46fd18:	8a 08                	mov    (%eax),%cl
46fd1a:	84 c9                	test   %cl,%cl
46fd1c:	74 62                	je     0x46fd80
46fd1e:	80 f9 40             	cmp    $0x40,%cl
46fd21:	74 57                	je     0x46fd7a
46fd23:	80 f9 5a             	cmp    $0x5a,%cl
46fd26:	74 0f                	je     0x46fd37
46fd28:	8b 4d 08             	mov    0x8(%ebp),%ecx
46fd2b:	6a 02                	push   $0x2
46fd2d:	e8 24 eb ff ff       	call   0x46e856
46fd32:	e9 ad 00 00 00       	jmp    0x46fde4
46fd37:	40                   	inc    %eax
46fd38:	a3 8c 83 4c 00       	mov    %eax,0x4c838c
46fd3d:	a1 94 83 4c 00       	mov    0x4c8394,%eax
46fd42:	c1 e8 12             	shr    $0x12,%eax
46fd45:	f7 d0                	not    %eax
46fd47:	a8 01                	test   $0x1,%al
46fd49:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fd4c:	74 10                	je     0x46fd5e
46fd4e:	c7 45 f0 a4 14 4a 00 	movl   $0x4a14a4,-0x10(%ebp)
46fd55:	c7 45 f4 04 00 00 00 	movl   $0x4,-0xc(%ebp)
46fd5c:	eb 0e                	jmp    0x46fd6c
46fd5e:	c7 45 f0 ac 14 4a 00 	movl   $0x4a14ac,-0x10(%ebp)
46fd65:	c7 45 f4 0b 00 00 00 	movl   $0xb,-0xc(%ebp)
46fd6c:	50                   	push   %eax
46fd6d:	ff 75 08             	push   0x8(%ebp)
46fd70:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46fd73:	e8 e3 ed ff ff       	call   0x46eb5b
46fd78:	eb 6a                	jmp    0x46fde4
46fd7a:	40                   	inc    %eax
46fd7b:	a3 8c 83 4c 00       	mov    %eax,0x4c838c
46fd80:	8b 45 08             	mov    0x8(%ebp),%eax
46fd83:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46fd86:	89 08                	mov    %ecx,(%eax)
46fd88:	89 50 04             	mov    %edx,0x4(%eax)
46fd8b:	c9                   	leave
46fd8c:	c3                   	ret
46fd8d:	40                   	inc    %eax
46fd8e:	a3 8c 83 4c 00       	mov    %eax,0x4c838c
46fd93:	a1 94 83 4c 00       	mov    0x4c8394,%eax
46fd98:	c1 e8 12             	shr    $0x12,%eax
46fd9b:	f7 d0                	not    %eax
46fd9d:	a8 01                	test   $0x1,%al
46fd9f:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fda2:	74 10                	je     0x46fdb4
46fda4:	c7 45 f0 94 12 4a 00 	movl   $0x4a1294,-0x10(%ebp)
46fdab:	c7 45 f4 03 00 00 00 	movl   $0x3,-0xc(%ebp)
46fdb2:	eb 27                	jmp    0x46fddb
46fdb4:	c7 45 f0 98 14 4a 00 	movl   $0x4a1498,-0x10(%ebp)
46fdbb:	c7 45 f4 0a 00 00 00 	movl   $0xa,-0xc(%ebp)
46fdc2:	eb 17                	jmp    0x46fddb
46fdc4:	40                   	inc    %eax
46fdc5:	c7 45 f0 04 13 4a 00 	movl   $0x4a1304,-0x10(%ebp)
46fdcc:	a3 8c 83 4c 00       	mov    %eax,0x4c838c
46fdd1:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fdd4:	c7 45 f4 04 00 00 00 	movl   $0x4,-0xc(%ebp)
46fddb:	8b 4d 08             	mov    0x8(%ebp),%ecx
46fdde:	50                   	push   %eax
46fddf:	e8 02 ea ff ff       	call   0x46e7e6
46fde4:	8b 45 08             	mov    0x8(%ebp),%eax
46fde7:	c9                   	leave
46fde8:	c3                   	ret
46fde9:	55                   	push   %ebp
46fdea:	8b ec                	mov    %esp,%ebp
46fdec:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
46fdf1:	83 ec 10             	sub    $0x10,%esp
46fdf4:	80 38 00             	cmpb   $0x0,(%eax)
46fdf7:	75 04                	jne    0x46fdfd
46fdf9:	6a 01                	push   $0x1
46fdfb:	eb 53                	jmp    0x46fe50
46fdfd:	8d 45 f8             	lea    -0x8(%ebp),%eax
46fe00:	50                   	push   %eax
46fe01:	e8 4f 3c 00 00       	call   0x473a55
46fe06:	59                   	pop    %ecx
46fe07:	6a 5b                	push   $0x5b
46fe09:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46fe0c:	e8 81 ee ff ff       	call   0x46ec92
46fe11:	8d 45 f0             	lea    -0x10(%ebp),%eax
46fe14:	50                   	push   %eax
46fe15:	e8 3b 3c 00 00       	call   0x473a55
46fe1a:	59                   	pop    %ecx
46fe1b:	50                   	push   %eax
46fe1c:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46fe1f:	e8 17 ee ff ff       	call   0x46ec3b
46fe24:	6a 5d                	push   $0x5d
46fe26:	8d 4d f8             	lea    -0x8(%ebp),%ecx
46fe29:	e8 64 ee ff ff       	call   0x46ec92
46fe2e:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
46fe33:	80 38 40             	cmpb   $0x40,(%eax)
46fe36:	75 16                	jne    0x46fe4e
46fe38:	8b 4d f8             	mov    -0x8(%ebp),%ecx
46fe3b:	40                   	inc    %eax
46fe3c:	a3 8c 83 4c 00       	mov    %eax,0x4c838c
46fe41:	8b 45 08             	mov    0x8(%ebp),%eax
46fe44:	89 08                	mov    %ecx,(%eax)
46fe46:	8b 4d fc             	mov    -0x4(%ebp),%ecx
46fe49:	89 48 04             	mov    %ecx,0x4(%eax)
46fe4c:	c9                   	leave
46fe4d:	c3                   	ret
46fe4e:	6a 02                	push   $0x2