47e974:	83 d0 00             	adc    $0x0,%eax
47e977:	8b d8                	mov    %eax,%ebx
47e979:	83 ef 01             	sub    $0x1,%edi
47e97c:	75 e2                	jne    0x47e960
47e97e:	8b 5d cc             	mov    -0x34(%ebp),%ebx
47e981:	83 c3 ff             	add    $0xffffffff,%ebx
47e984:	8b 45 c8             	mov    -0x38(%ebp),%eax
47e987:	48                   	dec    %eax
47e988:	89 45 f4             	mov    %eax,-0xc(%ebp)
47e98b:	8b 75 b4             	mov    -0x4c(%ebp),%esi
47e98e:	33 c0                	xor    %eax,%eax
47e990:	8b 4d e8             	mov    -0x18(%ebp),%ecx
47e993:	03 c3                	add    %ebx,%eax
47e995:	8b 5d b0             	mov    -0x50(%ebp),%ebx
47e998:	8b f8                	mov    %eax,%edi
47e99a:	8b 45 c8             	mov    -0x38(%ebp),%eax
47e99d:	83 d6 00             	adc    $0x0,%esi
47e9a0:	83 6d c4 04          	subl   $0x4,-0x3c(%ebp)
47e9a4:	4b                   	dec    %ebx
47e9a5:	48                   	dec    %eax
47e9a6:	89 7d b4             	mov    %edi,-0x4c(%ebp)
47e9a9:	83 e9 04             	sub    $0x4,%ecx
47e9ac:	89 5d b0             	mov    %ebx,-0x50(%ebp)
47e9af:	89 45 c8             	mov    %eax,-0x38(%ebp)
47e9b2:	89 4d e8             	mov    %ecx,-0x18(%ebp)
47e9b5:	85 db                	test   %ebx,%ebx
47e9b7:	0f 89 f3 fd ff ff    	jns    0x47e7b0
47e9bd:	eb 02                	jmp    0x47e9c1
47e9bf:	33 ff                	xor    %edi,%edi
47e9c1:	8b 4d f4             	mov    -0xc(%ebp),%ecx
47e9c4:	8b 5d 08             	mov    0x8(%ebp),%ebx
47e9c7:	41                   	inc    %ecx
47e9c8:	8b c1                	mov    %ecx,%eax
47e9ca:	3b 03                	cmp    (%ebx),%eax
47e9cc:	73 14                	jae    0x47e9e2
47e9ce:	8d 53 04             	lea    0x4(%ebx),%edx
47e9d1:	8d 14 82             	lea    (%edx,%eax,4),%edx
47e9d4:	c7 02 00 00 00 00    	movl   $0x0,(%edx)
47e9da:	8d 52 04             	lea    0x4(%edx),%edx
47e9dd:	40                   	inc    %eax
47e9de:	3b 03                	cmp    (%ebx),%eax
47e9e0:	72 f2                	jb     0x47e9d4
47e9e2:	89 0b                	mov    %ecx,(%ebx)
47e9e4:	85 c9                	test   %ecx,%ecx
47e9e6:	74 0d                	je     0x47e9f5
47e9e8:	83 3c 8b 00          	cmpl   $0x0,(%ebx,%ecx,4)
47e9ec:	75 07                	jne    0x47e9f5
47e9ee:	83 c1 ff             	add    $0xffffffff,%ecx
47e9f1:	89 0b                	mov    %ecx,(%ebx)
47e9f3:	75 f3                	jne    0x47e9e8
47e9f5:	8b c7                	mov    %edi,%eax
47e9f7:	8b d6                	mov    %esi,%edx
47e9f9:	5f                   	pop    %edi
47e9fa:	5e                   	pop    %esi
47e9fb:	5b                   	pop    %ebx
47e9fc:	8b e5                	mov    %ebp,%esp
47e9fe:	5d                   	pop    %ebp
47e9ff:	c3                   	ret
47ea00:	5f                   	pop    %edi
47ea01:	5e                   	pop    %esi
47ea02:	33 c0                	xor    %eax,%eax
47ea04:	33 d2                	xor    %edx,%edx
47ea06:	5b                   	pop    %ebx
47ea07:	8b e5                	mov    %ebp,%esp
47ea09:	5d                   	pop    %ebp
47ea0a:	c3                   	ret
47ea0b:	80 79 04 00          	cmpb   $0x0,0x4(%ecx)
47ea0f:	74 09                	je     0x47ea1a
47ea11:	83 c8 ff             	or     $0xffffffff,%eax
47ea14:	ba ff ff 1f 00       	mov    $0x1fffff,%edx
47ea19:	c3                   	ret
47ea1a:	b8 ff ff ff 00       	mov    $0xffffff,%eax
47ea1f:	33 d2                	xor    %edx,%edx
47ea21:	c3                   	ret
47ea22:	8b ff                	mov    %edi,%edi
47ea24:	55                   	push   %ebp
47ea25:	8b ec                	mov    %esp,%ebp
47ea27:	8b 4d 10             	mov    0x10(%ebp),%ecx
47ea2a:	85 c9                	test   %ecx,%ecx
47ea2c:	75 16                	jne    0x47ea44
47ea2e:	ff 75 0c             	push   0xc(%ebp)
47ea31:	ff 75 08             	push   0x8(%ebp)
47ea34:	e8 33 37 00 00       	call   0x48216c
47ea39:	50                   	push   %eax
47ea3a:	e8 50 a8 ff ff       	call   0x47928f
47ea3f:	83 c4 0c             	add    $0xc,%esp
47ea42:	5d                   	pop    %ebp
47ea43:	c3                   	ret
47ea44:	8b 55 08             	mov    0x8(%ebp),%edx
47ea47:	56                   	push   %esi
47ea48:	8b 31                	mov    (%ecx),%esi
47ea4a:	8d 42 01             	lea    0x1(%edx),%eax
47ea4d:	3d 00 01 00 00       	cmp    $0x100,%eax
47ea52:	77 0b                	ja     0x47ea5f
47ea54:	8b 06                	mov    (%esi),%eax
47ea56:	0f b7 04 50          	movzwl (%eax,%edx,2),%eax
47ea5a:	23 45 0c             	and    0xc(%ebp),%eax
47ea5d:	eb 17                	jmp    0x47ea76
47ea5f:	83 7e 04 01          	cmpl   $0x1,0x4(%esi)
47ea63:	7e 0f                	jle    0x47ea74
47ea65:	51                   	push   %ecx
47ea66:	ff 75 0c             	push   0xc(%ebp)
47ea69:	52                   	push   %edx
47ea6a:	e8 9a ae 00 00       	call   0x489909
47ea6f:	83 c4 0c             	add    $0xc,%esp
47ea72:	eb 02                	jmp    0x47ea76
47ea74:	33 c0                	xor    %eax,%eax
47ea76:	5e                   	pop    %esi
47ea77:	5d                   	pop    %ebp
47ea78:	c3                   	ret
47ea79:	8b ff                	mov    %edi,%edi
47ea7b:	55                   	push   %ebp
47ea7c:	8b ec                	mov    %esp,%ebp
47ea7e:	6a 00                	push   $0x0
47ea80:	ff 75 0c             	push   0xc(%ebp)
47ea83:	ff 75 08             	push   0x8(%ebp)
47ea86:	e8 23 bc ff ff       	call   0x47a6ae
47ea8b:	83 c4 0c             	add    $0xc,%esp
47ea8e:	5d                   	pop    %ebp
47ea8f:	c3                   	ret
47ea90:	8b ff                	mov    %edi,%edi
47ea92:	55                   	push   %ebp
47ea93:	8b ec                	mov    %esp,%ebp
47ea95:	6a 00                	push   $0x0
47ea97:	ff 75 0c             	push   0xc(%ebp)
47ea9a:	ff 75 08             	push   0x8(%ebp)
47ea9d:	e8 7d bb ff ff       	call   0x47a61f
47eaa2:	83 c4 0c             	add    $0xc,%esp
47eaa5:	5d                   	pop    %ebp
47eaa6:	c3                   	ret
47eaa7:	8b ff                	mov    %edi,%edi
47eaa9:	55                   	push   %ebp
47eaaa:	8b ec                	mov    %esp,%ebp
47eaac:	6a 00                	push   $0x0
47eaae:	ff 75 0c             	push   0xc(%ebp)
47eab1:	ff 75 08             	push   0x8(%ebp)
47eab4:	e8 7e bc ff ff       	call   0x47a737
47eab9:	83 c4 0c             	add    $0xc,%esp
47eabc:	5d                   	pop    %ebp
47eabd:	c3                   	ret
47eabe:	cc                   	int3
47eabf:	cc                   	int3
47eac0:	55                   	push   %ebp
47eac1:	8b ec                	mov    %esp,%ebp
47eac3:	56                   	push   %esi
47eac4:	33 c0                	xor    %eax,%eax
47eac6:	50                   	push   %eax
47eac7:	50                   	push   %eax
47eac8:	50                   	push   %eax
47eac9:	50                   	push   %eax
47eaca:	50                   	push   %eax
47eacb:	50                   	push   %eax
47eacc:	50                   	push   %eax
47eacd:	50                   	push   %eax
47eace:	8b 55 0c             	mov    0xc(%ebp),%edx
47ead1:	8d 49 00             	lea    0x0(%ecx),%ecx
47ead4:	8a 02                	mov    (%edx),%al
47ead6:	0a c0                	or     %al,%al
47ead8:	74 09                	je     0x47eae3
47eada:	83 c2 01             	add    $0x1,%edx
47eadd:	0f ab 04 24          	bts    %eax,(%esp)
47eae1:	eb f1                	jmp    0x47ead4
47eae3:	8b 75 08             	mov    0x8(%ebp),%esi
47eae6:	83 c9 ff             	or     $0xffffffff,%ecx
47eae9:	8d 49 00             	lea    0x0(%ecx),%ecx
47eaec:	83 c1 01             	add    $0x1,%ecx
47eaef:	8a 06                	mov    (%esi),%al
47eaf1:	0a c0                	or     %al,%al
47eaf3:	74 09                	je     0x47eafe
47eaf5:	83 c6 01             	add    $0x1,%esi
47eaf8:	0f a3 04 24          	bt     %eax,(%esp)
47eafc:	73 ee                	jae    0x47eaec
47eafe:	8b c1                	mov    %ecx,%eax
47eb00:	83 c4 20             	add    $0x20,%esp
47eb03:	5e                   	pop    %esi
47eb04:	c9                   	leave
47eb05:	c3                   	ret
47eb06:	8b ff                	mov    %edi,%edi
47eb08:	55                   	push   %ebp
47eb09:	8b ec                	mov    %esp,%ebp
47eb0b:	f6 45 08 04          	testb  $0x4,0x8(%ebp)
47eb0f:	75 32                	jne    0x47eb43
47eb11:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
47eb15:	74 28                	je     0x47eb3f
47eb17:	f6 45 08 02          	testb  $0x2,0x8(%ebp)
47eb1b:	74 11                	je     0x47eb2e
47eb1d:	81 7d 10 00 00 00 80 	cmpl   $0x80000000,0x10(%ebp)
47eb24:	77 1d                	ja     0x47eb43
47eb26:	72 17                	jb     0x47eb3f
47eb28:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
47eb2c:	eb 0f                	jmp    0x47eb3d
47eb2e:	81 7d 10 ff ff ff 7f 	cmpl   $0x7fffffff,0x10(%ebp)
47eb35:	77 0c                	ja     0x47eb43
47eb37:	72 06                	jb     0x47eb3f
47eb39:	83 7d 0c ff          	cmpl   $0xffffffff,0xc(%ebp)
47eb3d:	77 04                	ja     0x47eb43
47eb3f:	32 c0                	xor    %al,%al
47eb41:	5d                   	pop    %ebp
47eb42:	c3                   	ret
47eb43:	b0 01                	mov    $0x1,%al
47eb45:	5d                   	pop    %ebp
47eb46:	c3                   	ret
47eb47:	8b ff                	mov    %edi,%edi
47eb49:	55                   	push   %ebp
47eb4a:	8b ec                	mov    %esp,%ebp
47eb4c:	83 ec 14             	sub    $0x14,%esp
47eb4f:	8d 4d 0c             	lea    0xc(%ebp),%ecx
47eb52:	53                   	push   %ebx
47eb53:	56                   	push   %esi
47eb54:	e8 12 a6 ff ff       	call   0x47916b
47eb59:	84 c0                	test   %al,%al
47eb5b:	74 2f                	je     0x47eb8c
47eb5d:	8b 75 14             	mov    0x14(%ebp),%esi
47eb60:	85 f6                	test   %esi,%esi
47eb62:	74 3d                	je     0x47eba1
47eb64:	83 fe 02             	cmp    $0x2,%esi
47eb67:	7c 05                	jl     0x47eb6e
47eb69:	83 fe 24             	cmp    $0x24,%esi
47eb6c:	7e 33                	jle    0x47eba1
47eb6e:	8b 45 08             	mov    0x8(%ebp),%eax
47eb71:	50                   	push   %eax
47eb72:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
47eb76:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
47eb7d:	33 c0                	xor    %eax,%eax
47eb7f:	50                   	push   %eax
47eb80:	50                   	push   %eax
47eb81:	50                   	push   %eax
47eb82:	50                   	push   %eax
47eb83:	50                   	push   %eax
47eb84:	e8 1b aa ff ff       	call   0x4795a4
47eb89:	83 c4 18             	add    $0x18,%esp
47eb8c:	8b 4d 10             	mov    0x10(%ebp),%ecx
47eb8f:	85 c9                	test   %ecx,%ecx
47eb91:	0f 84 8a 01 00 00    	je     0x47ed21
47eb97:	8b 45 0c             	mov    0xc(%ebp),%eax
47eb9a:	89 01                	mov    %eax,(%ecx)
47eb9c:	e9 80 01 00 00       	jmp    0x47ed21
47eba1:	8b 45 0c             	mov    0xc(%ebp),%eax
47eba4:	83 65 f4 00          	andl   $0x0,-0xc(%ebp)
47eba8:	57                   	push   %edi
47eba9:	8b 7d 08             	mov    0x8(%ebp),%edi
47ebac:	8a 18                	mov    (%eax),%bl
47ebae:	89 45 ec             	mov    %eax,-0x14(%ebp)
47ebb1:	40                   	inc    %eax
47ebb2:	88 5d fc             	mov    %bl,-0x4(%ebp)
47ebb5:	80 7f 14 00          	cmpb   $0x0,0x14(%edi)
47ebb9:	89 45 0c             	mov    %eax,0xc(%ebp)
47ebbc:	75 07                	jne    0x47ebc5
47ebbe:	8b cf                	mov    %edi,%ecx
47ebc0:	e8 4b a5 ff ff       	call   0x479110
47ebc5:	83 c7 0c             	add    $0xc,%edi
47ebc8:	eb 0c                	jmp    0x47ebd6
47ebca:	8b 45 0c             	mov    0xc(%ebp),%eax
47ebcd:	8a 18                	mov    (%eax),%bl
47ebcf:	40                   	inc    %eax
47ebd0:	88 5d fc             	mov    %bl,-0x4(%ebp)
47ebd3:	89 45 0c             	mov    %eax,0xc(%ebp)
47ebd6:	57                   	push   %edi
47ebd7:	0f b6 c3             	movzbl %bl,%eax
47ebda:	6a 08                	push   $0x8
47ebdc:	50                   	push   %eax
47ebdd:	e8 40 fe ff ff       	call   0x47ea22
47ebe2:	83 c4 0c             	add    $0xc,%esp
47ebe5:	85 c0                	test   %eax,%eax
47ebe7:	75 e1                	jne    0x47ebca
47ebe9:	0f b6 45 18          	movzbl 0x18(%ebp),%eax
47ebed:	89 45 f8             	mov    %eax,-0x8(%ebp)
47ebf0:	80 fb 2d             	cmp    $0x2d,%bl
47ebf3:	75 08                	jne    0x47ebfd
47ebf5:	83 c8 02             	or     $0x2,%eax
47ebf8:	89 45 f8             	mov    %eax,-0x8(%ebp)
47ebfb:	eb 05                	jmp    0x47ec02
47ebfd:	80 fb 2b             	cmp    $0x2b,%bl
47ec00:	75 0e                	jne    0x47ec10
47ec02:	8b 7d 0c             	mov    0xc(%ebp),%edi
47ec05:	8a 1f                	mov    (%edi),%bl
47ec07:	47                   	inc    %edi
47ec08:	88 5d fc             	mov    %bl,-0x4(%ebp)
47ec0b:	89 7d 0c             	mov    %edi,0xc(%ebp)
47ec0e:	eb 03                	jmp    0x47ec13
47ec10:	8b 7d 0c             	mov    0xc(%ebp),%edi
47ec13:	85 f6                	test   %esi,%esi
47ec15:	74 05                	je     0x47ec1c
47ec17:	83 fe 10             	cmp    $0x10,%esi
47ec1a:	75 73                	jne    0x47ec8f
47ec1c:	8a c3                	mov    %bl,%al
47ec1e:	2c 30                	sub    $0x30,%al
47ec20:	3c 09                	cmp    $0x9,%al
47ec22:	77 08                	ja     0x47ec2c
47ec24:	0f be c3             	movsbl %bl,%eax
47ec27:	83 c0 d0             	add    $0xffffffd0,%eax
47ec2a:	eb 1e                	jmp    0x47ec4a
47ec2c:	8a c3                	mov    %bl,%al
47ec2e:	2c 61                	sub    $0x61,%al
47ec30:	3c 19                	cmp    $0x19,%al
47ec32:	77 08                	ja     0x47ec3c
47ec34:	0f be c3             	movsbl %bl,%eax
47ec37:	83 c0 a9             	add    $0xffffffa9,%eax
47ec3a:	eb 0e                	jmp    0x47ec4a
47ec3c:	8a c3                	mov    %bl,%al
47ec3e:	2c 41                	sub    $0x41,%al
47ec40:	3c 19                	cmp    $0x19,%al
47ec42:	77 44                	ja     0x47ec88
47ec44:	0f be c3             	movsbl %bl,%eax
47ec47:	83 c0 c9             	add    $0xffffffc9,%eax
47ec4a:	85 c0                	test   %eax,%eax
47ec4c:	75 3a                	jne    0x47ec88
47ec4e:	8a 07                	mov    (%edi),%al
47ec50:	47                   	inc    %edi
47ec51:	88 45 f0             	mov    %al,-0x10(%ebp)
47ec54:	89 7d 0c             	mov    %edi,0xc(%ebp)
47ec57:	3c 78                	cmp    $0x78,%al
47ec59:	74 1b                	je     0x47ec76
47ec5b:	3c 58                	cmp    $0x58,%al
47ec5d:	74 17                	je     0x47ec76
47ec5f:	85 f6                	test   %esi,%esi
47ec61:	75 03                	jne    0x47ec66
47ec63:	6a 08                	push   $0x8
47ec65:	5e                   	pop    %esi
47ec66:	ff 75 f0             	push   -0x10(%ebp)
47ec69:	8d 4d 0c             	lea    0xc(%ebp),%ecx
47ec6c:	e8 40 a4 ff ff       	call   0x4790b1
47ec71:	8b 7d 0c             	mov    0xc(%ebp),%edi
47ec74:	eb 19                	jmp    0x47ec8f
47ec76:	85 f6                	test   %esi,%esi
47ec78:	75 03                	jne    0x47ec7d
47ec7a:	6a 10                	push   $0x10
47ec7c:	5e                   	pop    %esi
47ec7d:	8a 1f                	mov    (%edi),%bl
47ec7f:	47                   	inc    %edi
47ec80:	88 5d fc             	mov    %bl,-0x4(%ebp)
47ec83:	89 7d 0c             	mov    %edi,0xc(%ebp)
47ec86:	eb 07                	jmp    0x47ec8f
47ec88:	85 f6                	test   %esi,%esi
47ec8a:	75 03                	jne    0x47ec8f
47ec8c:	6a 0a                	push   $0xa
47ec8e:	5e                   	pop    %esi
47ec8f:	83 c8 ff             	or     $0xffffffff,%eax
47ec92:	33 d2                	xor    %edx,%edx
47ec94:	f7 f6                	div    %esi
47ec96:	89 45 f0             	mov    %eax,-0x10(%ebp)
47ec99:	8a c3                	mov    %bl,%al
47ec9b:	2c 30                	sub    $0x30,%al
47ec9d:	3c 09                	cmp    $0x9,%al
47ec9f:	77 08                	ja     0x47eca9
47eca1:	0f be cb             	movsbl %bl,%ecx
47eca4:	83 c1 d0             	add    $0xffffffd0,%ecx
47eca7:	eb 23                	jmp    0x47eccc
47eca9:	8a c3                	mov    %bl,%al
47ecab:	2c 61                	sub    $0x61,%al