477895:	0f 94 c3             	sete   %bl
477898:	c7 45 f4 ff 03 00 00 	movl   $0x3ff,-0xc(%ebp)
47789f:	4b                   	dec    %ebx
4778a0:	33 c0                	xor    %eax,%eax
4778a2:	83 e3 e0             	and    $0xffffffe0,%ebx
4778a5:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
4778ab:	83 c3 27             	add    $0x27,%ebx
4778ae:	0b c1                	or     %ecx,%eax
4778b0:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
4778b3:	58                   	pop    %eax
4778b4:	75 1f                	jne    0x4778d5
4778b6:	88 07                	mov    %al,(%edi)
4778b8:	47                   	inc    %edi
4778b9:	8b 42 04             	mov    0x4(%edx),%eax
4778bc:	8b 0a                	mov    (%edx),%ecx
4778be:	25 ff ff 0f 00       	and    $0xfffff,%eax
4778c3:	0b c8                	or     %eax,%ecx
4778c5:	75 05                	jne    0x4778cc
4778c7:	21 4d f4             	and    %ecx,-0xc(%ebp)
4778ca:	eb 0d                	jmp    0x4778d9
4778cc:	c7 45 f4 fe 03 00 00 	movl   $0x3fe,-0xc(%ebp)
4778d3:	eb 04                	jmp    0x4778d9
4778d5:	c6 07 31             	movb   $0x31,(%edi)
4778d8:	47                   	inc    %edi
4778d9:	8b cf                	mov    %edi,%ecx
4778db:	47                   	inc    %edi
4778dc:	89 4d e8             	mov    %ecx,-0x18(%ebp)
4778df:	85 f6                	test   %esi,%esi
4778e1:	75 05                	jne    0x4778e8
4778e3:	c6 01 00             	movb   $0x0,(%ecx)
4778e6:	eb 0f                	jmp    0x4778f7
4778e8:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4778eb:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
4778f1:	8b 00                	mov    (%eax),%eax
4778f3:	8a 00                	mov    (%eax),%al
4778f5:	88 01                	mov    %al,(%ecx)
4778f7:	8b 42 04             	mov    0x4(%edx),%eax
4778fa:	25 ff ff 0f 00       	and    $0xfffff,%eax
4778ff:	89 45 f0             	mov    %eax,-0x10(%ebp)
477902:	77 09                	ja     0x47790d
477904:	83 3a 00             	cmpl   $0x0,(%edx)
477907:	0f 86 c5 00 00 00    	jbe    0x4779d2
47790d:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
477911:	b9 00 00 0f 00       	mov    $0xf0000,%ecx
477916:	6a 30                	push   $0x30
477918:	58                   	pop    %eax
477919:	89 45 f8             	mov    %eax,-0x8(%ebp)
47791c:	89 4d f0             	mov    %ecx,-0x10(%ebp)
47791f:	85 f6                	test   %esi,%esi
477921:	7e 53                	jle    0x477976
477923:	8b 02                	mov    (%edx),%eax
477925:	8b 52 04             	mov    0x4(%edx),%edx
477928:	23 45 fc             	and    -0x4(%ebp),%eax
47792b:	23 d1                	and    %ecx,%edx
47792d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
477930:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
477936:	0f bf c9             	movswl %cx,%ecx
477939:	e8 82 84 fc ff       	call   0x43fdc0
47793e:	6a 30                	push   $0x30
477940:	59                   	pop    %ecx
477941:	66 03 c1             	add    %cx,%ax
477944:	0f b7 c0             	movzwl %ax,%eax
477947:	83 f8 39             	cmp    $0x39,%eax
47794a:	76 02                	jbe    0x47794e
47794c:	03 c3                	add    %ebx,%eax
47794e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
477951:	8b 55 08             	mov    0x8(%ebp),%edx
477954:	88 07                	mov    %al,(%edi)
477956:	47                   	inc    %edi
477957:	8b 45 fc             	mov    -0x4(%ebp),%eax
47795a:	0f ac c8 04          	shrd   $0x4,%ecx,%eax
47795e:	89 45 fc             	mov    %eax,-0x4(%ebp)
477961:	8b 45 f8             	mov    -0x8(%ebp),%eax
477964:	c1 e9 04             	shr    $0x4,%ecx
477967:	83 e8 04             	sub    $0x4,%eax
47796a:	4e                   	dec    %esi
47796b:	89 4d f0             	mov    %ecx,-0x10(%ebp)
47796e:	89 45 f8             	mov    %eax,-0x8(%ebp)
477971:	66 85 c0             	test   %ax,%ax
477974:	79 a9                	jns    0x47791f
477976:	66 85 c0             	test   %ax,%ax
477979:	78 57                	js     0x4779d2
47797b:	8b 02                	mov    (%edx),%eax
47797d:	8b 52 04             	mov    0x4(%edx),%edx
477980:	23 45 fc             	and    -0x4(%ebp),%eax
477983:	23 d1                	and    %ecx,%edx
477985:	8b 4d f8             	mov    -0x8(%ebp),%ecx
477988:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
47798e:	0f bf c9             	movswl %cx,%ecx
477991:	e8 2a 84 fc ff       	call   0x43fdc0
477996:	66 83 f8 08          	cmp    $0x8,%ax
47799a:	76 36                	jbe    0x4779d2
47799c:	6a 30                	push   $0x30
47799e:	8d 47 ff             	lea    -0x1(%edi),%eax
4779a1:	5b                   	pop    %ebx
4779a2:	8a 08                	mov    (%eax),%cl
4779a4:	80 f9 66             	cmp    $0x66,%cl
4779a7:	74 05                	je     0x4779ae
4779a9:	80 f9 46             	cmp    $0x46,%cl
4779ac:	75 05                	jne    0x4779b3
4779ae:	88 18                	mov    %bl,(%eax)
4779b0:	48                   	dec    %eax
4779b1:	eb ef                	jmp    0x4779a2
4779b3:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
4779b6:	3b 45 e8             	cmp    -0x18(%ebp),%eax
4779b9:	74 14                	je     0x4779cf
4779bb:	8a 08                	mov    (%eax),%cl
4779bd:	80 f9 39             	cmp    $0x39,%cl
4779c0:	75 07                	jne    0x4779c9
4779c2:	80 c3 3a             	add    $0x3a,%bl
4779c5:	88 18                	mov    %bl,(%eax)
4779c7:	eb 09                	jmp    0x4779d2
4779c9:	fe c1                	inc    %cl
4779cb:	88 08                	mov    %cl,(%eax)
4779cd:	eb 03                	jmp    0x4779d2
4779cf:	fe 40 ff             	incb   -0x1(%eax)
4779d2:	85 f6                	test   %esi,%esi
4779d4:	7e 12                	jle    0x4779e8
4779d6:	56                   	push   %esi
4779d7:	6a 30                	push   $0x30
4779d9:	5b                   	pop    %ebx
4779da:	53                   	push   %ebx
4779db:	57                   	push   %edi
4779dc:	e8 7f c4 fc ff       	call   0x443e60
4779e1:	83 c4 0c             	add    $0xc,%esp
4779e4:	03 fe                	add    %esi,%edi
4779e6:	eb 03                	jmp    0x4779eb
4779e8:	6a 30                	push   $0x30
4779ea:	5b                   	pop    %ebx
4779eb:	8b 45 e8             	mov    -0x18(%ebp),%eax
4779ee:	80 38 00             	cmpb   $0x0,(%eax)
4779f1:	75 02                	jne    0x4779f5
4779f3:	8b f8                	mov    %eax,%edi
4779f5:	80 7d 20 00          	cmpb   $0x0,0x20(%ebp)
4779f9:	b1 34                	mov    $0x34,%cl
4779fb:	8b 55 08             	mov    0x8(%ebp),%edx
4779fe:	0f 94 c0             	sete   %al
477a01:	fe c8                	dec    %al
477a03:	24 e0                	and    $0xe0,%al
477a05:	04 70                	add    $0x70,%al
477a07:	88 07                	mov    %al,(%edi)
477a09:	8b 02                	mov    (%edx),%eax
477a0b:	8b 52 04             	mov    0x4(%edx),%edx
477a0e:	e8 ad 83 fc ff       	call   0x43fdc0
477a13:	8b c8                	mov    %eax,%ecx
477a15:	33 f6                	xor    %esi,%esi
477a17:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
477a1d:	2b 4d f4             	sub    -0xc(%ebp),%ecx
477a20:	1b f6                	sbb    %esi,%esi
477a22:	78 0f                	js     0x477a33
477a24:	7f 04                	jg     0x477a2a
477a26:	85 c9                	test   %ecx,%ecx
477a28:	72 09                	jb     0x477a33
477a2a:	c6 47 01 2b          	movb   $0x2b,0x1(%edi)
477a2e:	83 c7 02             	add    $0x2,%edi
477a31:	eb 0e                	jmp    0x477a41
477a33:	c6 47 01 2d          	movb   $0x2d,0x1(%edi)
477a37:	83 c7 02             	add    $0x2,%edi
477a3a:	f7 d9                	neg    %ecx
477a3c:	83 d6 00             	adc    $0x0,%esi
477a3f:	f7 de                	neg    %esi
477a41:	89 7d e8             	mov    %edi,-0x18(%ebp)
477a44:	88 1f                	mov    %bl,(%edi)
477a46:	85 f6                	test   %esi,%esi
477a48:	7c 4e                	jl     0x477a98
477a4a:	b8 e8 03 00 00       	mov    $0x3e8,%eax
477a4f:	7f 04                	jg     0x477a55
477a51:	3b c8                	cmp    %eax,%ecx
477a53:	72 1e                	jb     0x477a73
477a55:	53                   	push   %ebx
477a56:	6a 00                	push   $0x0
477a58:	50                   	push   %eax
477a59:	56                   	push   %esi
477a5a:	51                   	push   %ecx
477a5b:	e8 80 81 fc ff       	call   0x43fbe0
477a60:	8b f3                	mov    %ebx,%esi
477a62:	5b                   	pop    %ebx
477a63:	6a 30                	push   $0x30
477a65:	5b                   	pop    %ebx
477a66:	02 c3                	add    %bl,%al
477a68:	89 55 e4             	mov    %edx,-0x1c(%ebp)
477a6b:	88 07                	mov    %al,(%edi)
477a6d:	47                   	inc    %edi
477a6e:	3b 7d e8             	cmp    -0x18(%ebp),%edi
477a71:	75 0b                	jne    0x477a7e
477a73:	85 f6                	test   %esi,%esi
477a75:	7c 21                	jl     0x477a98
477a77:	7f 05                	jg     0x477a7e
477a79:	83 f9 64             	cmp    $0x64,%ecx
477a7c:	72 1a                	jb     0x477a98
477a7e:	53                   	push   %ebx
477a7f:	6a 00                	push   $0x0
477a81:	6a 64                	push   $0x64
477a83:	56                   	push   %esi
477a84:	51                   	push   %ecx
477a85:	e8 56 81 fc ff       	call   0x43fbe0
477a8a:	8b f3                	mov    %ebx,%esi
477a8c:	5b                   	pop    %ebx
477a8d:	6a 30                	push   $0x30
477a8f:	5b                   	pop    %ebx
477a90:	02 c3                	add    %bl,%al
477a92:	89 55 e4             	mov    %edx,-0x1c(%ebp)
477a95:	88 07                	mov    %al,(%edi)
477a97:	47                   	inc    %edi
477a98:	3b 7d e8             	cmp    -0x18(%ebp),%edi
477a9b:	75 0b                	jne    0x477aa8
477a9d:	85 f6                	test   %esi,%esi
477a9f:	7c 1f                	jl     0x477ac0
477aa1:	7f 05                	jg     0x477aa8
477aa3:	83 f9 0a             	cmp    $0xa,%ecx
477aa6:	72 18                	jb     0x477ac0
477aa8:	53                   	push   %ebx
477aa9:	6a 00                	push   $0x0
477aab:	6a 0a                	push   $0xa
477aad:	56                   	push   %esi
477aae:	51                   	push   %ecx
477aaf:	e8 2c 81 fc ff       	call   0x43fbe0
477ab4:	5b                   	pop    %ebx
477ab5:	6a 30                	push   $0x30
477ab7:	5b                   	pop    %ebx
477ab8:	02 c3                	add    %bl,%al
477aba:	89 55 e4             	mov    %edx,-0x1c(%ebp)
477abd:	88 07                	mov    %al,(%edi)
477abf:	47                   	inc    %edi
477ac0:	02 cb                	add    %bl,%cl
477ac2:	33 f6                	xor    %esi,%esi
477ac4:	88 0f                	mov    %cl,(%edi)
477ac6:	c6 47 01 00          	movb   $0x0,0x1(%edi)
477aca:	80 7d dc 00          	cmpb   $0x0,-0x24(%ebp)
477ace:	74 0a                	je     0x477ada
477ad0:	8b 4d d0             	mov    -0x30(%ebp),%ecx
477ad3:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
477ada:	5f                   	pop    %edi
477adb:	8b c6                	mov    %esi,%eax
477add:	5e                   	pop    %esi
477ade:	5b                   	pop    %ebx
477adf:	8b e5                	mov    %ebp,%esp
477ae1:	5d                   	pop    %ebp
477ae2:	c3                   	ret
477ae3:	8b ff                	mov    %edi,%edi
477ae5:	55                   	push   %ebp
477ae6:	8b ec                	mov    %esp,%ebp
477ae8:	83 ec 0c             	sub    $0xc,%esp
477aeb:	8d 45 f4             	lea    -0xc(%ebp),%eax
477aee:	56                   	push   %esi
477aef:	8b 75 1c             	mov    0x1c(%ebp),%esi
477af2:	57                   	push   %edi
477af3:	ff 75 18             	push   0x18(%ebp)
477af6:	ff 75 14             	push   0x14(%ebp)
477af9:	8d 7e 01             	lea    0x1(%esi),%edi
477afc:	50                   	push   %eax
477afd:	8b 45 08             	mov    0x8(%ebp),%eax
477b00:	57                   	push   %edi
477b01:	ff 70 04             	push   0x4(%eax)
477b04:	ff 30                	push   (%eax)
477b06:	e8 e1 db 00 00       	call   0x4856ec
477b0b:	83 c9 ff             	or     $0xffffffff,%ecx
477b0e:	83 c4 18             	add    $0x18,%esp
477b11:	39 4d 10             	cmp    %ecx,0x10(%ebp)
477b14:	74 17                	je     0x477b2d
477b16:	8b 4d 10             	mov    0x10(%ebp),%ecx
477b19:	33 c0                	xor    %eax,%eax
477b1b:	83 7d f4 2d          	cmpl   $0x2d,-0xc(%ebp)
477b1f:	0f 94 c0             	sete   %al
477b22:	2b c8                	sub    %eax,%ecx
477b24:	33 c0                	xor    %eax,%eax
477b26:	85 f6                	test   %esi,%esi
477b28:	0f 9f c0             	setg   %al
477b2b:	2b c8                	sub    %eax,%ecx
477b2d:	8d 45 f4             	lea    -0xc(%ebp),%eax
477b30:	50                   	push   %eax
477b31:	57                   	push   %edi
477b32:	8b 7d 0c             	mov    0xc(%ebp),%edi
477b35:	51                   	push   %ecx
477b36:	33 c9                	xor    %ecx,%ecx
477b38:	83 7d f4 2d          	cmpl   $0x2d,-0xc(%ebp)
477b3c:	0f 94 c1             	sete   %cl
477b3f:	33 c0                	xor    %eax,%eax
477b41:	85 f6                	test   %esi,%esi
477b43:	0f 9f c0             	setg   %al
477b46:	03 cf                	add    %edi,%ecx
477b48:	03 c1                	add    %ecx,%eax
477b4a:	50                   	push   %eax
477b4b:	e8 11 c7 00 00       	call   0x484261
477b50:	83 c4 10             	add    $0x10,%esp
477b53:	85 c0                	test   %eax,%eax
477b55:	74 05                	je     0x477b5c
477b57:	c6 07 00             	movb   $0x0,(%edi)
477b5a:	eb 1c                	jmp    0x477b78
477b5c:	ff 75 28             	push   0x28(%ebp)
477b5f:	8d 45 f4             	lea    -0xc(%ebp),%eax
477b62:	6a 00                	push   $0x0
477b64:	50                   	push   %eax
477b65:	ff 75 24             	push   0x24(%ebp)
477b68:	ff 75 20             	push   0x20(%ebp)
477b6b:	56                   	push   %esi
477b6c:	ff 75 10             	push   0x10(%ebp)
477b6f:	57                   	push   %edi
477b70:	e8 09 00 00 00       	call   0x477b7e
477b75:	83 c4 20             	add    $0x20,%esp
477b78:	5f                   	pop    %edi
477b79:	5e                   	pop    %esi
477b7a:	8b e5                	mov    %ebp,%esp
477b7c:	5d                   	pop    %ebp
477b7d:	c3                   	ret
477b7e:	8b ff                	mov    %edi,%edi
477b80:	55                   	push   %ebp
477b81:	8b ec                	mov    %esp,%ebp
477b83:	83 ec 10             	sub    $0x10,%esp
477b86:	56                   	push   %esi
477b87:	57                   	push   %edi
477b88:	8b 7d 10             	mov    0x10(%ebp),%edi
477b8b:	85 ff                	test   %edi,%edi
477b8d:	7e 04                	jle    0x477b93
477b8f:	8b c7                	mov    %edi,%eax
477b91:	eb 02                	jmp    0x477b95
477b93:	33 c0                	xor    %eax,%eax
477b95:	83 c0 09             	add    $0x9,%eax
477b98:	39 45 0c             	cmp    %eax,0xc(%ebp)
477b9b:	77 17                	ja     0x477bb4
477b9d:	e8 8d 52 fd ff       	call   0x44ce2f
477ba2:	6a 22                	push   $0x22
477ba4:	5e                   	pop    %esi
477ba5:	89 30                	mov    %esi,(%eax)
477ba7:	e8 2a 51 fd ff       	call   0x44ccd6
477bac:	8b c6                	mov    %esi,%eax
477bae:	5f                   	pop    %edi
477baf:	5e                   	pop    %esi
477bb0:	8b e5                	mov    %ebp,%esp
477bb2:	5d                   	pop    %ebp
477bb3:	c3                   	ret
477bb4:	53                   	push   %ebx
477bb5:	ff 75 24             	push   0x24(%ebp)
477bb8:	8d 4d f0             	lea    -0x10(%ebp),%ecx
477bbb:	e8 48 74 fd ff       	call   0x44f008
477bc0:	8a 55 20             	mov    0x20(%ebp),%dl
477bc3:	8b 5d 08             	mov    0x8(%ebp),%ebx
477bc6:	84 d2                	test   %dl,%dl
477bc8:	74 25                	je     0x477bef
477bca:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
477bcd:	33 c0                	xor    %eax,%eax
477bcf:	85 ff                	test   %edi,%edi
477bd1:	0f 9f c0             	setg   %al
477bd4:	50                   	push   %eax
477bd5:	33 c0                	xor    %eax,%eax
477bd7:	83 39 2d             	cmpl   $0x2d,(%ecx)
477bda:	0f 94 c0             	sete   %al
477bdd:	03 c3                	add    %ebx,%eax
477bdf:	50                   	push   %eax
477be0:	ff 75 0c             	push   0xc(%ebp)