5ceeb7:	83 e0 3f             	and    $0x3f,%eax
5ceeba:	c1 e2 06             	shl    $0x6,%edx
5ceebd:	0b d0                	or     %eax,%edx
5ceebf:	46                   	inc    %esi
5ceec0:	83 e9 01             	sub    $0x1,%ecx
5ceec3:	75 db                	jne    0x5ceea0
5ceec5:	8d 82 00 28 ff ff    	lea    -0xd800(%edx),%eax
5ceecb:	3d ff 07 00 00       	cmp    $0x7ff,%eax
5ceed0:	76 64                	jbe    0x5cef36
5ceed2:	8b 4d 08             	mov    0x8(%ebp),%ecx
5ceed5:	66 89 11             	mov    %dx,(%ecx)
5ceed8:	8b c6                	mov    %esi,%eax
5ceeda:	eb 76                	jmp    0x5cef52
5ceedc:	0f b6 d2             	movzbl %dl,%edx
5ceedf:	33 f6                	xor    %esi,%esi
5ceee1:	8b ca                	mov    %edx,%ecx
5ceee3:	46                   	inc    %esi
5ceee4:	83 e1 07             	and    $0x7,%ecx
5ceee7:	c1 ea 03             	shr    $0x3,%edx
5ceeea:	8b c6                	mov    %esi,%eax
5ceeec:	d3 e0                	shl    %cl,%eax
5ceeee:	84 44 3a 0c          	test   %al,0xc(%edx,%edi,1)
5ceef2:	74 0f                	je     0x5cef03
5ceef4:	39 75 10             	cmp    %esi,0x10(%ebp)
5ceef7:	75 05                	jne    0x5ceefe
5ceef9:	6a fe                	push   $0xfffffffe
5ceefb:	58                   	pop    %eax
5ceefc:	eb 54                	jmp    0x5cef52
5ceefe:	6a 02                	push   $0x2
5cef00:	5b                   	pop    %ebx
5cef01:	eb 02                	jmp    0x5cef05
5cef03:	8b de                	mov    %esi,%ebx
5cef05:	56                   	push   %esi
5cef06:	ff 75 08             	push   0x8(%ebp)
5cef09:	53                   	push   %ebx
5cef0a:	ff 75 0c             	push   0xc(%ebp)
5cef0d:	6a 09                	push   $0x9
5cef0f:	ff 37                	push   (%edi)
5cef11:	ff 15 fc 20 68 00    	call   *0x6820fc
5cef17:	85 c0                	test   %eax,%eax
5cef19:	74 1b                	je     0x5cef36
5cef1b:	8b c3                	mov    %ebx,%eax
5cef1d:	eb 33                	jmp    0x5cef52
5cef1f:	33 f6                	xor    %esi,%esi
5cef21:	46                   	inc    %esi
5cef22:	56                   	push   %esi
5cef23:	ff 75 08             	push   0x8(%ebp)
5cef26:	56                   	push   %esi
5cef27:	53                   	push   %ebx
5cef28:	6a 09                	push   $0x9
5cef2a:	ff 37                	push   (%edi)
5cef2c:	ff 15 fc 20 68 00    	call   *0x6820fc
5cef32:	85 c0                	test   %eax,%eax
5cef34:	75 a2                	jne    0x5ceed8
5cef36:	e8 be e0 01 00       	call   0x5ecff9
5cef3b:	c7 00 2a 00 00 00    	movl   $0x2a,(%eax)
5cef41:	83 c8 ff             	or     $0xffffffff,%eax
5cef44:	eb 0c                	jmp    0x5cef52
5cef46:	8b 45 08             	mov    0x8(%ebp),%eax
5cef49:	0f b6 ca             	movzbl %dl,%ecx
5cef4c:	66 89 08             	mov    %cx,(%eax)
5cef4f:	33 c0                	xor    %eax,%eax
5cef51:	40                   	inc    %eax
5cef52:	5f                   	pop    %edi
5cef53:	5e                   	pop    %esi
5cef54:	5b                   	pop    %ebx
5cef55:	c9                   	leave
5cef56:	c3                   	ret
5cef57:	55                   	push   %ebp
5cef58:	8b ec                	mov    %esp,%ebp
5cef5a:	8a 4d 0c             	mov    0xc(%ebp),%cl
5cef5d:	84 c9                	test   %cl,%cl
5cef5f:	78 04                	js     0x5cef65
5cef61:	33 c0                	xor    %eax,%eax
5cef63:	5d                   	pop    %ebp
5cef64:	c3                   	ret
5cef65:	8a c1                	mov    %cl,%al
5cef67:	24 e0                	and    $0xe0,%al
5cef69:	3c c0                	cmp    $0xc0,%al
5cef6b:	75 10                	jne    0x5cef7d
5cef6d:	8b 45 08             	mov    0x8(%ebp),%eax
5cef70:	0f b6 c9             	movzbl %cl,%ecx
5cef73:	83 e1 1f             	and    $0x1f,%ecx
5cef76:	89 08                	mov    %ecx,(%eax)
5cef78:	33 c0                	xor    %eax,%eax
5cef7a:	40                   	inc    %eax
5cef7b:	5d                   	pop    %ebp
5cef7c:	c3                   	ret
5cef7d:	8a c1                	mov    %cl,%al
5cef7f:	24 f0                	and    $0xf0,%al
5cef81:	3c e0                	cmp    $0xe0,%al
5cef83:	75 10                	jne    0x5cef95
5cef85:	0f b6 c9             	movzbl %cl,%ecx
5cef88:	83 e1 0f             	and    $0xf,%ecx
5cef8b:	6a 02                	push   $0x2
5cef8d:	8b 45 08             	mov    0x8(%ebp),%eax
5cef90:	89 08                	mov    %ecx,(%eax)
5cef92:	58                   	pop    %eax
5cef93:	5d                   	pop    %ebp
5cef94:	c3                   	ret
5cef95:	8a c1                	mov    %cl,%al
5cef97:	24 f8                	and    $0xf8,%al
5cef99:	3c f0                	cmp    $0xf0,%al
5cef9b:	75 0a                	jne    0x5cefa7
5cef9d:	0f b6 c9             	movzbl %cl,%ecx
5cefa0:	83 e1 07             	and    $0x7,%ecx
5cefa3:	6a 03                	push   $0x3
5cefa5:	eb e6                	jmp    0x5cef8d
5cefa7:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
5cefac:	5d                   	pop    %ebp
5cefad:	c3                   	ret
5cefae:	55                   	push   %ebp
5cefaf:	8b ec                	mov    %esp,%ebp
5cefb1:	51                   	push   %ecx
5cefb2:	8d 45 fc             	lea    -0x4(%ebp),%eax
5cefb5:	50                   	push   %eax
5cefb6:	6a 01                	push   $0x1
5cefb8:	8d 45 08             	lea    0x8(%ebp),%eax
5cefbb:	50                   	push   %eax
5cefbc:	6a 01                	push   $0x1
5cefbe:	ff 15 a4 22 68 00    	call   *0x6822a4
5cefc4:	f7 d8                	neg    %eax
5cefc6:	1b c0                	sbb    %eax,%eax
5cefc8:	66 23 45 fc          	and    -0x4(%ebp),%ax
5cefcc:	c9                   	leave
5cefcd:	c3                   	ret
5cefce:	55                   	push   %ebp
5cefcf:	8b ec                	mov    %esp,%ebp
5cefd1:	ff 75 10             	push   0x10(%ebp)
5cefd4:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5cefd7:	2b 4d 08             	sub    0x8(%ebp),%ecx
5cefda:	d1 f9                	sar    $1,%ecx
5cefdc:	51                   	push   %ecx
5cefdd:	ff 75 08             	push   0x8(%ebp)
5cefe0:	6a 01                	push   $0x1
5cefe2:	ff 15 a4 22 68 00    	call   *0x6822a4
5cefe8:	8b 45 0c             	mov    0xc(%ebp),%eax
5cefeb:	5d                   	pop    %ebp
5cefec:	c3                   	ret
5cefed:	55                   	push   %ebp
5cefee:	8b ec                	mov    %esp,%ebp
5ceff0:	51                   	push   %ecx
5ceff1:	66 8b 4d 08          	mov    0x8(%ebp),%cx
5ceff5:	b8 ff ff 00 00       	mov    $0xffff,%eax
5ceffa:	66 89 4d fc          	mov    %cx,-0x4(%ebp)
5ceffe:	66 3b c8             	cmp    %ax,%cx
5cf001:	74 45                	je     0x5cf048
5cf003:	8b 45 0c             	mov    0xc(%ebp),%eax
5cf006:	ba 00 01 00 00       	mov    $0x100,%edx
5cf00b:	8b 40 0c             	mov    0xc(%eax),%eax
5cf00e:	85 c0                	test   %eax,%eax
5cf010:	75 14                	jne    0x5cf026
5cf012:	66 3b ca             	cmp    %dx,%cx
5cf015:	73 0f                	jae    0x5cf026
5cf017:	8d 41 bf             	lea    -0x41(%ecx),%eax
5cf01a:	66 83 f8 19          	cmp    $0x19,%ax
5cf01e:	77 28                	ja     0x5cf048
5cf020:	66 83 c1 20          	add    $0x20,%cx
5cf024:	eb 22                	jmp    0x5cf048
5cf026:	6a 01                	push   $0x1
5cf028:	8d 4d fc             	lea    -0x4(%ebp),%ecx
5cf02b:	51                   	push   %ecx
5cf02c:	6a 01                	push   $0x1
5cf02e:	8d 4d 08             	lea    0x8(%ebp),%ecx
5cf031:	51                   	push   %ecx
5cf032:	52                   	push   %edx
5cf033:	50                   	push   %eax
5cf034:	e8 92 13 00 00       	call   0x5d03cb
5cf039:	66 8b 4d 08          	mov    0x8(%ebp),%cx
5cf03d:	83 c4 18             	add    $0x18,%esp
5cf040:	85 c0                	test   %eax,%eax
5cf042:	74 04                	je     0x5cf048
5cf044:	66 8b 4d fc          	mov    -0x4(%ebp),%cx
5cf048:	66 8b c1             	mov    %cx,%ax
5cf04b:	c9                   	leave
5cf04c:	c3                   	ret
5cf04d:	55                   	push   %ebp
5cf04e:	8b ec                	mov    %esp,%ebp
5cf050:	51                   	push   %ecx
5cf051:	66 8b 4d 08          	mov    0x8(%ebp),%cx
5cf055:	b8 ff ff 00 00       	mov    $0xffff,%eax
5cf05a:	66 89 4d fc          	mov    %cx,-0x4(%ebp)
5cf05e:	66 3b c8             	cmp    %ax,%cx
5cf061:	74 49                	je     0x5cf0ac
5cf063:	8b 45 0c             	mov    0xc(%ebp),%eax
5cf066:	8b 40 0c             	mov    0xc(%eax),%eax
5cf069:	85 c0                	test   %eax,%eax
5cf06b:	75 19                	jne    0x5cf086
5cf06d:	ba 00 01 00 00       	mov    $0x100,%edx
5cf072:	66 3b ca             	cmp    %dx,%cx
5cf075:	73 0f                	jae    0x5cf086
5cf077:	8d 41 9f             	lea    -0x61(%ecx),%eax
5cf07a:	66 83 f8 19          	cmp    $0x19,%ax
5cf07e:	77 2c                	ja     0x5cf0ac
5cf080:	66 83 e9 20          	sub    $0x20,%cx
5cf084:	eb 26                	jmp    0x5cf0ac
5cf086:	6a 01                	push   $0x1
5cf088:	8d 4d fc             	lea    -0x4(%ebp),%ecx
5cf08b:	51                   	push   %ecx
5cf08c:	6a 01                	push   $0x1
5cf08e:	8d 4d 08             	lea    0x8(%ebp),%ecx
5cf091:	51                   	push   %ecx
5cf092:	68 00 02 00 00       	push   $0x200
5cf097:	50                   	push   %eax
5cf098:	e8 2e 13 00 00       	call   0x5d03cb
5cf09d:	66 8b 4d 08          	mov    0x8(%ebp),%cx
5cf0a1:	83 c4 18             	add    $0x18,%esp
5cf0a4:	85 c0                	test   %eax,%eax
5cf0a6:	74 04                	je     0x5cf0ac
5cf0a8:	66 8b 4d fc          	mov    -0x4(%ebp),%cx
5cf0ac:	66 8b c1             	mov    %cx,%ax
5cf0af:	c9                   	leave
5cf0b0:	c3                   	ret
5cf0b1:	55                   	push   %ebp
5cf0b2:	8b ec                	mov    %esp,%ebp
5cf0b4:	8b 45 08             	mov    0x8(%ebp),%eax
5cf0b7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5cf0ba:	89 48 08             	mov    %ecx,0x8(%eax)
5cf0bd:	8b 4d 10             	mov    0x10(%ebp),%ecx
5cf0c0:	c7 00 d0 f0 5c 00    	movl   $0x5cf0d0,(%eax)
5cf0c6:	89 48 0c             	mov    %ecx,0xc(%eax)
5cf0c9:	5d                   	pop    %ebp
5cf0ca:	c3                   	ret
5cf0cb:	cc                   	int3
5cf0cc:	cc                   	int3
5cf0cd:	cc                   	int3
5cf0ce:	cc                   	int3
5cf0cf:	cc                   	int3
5cf0d0:	55                   	push   %ebp
5cf0d1:	8b ec                	mov    %esp,%ebp
5cf0d3:	8b 4d 08             	mov    0x8(%ebp),%ecx
5cf0d6:	8b 45 0c             	mov    0xc(%ebp),%eax
5cf0d9:	89 41 20             	mov    %eax,0x20(%ecx)
5cf0dc:	8b 45 10             	mov    0x10(%ebp),%eax
5cf0df:	89 41 24             	mov    %eax,0x24(%ecx)
5cf0e2:	5d                   	pop    %ebp
5cf0e3:	c3                   	ret
5cf0e4:	55                   	push   %ebp
5cf0e5:	8b ec                	mov    %esp,%ebp
5cf0e7:	51                   	push   %ecx
5cf0e8:	53                   	push   %ebx
5cf0e9:	56                   	push   %esi
5cf0ea:	57                   	push   %edi
5cf0eb:	8b 7d 0c             	mov    0xc(%ebp),%edi
5cf0ee:	85 ff                	test   %edi,%edi
5cf0f0:	75 03                	jne    0x5cf0f5
5cf0f2:	8d 7d fc             	lea    -0x4(%ebp),%edi
5cf0f5:	8b 45 08             	mov    0x8(%ebp),%eax
5cf0f8:	8b f0                	mov    %eax,%esi
5cf0fa:	0f b6 00             	movzbl (%eax),%eax
5cf0fd:	eb 04                	jmp    0x5cf103
5cf0ff:	46                   	inc    %esi
5cf100:	0f b6 06             	movzbl (%esi),%eax
5cf103:	50                   	push   %eax
5cf104:	e8 da 7d 02 00       	call   0x5f6ee3
5cf109:	59                   	pop    %ecx
5cf10a:	85 c0                	test   %eax,%eax
5cf10c:	75 f1                	jne    0x5cf0ff
5cf10e:	8a 1e                	mov    (%esi),%bl
5cf110:	80 fb 2d             	cmp    $0x2d,%bl
5cf113:	74 09                	je     0x5cf11e
5cf115:	80 fb 2b             	cmp    $0x2b,%bl
5cf118:	74 04                	je     0x5cf11e
5cf11a:	b3 2b                	mov    $0x2b,%bl
5cf11c:	eb 01                	jmp    0x5cf11f
5cf11e:	46                   	inc    %esi
5cf11f:	ff 75 14             	push   0x14(%ebp)
5cf122:	ff 75 10             	push   0x10(%ebp)
5cf125:	57                   	push   %edi
5cf126:	56                   	push   %esi
5cf127:	e8 5d 00 00 00       	call   0x5cf189
5cf12c:	8b 17                	mov    (%edi),%edx
5cf12e:	83 c4 10             	add    $0x10,%esp
5cf131:	8b 4d 08             	mov    0x8(%ebp),%ecx
5cf134:	3b f2                	cmp    %edx,%esi
5cf136:	75 04                	jne    0x5cf13c
5cf138:	89 0f                	mov    %ecx,(%edi)
5cf13a:	8b d1                	mov    %ecx,%edx
5cf13c:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
5cf141:	3b ca                	cmp    %edx,%ecx
5cf143:	75 04                	jne    0x5cf149
5cf145:	85 c0                	test   %eax,%eax
5cf147:	75 15                	jne    0x5cf15e
5cf149:	80 fb 2b             	cmp    $0x2b,%bl
5cf14c:	75 04                	jne    0x5cf152
5cf14e:	3b c6                	cmp    %esi,%eax
5cf150:	77 0c                	ja     0x5cf15e
5cf152:	80 fb 2d             	cmp    $0x2d,%bl
5cf155:	75 2d                	jne    0x5cf184
5cf157:	3d 00 00 00 80       	cmp    $0x80000000,%eax
5cf15c:	76 24                	jbe    0x5cf182
5cf15e:	e8 96 de 01 00       	call   0x5ecff9
5cf163:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
5cf169:	8b 45 14             	mov    0x14(%ebp),%eax
5cf16c:	85 c0                	test   %eax,%eax
5cf16e:	74 06                	je     0x5cf176
5cf170:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
5cf176:	33 c0                	xor    %eax,%eax
5cf178:	80 fb 2d             	cmp    $0x2d,%bl
5cf17b:	0f 94 c0             	sete   %al
5cf17e:	03 c6                	add    %esi,%eax
5cf180:	eb 02                	jmp    0x5cf184
5cf182:	f7 d8                	neg    %eax
5cf184:	5f                   	pop    %edi
5cf185:	5e                   	pop    %esi
5cf186:	5b                   	pop    %ebx
5cf187:	c9                   	leave
5cf188:	c3                   	ret
5cf189:	55                   	push   %ebp
5cf18a:	8b ec                	mov    %esp,%ebp
5cf18c:	83 ec 14             	sub    $0x14,%esp
5cf18f:	8b 45 14             	mov    0x14(%ebp),%eax
5cf192:	33 c9                	xor    %ecx,%ecx
5cf194:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5cf197:	85 c0                	test   %eax,%eax
5cf199:	74 02                	je     0x5cf19d
5cf19b:	89 08                	mov    %ecx,(%eax)
5cf19d:	53                   	push   %ebx
5cf19e:	8b 5d 08             	mov    0x8(%ebp),%ebx
5cf1a1:	56                   	push   %esi
5cf1a2:	57                   	push   %edi
5cf1a3:	8b f3                	mov    %ebx,%esi
5cf1a5:	0f b6 03             	movzbl (%ebx),%eax
5cf1a8:	eb 04                	jmp    0x5cf1ae
5cf1aa:	46                   	inc    %esi
5cf1ab:	0f b6 06             	movzbl (%esi),%eax
5cf1ae:	50                   	push   %eax
5cf1af:	e8 2f 7d 02 00       	call   0x5f6ee3
5cf1b4:	59                   	pop    %ecx
5cf1b5:	85 c0                	test   %eax,%eax
5cf1b7:	75 f1                	jne    0x5cf1aa
5cf1b9:	8a 06                	mov    (%esi),%al
5cf1bb:	88 45 ff             	mov    %al,-0x1(%ebp)
5cf1be:	3c 2d                	cmp    $0x2d,%al
5cf1c0:	74 0a                	je     0x5cf1cc
5cf1c2:	3c 2b                	cmp    $0x2b,%al
5cf1c4:	74 06                	je     0x5cf1cc
5cf1c6:	c6 45 ff 2b          	movb   $0x2b,-0x1(%ebp)
5cf1ca:	eb 01                	jmp    0x5cf1cd
5cf1cc:	46                   	inc    %esi
5cf1cd:	8b 7d 10             	mov    0x10(%ebp),%edi
5cf1d0:	85 ff                	test   %edi,%edi
5cf1d2:	0f 88 15 01 00 00    	js     0x5cf2ed
5cf1d8:	83 ff 01             	cmp    $0x1,%edi
5cf1db:	0f 84 0c 01 00 00    	je     0x5cf2ed
5cf1e1:	83 ff 24             	cmp    $0x24,%edi
5cf1e4:	0f 8f 03 01 00 00    	jg     0x5cf2ed
5cf1ea:	85 ff                	test   %edi,%edi
5cf1ec:	7e 17                	jle    0x5cf205
5cf1ee:	83 ff 10             	cmp    $0x10,%edi