410f13:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
410f17:	53                   	push   %ebx
410f18:	56                   	push   %esi
410f19:	57                   	push   %edi
410f1a:	8b 7d 0c             	mov    0xc(%ebp),%edi
410f1d:	8b 3f                	mov    (%edi),%edi
410f1f:	0f 84 a4 00 00 00    	je     0x410fc9
410f25:	8b 5d 10             	mov    0x10(%ebp),%ebx
410f28:	8b 75 08             	mov    0x8(%ebp),%esi
410f2b:	85 db                	test   %ebx,%ebx
410f2d:	74 6b                	je     0x410f9a
410f2f:	57                   	push   %edi
410f30:	8d 4d ff             	lea    -0x1(%ebp),%ecx
410f33:	e8 65 ff ff ff       	call   0x410e9d
410f38:	ff 75 18             	push   0x18(%ebp)
410f3b:	ff 75 14             	push   0x14(%ebp)
410f3e:	50                   	push   %eax
410f3f:	8d 45 f8             	lea    -0x8(%ebp),%eax
410f42:	57                   	push   %edi
410f43:	50                   	push   %eax
410f44:	e8 fb 41 00 00       	call   0x415144
410f49:	8b d0                	mov    %eax,%edx
410f4b:	83 c4 14             	add    $0x14,%esp
410f4e:	83 fa ff             	cmp    $0xffffffff,%edx
410f51:	74 5e                	je     0x410fb1
410f53:	85 d2                	test   %edx,%edx
410f55:	74 51                	je     0x410fa8
410f57:	8b 4d f8             	mov    -0x8(%ebp),%ecx
410f5a:	81 f9 ff ff 00 00    	cmp    $0xffff,%ecx
410f60:	76 2b                	jbe    0x410f8d
410f62:	83 fb 01             	cmp    $0x1,%ebx
410f65:	76 33                	jbe    0x410f9a
410f67:	81 e9 00 00 01 00    	sub    $0x10000,%ecx
410f6d:	4b                   	dec    %ebx
410f6e:	8b c1                	mov    %ecx,%eax
410f70:	89 4d f8             	mov    %ecx,-0x8(%ebp)
410f73:	c1 e8 0a             	shr    $0xa,%eax
410f76:	81 e1 ff 03 00 00    	and    $0x3ff,%ecx
410f7c:	0d 00 d8 00 00       	or     $0xd800,%eax
410f81:	66 89 06             	mov    %ax,(%esi)
410f84:	83 c6 02             	add    $0x2,%esi
410f87:	81 c9 00 dc 00 00    	or     $0xdc00,%ecx
410f8d:	66 89 0e             	mov    %cx,(%esi)
410f90:	03 fa                	add    %edx,%edi
410f92:	83 c6 02             	add    $0x2,%esi
410f95:	83 eb 01             	sub    $0x1,%ebx
410f98:	75 95                	jne    0x410f2f
410f9a:	8b 5d 0c             	mov    0xc(%ebp),%ebx
410f9d:	2b 75 08             	sub    0x8(%ebp),%esi
410fa0:	d1 fe                	sar    $1,%esi
410fa2:	89 3b                	mov    %edi,(%ebx)
410fa4:	8b c6                	mov    %esi,%eax
410fa6:	eb 67                	jmp    0x41100f
410fa8:	33 ff                	xor    %edi,%edi
410faa:	33 c0                	xor    %eax,%eax
410fac:	66 89 06             	mov    %ax,(%esi)
410faf:	eb e9                	jmp    0x410f9a
410fb1:	8b 45 0c             	mov    0xc(%ebp),%eax
410fb4:	89 38                	mov    %edi,(%eax)
410fb6:	8b 45 18             	mov    0x18(%ebp),%eax
410fb9:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
410fbd:	c7 40 18 2a 00 00 00 	movl   $0x2a,0x18(%eax)
410fc4:	83 c8 ff             	or     $0xffffffff,%eax
410fc7:	eb 46                	jmp    0x41100f
410fc9:	57                   	push   %edi
410fca:	8d 4d ff             	lea    -0x1(%ebp),%ecx
410fcd:	33 f6                	xor    %esi,%esi
410fcf:	e8 c9 fe ff ff       	call   0x410e9d
410fd4:	8b 5d 18             	mov    0x18(%ebp),%ebx
410fd7:	eb 16                	jmp    0x410fef
410fd9:	85 c0                	test   %eax,%eax
410fdb:	74 c7                	je     0x410fa4
410fdd:	83 f8 04             	cmp    $0x4,%eax
410fe0:	75 01                	jne    0x410fe3
410fe2:	46                   	inc    %esi
410fe3:	03 f8                	add    %eax,%edi
410fe5:	8d 4d ff             	lea    -0x1(%ebp),%ecx
410fe8:	57                   	push   %edi
410fe9:	46                   	inc    %esi
410fea:	e8 ae fe ff ff       	call   0x410e9d
410fef:	53                   	push   %ebx
410ff0:	ff 75 14             	push   0x14(%ebp)
410ff3:	50                   	push   %eax
410ff4:	57                   	push   %edi
410ff5:	6a 00                	push   $0x0
410ff7:	e8 48 41 00 00       	call   0x415144
410ffc:	83 c4 14             	add    $0x14,%esp
410fff:	83 f8 ff             	cmp    $0xffffffff,%eax
411002:	75 d5                	jne    0x410fd9
411004:	c6 43 1c 01          	movb   $0x1,0x1c(%ebx)
411008:	c7 43 18 2a 00 00 00 	movl   $0x2a,0x18(%ebx)
41100f:	5f                   	pop    %edi
411010:	5e                   	pop    %esi
411011:	5b                   	pop    %ebx
411012:	c9                   	leave
411013:	c3                   	ret
411014:	8b ff                	mov    %edi,%edi
411016:	55                   	push   %ebp
411017:	8b ec                	mov    %esp,%ebp
411019:	51                   	push   %ecx
41101a:	e8 f5 42 00 00       	call   0x415314
41101f:	85 c0                	test   %eax,%eax
411021:	74 1c                	je     0x41103f
411023:	8d 45 fc             	lea    -0x4(%ebp),%eax
411026:	50                   	push   %eax
411027:	8d 45 08             	lea    0x8(%ebp),%eax
41102a:	6a 01                	push   $0x1
41102c:	50                   	push   %eax
41102d:	e8 18 43 00 00       	call   0x41534a
411032:	83 c4 0c             	add    $0xc,%esp
411035:	85 c0                	test   %eax,%eax
411037:	74 06                	je     0x41103f
411039:	66 8b 45 08          	mov    0x8(%ebp),%ax
41103d:	c9                   	leave
41103e:	c3                   	ret
41103f:	b8 ff ff 00 00       	mov    $0xffff,%eax
411044:	c9                   	leave
411045:	c3                   	ret
411046:	8b ff                	mov    %edi,%edi
411048:	55                   	push   %ebp
411049:	8b ec                	mov    %esp,%ebp
41104b:	83 ec 18             	sub    $0x18,%esp
41104e:	8b 45 08             	mov    0x8(%ebp),%eax
411051:	8b c8                	mov    %eax,%ecx
411053:	53                   	push   %ebx
411054:	8b 5d 0c             	mov    0xc(%ebp),%ebx
411057:	83 e0 3f             	and    $0x3f,%eax
41105a:	c1 f9 06             	sar    $0x6,%ecx
41105d:	56                   	push   %esi
41105e:	57                   	push   %edi
41105f:	6b f8 38             	imul   $0x38,%eax,%edi
411062:	8b 04 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%eax
411069:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41106c:	8b 4c 07 18          	mov    0x18(%edi,%eax,1),%ecx
411070:	89 4d ec             	mov    %ecx,-0x14(%ebp)
411073:	8b 4d 10             	mov    0x10(%ebp),%ecx
411076:	85 c9                	test   %ecx,%ecx
411078:	74 0c                	je     0x411086
41107a:	80 3b 0a             	cmpb   $0xa,(%ebx)
41107d:	75 07                	jne    0x411086
41107f:	80 4c 07 28 04       	orb    $0x4,0x28(%edi,%eax,1)
411084:	eb 05                	jmp    0x41108b
411086:	80 64 07 28 fb       	andb   $0xfb,0x28(%edi,%eax,1)
41108b:	03 cb                	add    %ebx,%ecx
41108d:	8b c3                	mov    %ebx,%eax
41108f:	89 4d f0             	mov    %ecx,-0x10(%ebp)
411092:	8b f3                	mov    %ebx,%esi
411094:	89 45 f8             	mov    %eax,-0x8(%ebp)
411097:	3b d9                	cmp    %ecx,%ebx
411099:	0f 83 eb 00 00 00    	jae    0x41118a
41109f:	8a 10                	mov    (%eax),%dl
4110a1:	80 fa 1a             	cmp    $0x1a,%dl
4110a4:	0f 84 c3 00 00 00    	je     0x41116d
4110aa:	40                   	inc    %eax
4110ab:	80 fa 0d             	cmp    $0xd,%dl
4110ae:	74 07                	je     0x4110b7
4110b0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4110b3:	88 16                	mov    %dl,(%esi)
4110b5:	eb 26                	jmp    0x4110dd
4110b7:	3b c1                	cmp    %ecx,%eax
4110b9:	73 30                	jae    0x4110eb
4110bb:	8a 08                	mov    (%eax),%cl
4110bd:	33 c0                	xor    %eax,%eax
4110bf:	80 f9 0a             	cmp    $0xa,%cl
4110c2:	0f 94 c0             	sete   %al
4110c5:	40                   	inc    %eax
4110c6:	01 45 f8             	add    %eax,-0x8(%ebp)
4110c9:	80 f9 0a             	cmp    $0xa,%cl
4110cc:	0f 94 c0             	sete   %al
4110cf:	fe c8                	dec    %al
4110d1:	24 03                	and    $0x3,%al
4110d3:	04 0a                	add    $0xa,%al
4110d5:	88 06                	mov    %al,(%esi)
4110d7:	8b 45 f8             	mov    -0x8(%ebp),%eax
4110da:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4110dd:	33 d2                	xor    %edx,%edx
4110df:	42                   	inc    %edx
4110e0:	03 f2                	add    %edx,%esi
4110e2:	3b c1                	cmp    %ecx,%eax
4110e4:	72 b9                	jb     0x41109f
4110e6:	e9 9f 00 00 00       	jmp    0x41118a
4110eb:	6a 00                	push   $0x0
4110ed:	8d 45 f0             	lea    -0x10(%ebp),%eax
4110f0:	50                   	push   %eax
4110f1:	6a 01                	push   $0x1
4110f3:	8d 45 ff             	lea    -0x1(%ebp),%eax
4110f6:	50                   	push   %eax
4110f7:	ff 75 ec             	push   -0x14(%ebp)
4110fa:	ff 15 34 91 41 00    	call   *0x419134
411100:	85 c0                	test   %eax,%eax
411102:	74 64                	je     0x411168
411104:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
411108:	74 5e                	je     0x411168
41110a:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41110d:	8b 04 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%eax
411114:	f6 44 38 28 48       	testb  $0x48,0x28(%eax,%edi,1)
411119:	74 27                	je     0x411142
41111b:	8a 55 ff             	mov    -0x1(%ebp),%dl
41111e:	8d 46 01             	lea    0x1(%esi),%eax
411121:	89 45 ec             	mov    %eax,-0x14(%ebp)
411124:	80 fa 0a             	cmp    $0xa,%dl
411127:	75 04                	jne    0x41112d
411129:	88 16                	mov    %dl,(%esi)
41112b:	eb 11                	jmp    0x41113e
41112d:	c6 06 0d             	movb   $0xd,(%esi)
411130:	8b 04 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%eax
411137:	88 54 38 2a          	mov    %dl,0x2a(%eax,%edi,1)
41113b:	8b 45 ec             	mov    -0x14(%ebp),%eax
41113e:	8b f0                	mov    %eax,%esi
411140:	eb 48                	jmp    0x41118a
411142:	80 7d ff 0a          	cmpb   $0xa,-0x1(%ebp)
411146:	75 09                	jne    0x411151
411148:	3b f3                	cmp    %ebx,%esi
41114a:	75 05                	jne    0x411151
41114c:	c6 06 0a             	movb   $0xa,(%esi)
41114f:	eb 38                	jmp    0x411189
411151:	6a 01                	push   $0x1
411153:	6a ff                	push   $0xffffffff
411155:	6a ff                	push   $0xffffffff
411157:	ff 75 08             	push   0x8(%ebp)
41115a:	e8 e0 fc ff ff       	call   0x410e3f
41115f:	83 c4 10             	add    $0x10,%esp
411162:	80 7d ff 0a          	cmpb   $0xa,-0x1(%ebp)
411166:	74 22                	je     0x41118a
411168:	c6 06 0d             	movb   $0xd,(%esi)
41116b:	eb 1c                	jmp    0x411189
41116d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
411170:	8b 0c 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%ecx
411177:	8a 44 39 28          	mov    0x28(%ecx,%edi,1),%al
41117b:	a8 40                	test   $0x40,%al
41117d:	75 08                	jne    0x411187
41117f:	0c 02                	or     $0x2,%al
411181:	88 44 39 28          	mov    %al,0x28(%ecx,%edi,1)
411185:	eb 03                	jmp    0x41118a
411187:	88 16                	mov    %dl,(%esi)
411189:	46                   	inc    %esi
41118a:	2b f3                	sub    %ebx,%esi
41118c:	5f                   	pop    %edi
41118d:	8b c6                	mov    %esi,%eax
41118f:	5e                   	pop    %esi
411190:	5b                   	pop    %ebx
411191:	c9                   	leave
411192:	c3                   	ret
411193:	8b ff                	mov    %edi,%edi
411195:	55                   	push   %ebp
411196:	8b ec                	mov    %esp,%ebp
411198:	83 ec 1c             	sub    $0x1c,%esp
41119b:	8b 45 08             	mov    0x8(%ebp),%eax
41119e:	8b c8                	mov    %eax,%ecx
4111a0:	53                   	push   %ebx
4111a1:	8b 5d 0c             	mov    0xc(%ebp),%ebx
4111a4:	83 e0 3f             	and    $0x3f,%eax
4111a7:	56                   	push   %esi
4111a8:	c1 f9 06             	sar    $0x6,%ecx
4111ab:	57                   	push   %edi
4111ac:	6b f8 38             	imul   $0x38,%eax,%edi
4111af:	89 4d f8             	mov    %ecx,-0x8(%ebp)
4111b2:	8b 04 8d a8 21 42 00 	mov    0x4221a8(,%ecx,4),%eax
4111b9:	6a 0a                	push   $0xa
4111bb:	5a                   	pop    %edx
4111bc:	89 55 e8             	mov    %edx,-0x18(%ebp)
4111bf:	8b 4c 38 18          	mov    0x18(%eax,%edi,1),%ecx
4111c3:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4111c6:	8b 4d 10             	mov    0x10(%ebp),%ecx
4111c9:	85 c9                	test   %ecx,%ecx
4111cb:	74 0c                	je     0x4111d9
4111cd:	66 39 13             	cmp    %dx,(%ebx)
4111d0:	75 07                	jne    0x4111d9
4111d2:	80 4c 38 28 04       	orb    $0x4,0x28(%eax,%edi,1)
4111d7:	eb 05                	jmp    0x4111de
4111d9:	80 64 38 28 fb       	andb   $0xfb,0x28(%eax,%edi,1)
4111de:	8d 14 4b             	lea    (%ebx,%ecx,2),%edx
4111e1:	8b c3                	mov    %ebx,%eax
4111e3:	89 55 f4             	mov    %edx,-0xc(%ebp)
4111e6:	8b f3                	mov    %ebx,%esi
4111e8:	89 45 fc             	mov    %eax,-0x4(%ebp)
4111eb:	3b da                	cmp    %edx,%ebx
4111ed:	0f 83 4e 01 00 00    	jae    0x411341
4111f3:	c7 45 f0 0d 00 00 00 	movl   $0xd,-0x10(%ebp)
4111fa:	0f b7 08             	movzwl (%eax),%ecx
4111fd:	8b d1                	mov    %ecx,%edx
4111ff:	89 55 ec             	mov    %edx,-0x14(%ebp)
411202:	8b 55 f4             	mov    -0xc(%ebp),%edx
411205:	83 f9 1a             	cmp    $0x1a,%ecx
411208:	0f 84 13 01 00 00    	je     0x411321
41120e:	83 c0 02             	add    $0x2,%eax
411211:	66 3b 4d f0          	cmp    -0x10(%ebp),%cx
411215:	74 08                	je     0x41121f
411217:	89 45 fc             	mov    %eax,-0x4(%ebp)
41121a:	66 89 0e             	mov    %cx,(%esi)
41121d:	eb 36                	jmp    0x411255
41121f:	3b c2                	cmp    %edx,%eax
411221:	73 40                	jae    0x411263
411223:	0f b7 00             	movzwl (%eax),%eax
411226:	33 c9                	xor    %ecx,%ecx
411228:	66 3b 45 e8          	cmp    -0x18(%ebp),%ax
41122c:	8b d0                	mov    %eax,%edx
41122e:	6a 0a                	push   $0xa
411230:	0f 94 c1             	sete   %cl
411233:	33 c0                	xor    %eax,%eax
411235:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
41123c:	01 4d fc             	add    %ecx,-0x4(%ebp)
41123f:	59                   	pop    %ecx
411240:	66 3b d1             	cmp    %cx,%dx
411243:	8b 55 f4             	mov    -0xc(%ebp),%edx
411246:	0f 94 c0             	sete   %al
411249:	48                   	dec    %eax
41124a:	83 e0 03             	and    $0x3,%eax
41124d:	03 c1                	add    %ecx,%eax
41124f:	66 89 06             	mov    %ax,(%esi)
411252:	8b 45 fc             	mov    -0x4(%ebp),%eax
411255:	6a 02                	push   $0x2
411257:	59                   	pop    %ecx
411258:	03 f1                	add    %ecx,%esi
41125a:	3b c2                	cmp    %edx,%eax
41125c:	72 9c                	jb     0x4111fa
41125e:	e9 de 00 00 00       	jmp    0x411341
411263:	6a 00                	push   $0x0
411265:	8d 45 e8             	lea    -0x18(%ebp),%eax
411268:	50                   	push   %eax
411269:	6a 02                	push   $0x2
41126b:	8d 45 fc             	lea    -0x4(%ebp),%eax
41126e:	50                   	push   %eax
41126f:	ff 75 e4             	push   -0x1c(%ebp)
411272:	ff 15 34 91 41 00    	call   *0x419134
411278:	85 c0                	test   %eax,%eax
41127a:	0f 84 9c 00 00 00    	je     0x41131c
411280:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
411284:	0f 84 92 00 00 00    	je     0x41131c
41128a:	8b 55 f8             	mov    -0x8(%ebp),%edx
41128d:	6a 0a                	push   $0xa
41128f:	8b 04 95 a8 21 42 00 	mov    0x4221a8(,%edx,4),%eax
411296:	f6 44 38 28 48       	testb  $0x48,0x28(%eax,%edi,1)
41129b:	74 55                	je     0x4112f2
41129d:	8d 46 02             	lea    0x2(%esi),%eax
4112a0:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4112a3:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
4112a7:	59                   	pop    %ecx
4112a8:	66 89 45 fe          	mov    %ax,-0x2(%ebp)
4112ac:	66 3b c1             	cmp    %cx,%ax
4112af:	75 05                	jne    0x4112b6
4112b1:	66 89 0e             	mov    %cx,(%esi)
4112b4:	eb 37                	jmp    0x4112ed
4112b6:	6a 0d                	push   $0xd
4112b8:	59                   	pop    %ecx
4112b9:	66 89 0e             	mov    %cx,(%esi)
4112bc:	0f b7 c8             	movzwl %ax,%ecx
4112bf:	8b 04 95 a8 21 42 00 	mov    0x4221a8(,%edx,4),%eax
4112c6:	66 8b 55 fe          	mov    -0x2(%ebp),%dx
4112ca:	c1 e9 08             	shr    $0x8,%ecx