470e45:	85 c0                	test   %eax,%eax
470e47:	75 56                	jne    0x470e9f
470e49:	8b 0c cd 0c b1 4a 00 	mov    0x4ab10c(,%ecx,8),%ecx
470e50:	03 ce                	add    %esi,%ecx
470e52:	3b ce                	cmp    %esi,%ecx
470e54:	75 05                	jne    0x470e5b
470e56:	46                   	inc    %esi
470e57:	3b f7                	cmp    %edi,%esi
470e59:	76 c4                	jbe    0x470e1f
470e5b:	3b f7                	cmp    %edi,%esi
470e5d:	77 4c                	ja     0x470eab
470e5f:	8b 45 08             	mov    0x8(%ebp),%eax
470e62:	89 08                	mov    %ecx,(%eax)
470e64:	eb 27                	jmp    0x470e8d
470e66:	8b c6                	mov    %esi,%eax
470e68:	99                   	cltd
470e69:	f7 7d fc             	idivl  -0x4(%ebp)
470e6c:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
470e73:	c1 e0 07             	shl    $0x7,%eax
470e76:	03 c2                	add    %edx,%eax
470e78:	0f b7 04 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%eax
470e7f:	00
470e80:	8b 04 c5 0c b1 4a 00 	mov    0x4ab10c(,%eax,8),%eax
470e87:	03 c6                	add    %esi,%eax
470e89:	3b c1                	cmp    %ecx,%eax
470e8b:	75 06                	jne    0x470e93
470e8d:	41                   	inc    %ecx
470e8e:	46                   	inc    %esi
470e8f:	3b f7                	cmp    %edi,%esi
470e91:	76 d3                	jbe    0x470e66
470e93:	8b 45 0c             	mov    0xc(%ebp),%eax
470e96:	49                   	dec    %ecx
470e97:	89 08                	mov    %ecx,(%eax)
470e99:	89 33                	mov    %esi,(%ebx)
470e9b:	33 c0                	xor    %eax,%eax
470e9d:	eb 0f                	jmp    0x470eae
470e9f:	8b 4d 08             	mov    0x8(%ebp),%ecx
470ea2:	89 31                	mov    %esi,(%ecx)
470ea4:	8d 4e 01             	lea    0x1(%esi),%ecx
470ea7:	89 0b                	mov    %ecx,(%ebx)
470ea9:	eb 03                	jmp    0x470eae
470eab:	83 c8 ff             	or     $0xffffffff,%eax
470eae:	5f                   	pop    %edi
470eaf:	5e                   	pop    %esi
470eb0:	5b                   	pop    %ebx
470eb1:	c9                   	leave
470eb2:	c3                   	ret
470eb3:	55                   	push   %ebp
470eb4:	8b ec                	mov    %esp,%ebp
470eb6:	83 ec 48             	sub    $0x48,%esp
470eb9:	53                   	push   %ebx
470eba:	56                   	push   %esi
470ebb:	8b 31                	mov    (%ecx),%esi
470ebd:	83 c6 02             	add    $0x2,%esi
470ec0:	57                   	push   %edi
470ec1:	0f b7 06             	movzwl (%esi),%eax
470ec4:	89 4d f8             	mov    %ecx,-0x8(%ebp)
470ec7:	66 85 c0             	test   %ax,%ax
470eca:	74 36                	je     0x470f02
470ecc:	33 db                	xor    %ebx,%ebx
470ece:	89 1a                	mov    %ebx,(%edx)
470ed0:	83 f8 7b             	cmp    $0x7b,%eax
470ed3:	75 48                	jne    0x470f1d
470ed5:	66 83 7e 02 5e       	cmpw   $0x5e,0x2(%esi)
470eda:	75 09                	jne    0x470ee5
470edc:	c7 02 01 00 00 00    	movl   $0x1,(%edx)
470ee2:	83 c6 02             	add    $0x2,%esi
470ee5:	8b c3                	mov    %ebx,%eax
470ee7:	83 c6 02             	add    $0x2,%esi
470eea:	0f b7 16             	movzwl (%esi),%edx
470eed:	66 85 d2             	test   %dx,%dx
470ef0:	74 10                	je     0x470f02
470ef2:	83 fa 7d             	cmp    $0x7d,%edx
470ef5:	74 1d                	je     0x470f14
470ef7:	66 89 54 45 b8       	mov    %dx,-0x48(%ebp,%eax,2)
470efc:	40                   	inc    %eax
470efd:	83 f8 1f             	cmp    $0x1f,%eax
470f00:	7c e5                	jl     0x470ee7
470f02:	8b 45 10             	mov    0x10(%ebp),%eax
470f05:	89 31                	mov    %esi,(%ecx)
470f07:	c7 00 2e 00 00 00    	movl   $0x2e,(%eax)
470f0d:	33 c0                	xor    %eax,%eax
470f0f:	5f                   	pop    %edi
470f10:	5e                   	pop    %esi
470f11:	5b                   	pop    %ebx
470f12:	c9                   	leave
470f13:	c3                   	ret
470f14:	33 d2                	xor    %edx,%edx
470f16:	66 89 54 45 b8       	mov    %dx,-0x48(%ebp,%eax,2)
470f1b:	eb 0a                	jmp    0x470f27
470f1d:	66 89 45 b8          	mov    %ax,-0x48(%ebp)
470f21:	33 c0                	xor    %eax,%eax
470f23:	66 89 45 ba          	mov    %ax,-0x46(%ebp)
470f27:	b8 92 00 00 00       	mov    $0x92,%eax
470f2c:	89 31                	mov    %esi,(%ecx)
470f2e:	89 45 fc             	mov    %eax,-0x4(%ebp)
470f31:	8d 3c 18             	lea    (%eax,%ebx,1),%edi
470f34:	d1 ff                	sar    $1,%edi
470f36:	8b c7                	mov    %edi,%eax
470f38:	6b c0 06             	imul   $0x6,%eax,%eax
470f3b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
470f3e:	0f b7 90 60 66 4b 00 	movzwl 0x4b6660(%eax),%edx
470f45:	81 c2 f8 61 4b 00    	add    $0x4b61f8,%edx
470f4b:	e8 78 03 00 00       	call   0x4712c8
470f50:	85 c0                	test   %eax,%eax
470f52:	74 23                	je     0x470f77
470f54:	7e 08                	jle    0x470f5e
470f56:	8b 45 fc             	mov    -0x4(%ebp),%eax
470f59:	8d 5f 01             	lea    0x1(%edi),%ebx
470f5c:	eb 05                	jmp    0x470f63
470f5e:	8b c7                	mov    %edi,%eax
470f60:	89 45 fc             	mov    %eax,-0x4(%ebp)
470f63:	3b d8                	cmp    %eax,%ebx
470f65:	7c ca                	jl     0x470f31
470f67:	8b 45 10             	mov    0x10(%ebp),%eax
470f6a:	c7 00 2f 00 00 00    	movl   $0x2f,(%eax)
470f70:	8b 45 f8             	mov    -0x8(%ebp),%eax
470f73:	89 30                	mov    %esi,(%eax)
470f75:	eb 96                	jmp    0x470f0d
470f77:	8b 4d 08             	mov    0x8(%ebp),%ecx
470f7a:	6b ff 06             	imul   $0x6,%edi,%edi
470f7d:	0f b7 97 62 66 4b 00 	movzwl 0x4b6662(%edi),%edx
470f84:	89 11                	mov    %edx,(%ecx)
470f86:	0f b7 97 64 66 4b 00 	movzwl 0x4b6664(%edi),%edx
470f8d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
470f90:	33 c0                	xor    %eax,%eax
470f92:	89 11                	mov    %edx,(%ecx)
470f94:	40                   	inc    %eax
470f95:	e9 75 ff ff ff       	jmp    0x470f0f
470f9a:	0f b7 01             	movzwl (%ecx),%eax
470f9d:	53                   	push   %ebx
470f9e:	56                   	push   %esi
470f9f:	57                   	push   %edi
470fa0:	6a 30                	push   $0x30
470fa2:	5a                   	pop    %edx
470fa3:	66 3b c2             	cmp    %dx,%ax
470fa6:	72 45                	jb     0x470fed
470fa8:	6a 39                	push   $0x39
470faa:	5f                   	pop    %edi
470fab:	66 3b c7             	cmp    %di,%ax
470fae:	77 3d                	ja     0x470fed
470fb0:	6a 02                	push   $0x2
470fb2:	5e                   	pop    %esi
470fb3:	eb 05                	jmp    0x470fba
470fb5:	66 3b c7             	cmp    %di,%ax
470fb8:	77 0a                	ja     0x470fc4
470fba:	03 ce                	add    %esi,%ecx
470fbc:	0f b7 01             	movzwl (%ecx),%eax
470fbf:	66 3b c2             	cmp    %dx,%ax
470fc2:	73 f1                	jae    0x470fb5
470fc4:	0f b7 01             	movzwl (%ecx),%eax
470fc7:	6a 7d                	push   $0x7d
470fc9:	5b                   	pop    %ebx
470fca:	66 3b c3             	cmp    %bx,%ax
470fcd:	75 05                	jne    0x470fd4
470fcf:	33 c0                	xor    %eax,%eax
470fd1:	40                   	inc    %eax
470fd2:	eb 1b                	jmp    0x470fef
470fd4:	03 ce                	add    %esi,%ecx
470fd6:	83 f8 2c             	cmp    $0x2c,%eax
470fd9:	75 12                	jne    0x470fed
470fdb:	0f b7 01             	movzwl (%ecx),%eax
470fde:	66 3b c3             	cmp    %bx,%ax
470fe1:	74 ec                	je     0x470fcf
470fe3:	66 3b c2             	cmp    %dx,%ax
470fe6:	72 05                	jb     0x470fed
470fe8:	66 3b c7             	cmp    %di,%ax
470feb:	76 0b                	jbe    0x470ff8
470fed:	33 c0                	xor    %eax,%eax
470fef:	5f                   	pop    %edi
470ff0:	5e                   	pop    %esi
470ff1:	5b                   	pop    %ebx
470ff2:	c3                   	ret
470ff3:	66 3b c7             	cmp    %di,%ax
470ff6:	77 0a                	ja     0x471002
470ff8:	03 ce                	add    %esi,%ecx
470ffa:	0f b7 01             	movzwl (%ecx),%eax
470ffd:	66 3b c2             	cmp    %dx,%ax
471000:	73 f1                	jae    0x470ff3
471002:	33 c0                	xor    %eax,%eax
471004:	66 39 19             	cmp    %bx,(%ecx)
471007:	0f 94 c0             	sete   %al
47100a:	eb e3                	jmp    0x470fef
47100c:	55                   	push   %ebp
47100d:	8b ec                	mov    %esp,%ebp
47100f:	51                   	push   %ecx
471010:	0f b7 01             	movzwl (%ecx),%eax
471013:	53                   	push   %ebx
471014:	56                   	push   %esi
471015:	57                   	push   %edi
471016:	6a 30                	push   $0x30
471018:	5b                   	pop    %ebx
471019:	33 ff                	xor    %edi,%edi
47101b:	83 ce ff             	or     $0xffffffff,%esi
47101e:	c7 45 fc 39 00 00 00 	movl   $0x39,-0x4(%ebp)
471025:	66 3b c3             	cmp    %bx,%ax
471028:	72 33                	jb     0x47105d
47102a:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
47102e:	77 16                	ja     0x471046
471030:	6b ff 0a             	imul   $0xa,%edi,%edi
471033:	0f b7 c0             	movzwl %ax,%eax
471036:	83 c0 d0             	add    $0xffffffd0,%eax
471039:	83 c1 02             	add    $0x2,%ecx
47103c:	03 f8                	add    %eax,%edi
47103e:	0f b7 01             	movzwl (%ecx),%eax
471041:	66 3b c3             	cmp    %bx,%ax
471044:	73 e4                	jae    0x47102a
471046:	85 ff                	test   %edi,%edi
471048:	78 08                	js     0x471052
47104a:	81 ff ff ff 00 00    	cmp    $0xffff,%edi
471050:	7e 0b                	jle    0x47105d
471052:	8b 45 0c             	mov    0xc(%ebp),%eax
471055:	c7 00 05 00 00 00    	movl   $0x5,(%eax)
47105b:	eb 11                	jmp    0x47106e
47105d:	6a 7d                	push   $0x7d
47105f:	5b                   	pop    %ebx
471060:	66 39 19             	cmp    %bx,(%ecx)
471063:	75 10                	jne    0x471075
471065:	8b f7                	mov    %edi,%esi
471067:	8b 45 08             	mov    0x8(%ebp),%eax
47106a:	89 3a                	mov    %edi,(%edx)
47106c:	89 30                	mov    %esi,(%eax)
47106e:	5f                   	pop    %edi
47106f:	5e                   	pop    %esi
471070:	8b c1                	mov    %ecx,%eax
471072:	5b                   	pop    %ebx
471073:	c9                   	leave
471074:	c3                   	ret
471075:	83 c1 02             	add    $0x2,%ecx
471078:	0f b7 01             	movzwl (%ecx),%eax
47107b:	66 3b c3             	cmp    %bx,%ax
47107e:	74 e7                	je     0x471067
471080:	6a 30                	push   $0x30
471082:	5b                   	pop    %ebx
471083:	33 f6                	xor    %esi,%esi
471085:	66 3b c3             	cmp    %bx,%ax
471088:	72 28                	jb     0x4710b2
47108a:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
47108e:	77 16                	ja     0x4710a6
471090:	6b f6 0a             	imul   $0xa,%esi,%esi
471093:	0f b7 c0             	movzwl %ax,%eax
471096:	83 c0 d0             	add    $0xffffffd0,%eax
471099:	83 c1 02             	add    $0x2,%ecx
47109c:	03 f0                	add    %eax,%esi
47109e:	0f b7 01             	movzwl (%ecx),%eax
4710a1:	66 3b c3             	cmp    %bx,%ax
4710a4:	73 e4                	jae    0x47108a
4710a6:	85 f6                	test   %esi,%esi
4710a8:	78 a8                	js     0x471052
4710aa:	81 fe ff ff 00 00    	cmp    $0xffff,%esi
4710b0:	7f a0                	jg     0x471052
4710b2:	3b f7                	cmp    %edi,%esi
4710b4:	7d b1                	jge    0x471067
4710b6:	8b 45 0c             	mov    0xc(%ebp),%eax
4710b9:	c7 00 04 00 00 00    	movl   $0x4,(%eax)
4710bf:	eb ad                	jmp    0x47106e
4710c1:	55                   	push   %ebp
4710c2:	8b ec                	mov    %esp,%ebp
4710c4:	51                   	push   %ecx
4710c5:	51                   	push   %ecx
4710c6:	53                   	push   %ebx
4710c7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4710ca:	56                   	push   %esi
4710cb:	8b 43 0c             	mov    0xc(%ebx),%eax
4710ce:	8b f2                	mov    %edx,%esi
4710d0:	8b 0c 88             	mov    (%eax,%ecx,4),%ecx
4710d3:	8b 43 78             	mov    0x78(%ebx),%eax
4710d6:	8b 55 08             	mov    0x8(%ebp),%edx
4710d9:	57                   	push   %edi
4710da:	89 75 f8             	mov    %esi,-0x8(%ebp)
4710dd:	8d 3c 48             	lea    (%eax,%ecx,2),%edi
4710e0:	85 d2                	test   %edx,%edx
4710e2:	79 08                	jns    0x4710ec
4710e4:	83 c8 ff             	or     $0xffffffff,%eax
4710e7:	e9 69 01 00 00       	jmp    0x471255
4710ec:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
4710f0:	0f 84 33 01 00 00    	je     0x471229
4710f6:	83 7b 50 00          	cmpl   $0x0,0x50(%ebx)
4710fa:	0f 84 db 00 00 00    	je     0x4711db
471100:	8d 04 57             	lea    (%edi,%edx,2),%eax
471103:	89 45 08             	mov    %eax,0x8(%ebp)
471106:	3b f8                	cmp    %eax,%edi
471108:	0f 83 40 01 00 00    	jae    0x47124e
47110e:	8b 43 7c             	mov    0x7c(%ebx),%eax
471111:	89 45 fc             	mov    %eax,-0x4(%ebp)
471114:	ba ff 03 00 00       	mov    $0x3ff,%edx
471119:	3b f0                	cmp    %eax,%esi
47111b:	0f 83 b5 00 00 00    	jae    0x4711d6
471121:	0f b7 0e             	movzwl (%esi),%ecx
471124:	8b c1                	mov    %ecx,%eax
471126:	25 00 fc 00 00       	and    $0xfc00,%eax
47112b:	83 c6 02             	add    $0x2,%esi
47112e:	3d 00 d8 00 00       	cmp    $0xd800,%eax
471133:	75 15                	jne    0x47114a
471135:	0f b7 06             	movzwl (%esi),%eax
471138:	23 ca                	and    %edx,%ecx
47113a:	c1 e1 0a             	shl    $0xa,%ecx
47113d:	23 c2                	and    %edx,%eax
47113f:	0b c8                	or     %eax,%ecx
471141:	81 c1 00 00 01 00    	add    $0x10000,%ecx
471147:	83 c6 02             	add    $0x2,%esi
47114a:	0f b7 1f             	movzwl (%edi),%ebx
47114d:	8b c3                	mov    %ebx,%eax
47114f:	25 00 fc 00 00       	and    $0xfc00,%eax
471154:	83 c7 02             	add    $0x2,%edi
471157:	3d 00 d8 00 00       	cmp    $0xd800,%eax
47115c:	75 15                	jne    0x471173
47115e:	0f b7 07             	movzwl (%edi),%eax
471161:	23 da                	and    %edx,%ebx
471163:	c1 e3 0a             	shl    $0xa,%ebx
471166:	23 c2                	and    %edx,%eax
471168:	0b d8                	or     %eax,%ebx
47116a:	81 c3 00 00 01 00    	add    $0x10000,%ebx
471170:	83 c7 02             	add    $0x2,%edi
471173:	8b c3                	mov    %ebx,%eax
471175:	99                   	cltd
471176:	c7 45 0c 80 00 00 00 	movl   $0x80,0xc(%ebp)
47117d:	f7 7d 0c             	idivl  0xc(%ebp)
471180:	0f b6 80 a0 c4 4a 00 	movzbl 0x4ac4a0(%eax),%eax
471187:	c1 e0 07             	shl    $0x7,%eax
47118a:	03 c2                	add    %edx,%eax
47118c:	0f b7 14 45 08 e6 49 	movzwl 0x49e608(,%eax,2),%edx
471193:	00
471194:	3b cb                	cmp    %ebx,%ecx
471196:	74 2d                	je     0x4711c5
471198:	8b 04 d5 0c b1 4a 00 	mov    0x4ab10c(,%edx,8),%eax
47119f:	03 c3                	add    %ebx,%eax
4711a1:	3b c8                	cmp    %eax,%ecx
4711a3:	74 20                	je     0x4711c5
4711a5:	0f b6 04 d5 0b b1 4a 	movzbl 0x4ab10b(,%edx,8),%eax
4711ac:	00
4711ad:	8d 04 85 a0 e6 4a 00 	lea    0x4ae6a0(,%eax,4),%eax
4711b4:	8b 10                	mov    (%eax),%edx
4711b6:	3b ca                	cmp    %edx,%ecx
4711b8:	0f 82 26 ff ff ff    	jb     0x4710e4
4711be:	83 c0 04             	add    $0x4,%eax
4711c1:	3b ca                	cmp    %edx,%ecx
4711c3:	75 ef                	jne    0x4711b4
4711c5:	3b 7d 08             	cmp    0x8(%ebp),%edi
4711c8:	0f 83 80 00 00 00    	jae    0x47124e
4711ce:	8b 45 fc             	mov    -0x4(%ebp),%eax
4711d1:	e9 3e ff ff ff       	jmp    0x471114
4711d6:	6a fe                	push   $0xfffffffe
4711d8:	58                   	pop    %eax
4711d9:	eb 7a                	jmp    0x471255
4711db:	85 d2                	test   %edx,%edx
4711dd:	7e 6f                	jle    0x47124e
4711df:	2b fe                	sub    %esi,%edi
4711e1:	4a                   	dec    %edx
4711e2:	3b 73 7c             	cmp    0x7c(%ebx),%esi