6120cb:	85 db                	test   %ebx,%ebx
6120cd:	75 09                	jne    0x6120d8
6120cf:	bb 65 aa 68 00       	mov    $0x68aa65,%ebx
6120d4:	8b c2                	mov    %edx,%eax
6120d6:	eb 03                	jmp    0x6120db
6120d8:	8b 45 10             	mov    0x10(%ebp),%eax
6120db:	f7 df                	neg    %edi
6120dd:	89 45 e4             	mov    %eax,-0x1c(%ebp)
6120e0:	1b ff                	sbb    %edi,%edi
6120e2:	23 f9                	and    %ecx,%edi
6120e4:	85 c0                	test   %eax,%eax
6120e6:	75 08                	jne    0x6120f0
6120e8:	6a fe                	push   $0xfffffffe
6120ea:	58                   	pop    %eax
6120eb:	e9 44 01 00 00       	jmp    0x612234
6120f0:	33 c0                	xor    %eax,%eax
6120f2:	66 39 46 06          	cmp    %ax,0x6(%esi)
6120f6:	75 64                	jne    0x61215c
6120f8:	8a 0b                	mov    (%ebx),%cl
6120fa:	43                   	inc    %ebx
6120fb:	88 4d ee             	mov    %cl,-0x12(%ebp)
6120fe:	84 c9                	test   %cl,%cl
612100:	78 15                	js     0x612117
612102:	85 ff                	test   %edi,%edi
612104:	74 05                	je     0x61210b
612106:	0f b6 c1             	movzbl %cl,%eax
612109:	89 07                	mov    %eax,(%edi)
61210b:	33 c0                	xor    %eax,%eax
61210d:	84 c9                	test   %cl,%cl
61210f:	0f 95 c0             	setne  %al
612112:	e9 1d 01 00 00       	jmp    0x612234
612117:	8a c1                	mov    %cl,%al
612119:	24 e0                	and    $0xe0,%al
61211b:	3c c0                	cmp    $0xc0,%al
61211d:	75 04                	jne    0x612123
61211f:	b0 02                	mov    $0x2,%al
612121:	eb 1a                	jmp    0x61213d
612123:	8a c1                	mov    %cl,%al
612125:	24 f0                	and    $0xf0,%al
612127:	3c e0                	cmp    $0xe0,%al
612129:	75 04                	jne    0x61212f
61212b:	b0 03                	mov    $0x3,%al
61212d:	eb 0e                	jmp    0x61213d
61212f:	8a c1                	mov    %cl,%al
612131:	24 f8                	and    $0xf8,%al
612133:	3c f0                	cmp    $0xf0,%al
612135:	0f 85 f2 00 00 00    	jne    0x61222d
61213b:	b0 04                	mov    $0x4,%al
61213d:	88 45 ef             	mov    %al,-0x11(%ebp)
612140:	88 45 ed             	mov    %al,-0x13(%ebp)
612143:	6a 07                	push   $0x7
612145:	0f b6 c0             	movzbl %al,%eax
612148:	59                   	pop    %ecx
612149:	2b c8                	sub    %eax,%ecx
61214b:	0f b6 45 ee          	movzbl -0x12(%ebp),%eax
61214f:	8a 6d ed             	mov    -0x13(%ebp),%ch
612152:	d3 e2                	shl    %cl,%edx
612154:	8a 4d ef             	mov    -0x11(%ebp),%cl
612157:	4a                   	dec    %edx
612158:	23 d0                	and    %eax,%edx
61215a:	eb 25                	jmp    0x612181
61215c:	8a 4e 04             	mov    0x4(%esi),%cl
61215f:	8b 16                	mov    (%esi),%edx
612161:	8a c1                	mov    %cl,%al
612163:	8a 6e 06             	mov    0x6(%esi),%ch
612166:	2c 02                	sub    $0x2,%al
612168:	3c 02                	cmp    $0x2,%al
61216a:	0f 87 bd 00 00 00    	ja     0x61222d
612170:	80 fd 01             	cmp    $0x1,%ch
612173:	0f 82 b4 00 00 00    	jb     0x61222d
612179:	3a e9                	cmp    %cl,%ch
61217b:	0f 83 ac 00 00 00    	jae    0x61222d
612181:	0f b6 c5             	movzbl %ch,%eax
612184:	89 45 e0             	mov    %eax,-0x20(%ebp)
612187:	8b 45 e4             	mov    -0x1c(%ebp),%eax
61218a:	39 45 e0             	cmp    %eax,-0x20(%ebp)
61218d:	73 06                	jae    0x612195
61218f:	8b 45 e0             	mov    -0x20(%ebp),%eax
612192:	89 45 e4             	mov    %eax,-0x1c(%ebp)
612195:	8b 45 dc             	mov    -0x24(%ebp),%eax
612198:	89 5d e8             	mov    %ebx,-0x18(%ebp)
61219b:	29 45 e8             	sub    %eax,-0x18(%ebp)
61219e:	eb 19                	jmp    0x6121b9
6121a0:	8a 23                	mov    (%ebx),%ah
6121a2:	43                   	inc    %ebx
6121a3:	ff 45 e8             	incl   -0x18(%ebp)
6121a6:	8a c4                	mov    %ah,%al
6121a8:	24 c0                	and    $0xc0,%al
6121aa:	3c 80                	cmp    $0x80,%al
6121ac:	75 7f                	jne    0x61222d
6121ae:	0f b6 c4             	movzbl %ah,%eax
6121b1:	83 e0 3f             	and    $0x3f,%eax
6121b4:	c1 e2 06             	shl    $0x6,%edx
6121b7:	0b d0                	or     %eax,%edx
6121b9:	8b 45 e4             	mov    -0x1c(%ebp),%eax
6121bc:	39 45 e8             	cmp    %eax,-0x18(%ebp)
6121bf:	72 df                	jb     0x6121a0
6121c1:	8b 5d e0             	mov    -0x20(%ebp),%ebx
6121c4:	3b c3                	cmp    %ebx,%eax
6121c6:	73 18                	jae    0x6121e0
6121c8:	2a 6d e4             	sub    -0x1c(%ebp),%ch
6121cb:	0f b6 c1             	movzbl %cl,%eax
6121ce:	66 89 46 04          	mov    %ax,0x4(%esi)
6121d2:	0f b6 c5             	movzbl %ch,%eax
6121d5:	89 16                	mov    %edx,(%esi)
6121d7:	66 89 46 06          	mov    %ax,0x6(%esi)
6121db:	e9 08 ff ff ff       	jmp    0x6120e8
6121e0:	81 fa 00 d8 00 00    	cmp    $0xd800,%edx
6121e6:	72 08                	jb     0x6121f0
6121e8:	81 fa ff df 00 00    	cmp    $0xdfff,%edx
6121ee:	76 3d                	jbe    0x61222d
6121f0:	81 fa ff ff 10 00    	cmp    $0x10ffff,%edx
6121f6:	77 35                	ja     0x61222d
6121f8:	0f b6 c1             	movzbl %cl,%eax
6121fb:	c7 45 f0 80 00 00 00 	movl   $0x80,-0x10(%ebp)
612202:	c7 45 f4 00 08 00 00 	movl   $0x800,-0xc(%ebp)
612209:	c7 45 f8 00 00 01 00 	movl   $0x10000,-0x8(%ebp)
612210:	3b 54 85 e8          	cmp    -0x18(%ebp,%eax,4),%edx
612214:	72 17                	jb     0x61222d
612216:	85 ff                	test   %edi,%edi
612218:	74 02                	je     0x61221c
61221a:	89 17                	mov    %edx,(%edi)
61221c:	83 26 00             	andl   $0x0,(%esi)
61221f:	83 66 04 00          	andl   $0x0,0x4(%esi)
612223:	f7 da                	neg    %edx
612225:	1b d2                	sbb    %edx,%edx
612227:	23 d3                	and    %ebx,%edx
612229:	8b c2                	mov    %edx,%eax
61222b:	eb 07                	jmp    0x612234
61222d:	56                   	push   %esi
61222e:	e8 6f e4 ff ff       	call   0x6106a2
612233:	59                   	pop    %ecx
612234:	8b 4d fc             	mov    -0x4(%ebp),%ecx
612237:	5f                   	pop    %edi
612238:	5e                   	pop    %esi
612239:	33 cd                	xor    %ebp,%ecx
61223b:	5b                   	pop    %ebx
61223c:	e8 99 f2 fc ff       	call   0x5e14da
612241:	c9                   	leave
612242:	c3                   	ret
612243:	8b ff                	mov    %edi,%edi
612245:	55                   	push   %ebp
612246:	8b ec                	mov    %esp,%ebp
612248:	53                   	push   %ebx
612249:	56                   	push   %esi
61224a:	57                   	push   %edi
61224b:	33 ff                	xor    %edi,%edi
61224d:	bb e3 00 00 00       	mov    $0xe3,%ebx
612252:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
612255:	99                   	cltd
612256:	2b c2                	sub    %edx,%eax
612258:	8b f0                	mov    %eax,%esi
61225a:	d1 fe                	sar    $1,%esi
61225c:	6a 55                	push   $0x55
61225e:	ff 34 f5 08 a2 6d 00 	push   0x6da208(,%esi,8)
612265:	ff 75 08             	push   0x8(%ebp)
612268:	e8 92 4f fe ff       	call   0x5f71ff
61226d:	83 c4 0c             	add    $0xc,%esp
612270:	85 c0                	test   %eax,%eax
612272:	74 13                	je     0x612287
612274:	79 05                	jns    0x61227b
612276:	8d 5e ff             	lea    -0x1(%esi),%ebx
612279:	eb 03                	jmp    0x61227e
61227b:	8d 7e 01             	lea    0x1(%esi),%edi
61227e:	3b fb                	cmp    %ebx,%edi
612280:	7e d0                	jle    0x612252
612282:	83 c8 ff             	or     $0xffffffff,%eax
612285:	eb 07                	jmp    0x61228e
612287:	8b 04 f5 0c a2 6d 00 	mov    0x6da20c(,%esi,8),%eax
61228e:	5f                   	pop    %edi
61228f:	5e                   	pop    %esi
612290:	5b                   	pop    %ebx
612291:	5d                   	pop    %ebp
612292:	c3                   	ret
612293:	8b ff                	mov    %edi,%edi
612295:	55                   	push   %ebp
612296:	8b ec                	mov    %esp,%ebp
612298:	8b 4d 08             	mov    0x8(%ebp),%ecx
61229b:	53                   	push   %ebx
61229c:	56                   	push   %esi
61229d:	57                   	push   %edi
61229e:	85 c9                	test   %ecx,%ecx
6122a0:	0f 84 83 00 00 00    	je     0x612329
6122a6:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
6122ac:	74 7b                	je     0x612329
6122ae:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
6122b4:	74 73                	je     0x612329
6122b6:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
6122ba:	8b 75 10             	mov    0x10(%ebp),%esi
6122bd:	75 04                	jne    0x6122c3
6122bf:	85 f6                	test   %esi,%esi
6122c1:	7f 66                	jg     0x612329
6122c3:	85 f6                	test   %esi,%esi
6122c5:	78 62                	js     0x612329
6122c7:	33 ff                	xor    %edi,%edi
6122c9:	bb e3 00 00 00       	mov    $0xe3,%ebx
6122ce:	8d 04 3b             	lea    (%ebx,%edi,1),%eax
6122d1:	99                   	cltd
6122d2:	2b c2                	sub    %edx,%eax
6122d4:	8b d1                	mov    %ecx,%edx
6122d6:	d1 f8                	sar    $1,%eax
6122d8:	2b 14 c5 e8 9a 6d 00 	sub    0x6d9ae8(,%eax,8),%edx
6122df:	74 13                	je     0x6122f4
6122e1:	85 d2                	test   %edx,%edx
6122e3:	79 05                	jns    0x6122ea
6122e5:	8d 58 ff             	lea    -0x1(%eax),%ebx
6122e8:	eb 03                	jmp    0x6122ed
6122ea:	8d 78 01             	lea    0x1(%eax),%edi
6122ed:	3b fb                	cmp    %ebx,%edi
6122ef:	7e dd                	jle    0x6122ce
6122f1:	83 c8 ff             	or     $0xffffffff,%eax
6122f4:	85 c0                	test   %eax,%eax
6122f6:	78 31                	js     0x612329
6122f8:	8b 1c c5 ec 9a 6d 00 	mov    0x6d9aec(,%eax,8),%ebx
6122ff:	6a 55                	push   $0x55
612301:	53                   	push   %ebx
612302:	e8 3a 7d fe ff       	call   0x5fa041
612307:	8b f8                	mov    %eax,%edi
612309:	59                   	pop    %ecx
61230a:	59                   	pop    %ecx
61230b:	85 f6                	test   %esi,%esi
61230d:	7e 15                	jle    0x612324
61230f:	3b fe                	cmp    %esi,%edi
612311:	7d 16                	jge    0x612329
612313:	53                   	push   %ebx
612314:	56                   	push   %esi
612315:	ff 75 0c             	push   0xc(%ebp)
612318:	e8 f7 43 fe ff       	call   0x5f6714
61231d:	83 c4 0c             	add    $0xc,%esp
612320:	85 c0                	test   %eax,%eax
612322:	75 0c                	jne    0x612330
612324:	8d 47 01             	lea    0x1(%edi),%eax
612327:	eb 02                	jmp    0x61232b
612329:	33 c0                	xor    %eax,%eax
61232b:	5f                   	pop    %edi
61232c:	5e                   	pop    %esi
61232d:	5b                   	pop    %ebx
61232e:	5d                   	pop    %ebp
61232f:	c3                   	ret
612330:	33 c0                	xor    %eax,%eax
612332:	50                   	push   %eax
612333:	50                   	push   %eax
612334:	50                   	push   %eax
612335:	50                   	push   %eax
612336:	50                   	push   %eax
612337:	e8 10 ac fd ff       	call   0x5ecf4c
61233c:	cc                   	int3
61233d:	8b ff                	mov    %edi,%edi
61233f:	55                   	push   %ebp
612340:	8b ec                	mov    %esp,%ebp
612342:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
612346:	74 1d                	je     0x612365
612348:	ff 75 08             	push   0x8(%ebp)
61234b:	e8 f3 fe ff ff       	call   0x612243
612350:	59                   	pop    %ecx
612351:	85 c0                	test   %eax,%eax
612353:	78 10                	js     0x612365
612355:	3d e4 00 00 00       	cmp    $0xe4,%eax
61235a:	73 09                	jae    0x612365
61235c:	8b 04 c5 e8 9a 6d 00 	mov    0x6d9ae8(,%eax,8),%eax
612363:	5d                   	pop    %ebp
612364:	c3                   	ret
612365:	33 c0                	xor    %eax,%eax
612367:	5d                   	pop    %ebp
612368:	c3                   	ret
612369:	8b ff                	mov    %edi,%edi
61236b:	55                   	push   %ebp
61236c:	8b ec                	mov    %esp,%ebp
61236e:	56                   	push   %esi
61236f:	8b 75 14             	mov    0x14(%ebp),%esi
612372:	85 f6                	test   %esi,%esi
612374:	7e 14                	jle    0x61238a
612376:	56                   	push   %esi
612377:	ff 75 10             	push   0x10(%ebp)
61237a:	e8 c2 7c fe ff       	call   0x5fa041
61237f:	59                   	pop    %ecx
612380:	3b c6                	cmp    %esi,%eax
612382:	59                   	pop    %ecx
612383:	8d 70 01             	lea    0x1(%eax),%esi
612386:	7c 02                	jl     0x61238a
612388:	8b f0                	mov    %eax,%esi
61238a:	33 c0                	xor    %eax,%eax
61238c:	50                   	push   %eax
61238d:	50                   	push   %eax
61238e:	50                   	push   %eax
61238f:	ff 75 1c             	push   0x1c(%ebp)
612392:	ff 75 18             	push   0x18(%ebp)
612395:	56                   	push   %esi
612396:	ff 75 10             	push   0x10(%ebp)
612399:	ff 75 0c             	push   0xc(%ebp)
61239c:	ff 75 08             	push   0x8(%ebp)
61239f:	e8 63 54 ff ff       	call   0x607807
6123a4:	5e                   	pop    %esi
6123a5:	5d                   	pop    %ebp
6123a6:	c3                   	ret
6123a7:	8b ff                	mov    %edi,%edi
6123a9:	55                   	push   %ebp
6123aa:	8b ec                	mov    %esp,%ebp
6123ac:	51                   	push   %ecx
6123ad:	51                   	push   %ecx
6123ae:	8b 55 0c             	mov    0xc(%ebp),%edx
6123b1:	56                   	push   %esi
6123b2:	8b 75 10             	mov    0x10(%ebp),%esi
6123b5:	0f b7 ca             	movzwl %dx,%ecx
6123b8:	57                   	push   %edi
6123b9:	85 f6                	test   %esi,%esi
6123bb:	75 05                	jne    0x6123c2
6123bd:	be c4 14 73 00       	mov    $0x7314c4,%esi
6123c2:	83 3e 00             	cmpl   $0x0,(%esi)
6123c5:	8d 81 00 24 00 00    	lea    0x2400(%ecx),%eax
6123cb:	0f b7 c0             	movzwl %ax,%eax
6123ce:	75 3c                	jne    0x61240c
6123d0:	bf ff 03 00 00       	mov    $0x3ff,%edi
6123d5:	66 3b c7             	cmp    %di,%ax
6123d8:	77 09                	ja     0x6123e3
6123da:	56                   	push   %esi
6123db:	e8 c2 e2 ff ff       	call   0x6106a2
6123e0:	59                   	pop    %ecx
6123e1:	eb 5a                	jmp    0x61243d
6123e3:	8d 82 00 28 00 00    	lea    0x2800(%edx),%eax
6123e9:	66 3b c7             	cmp    %di,%ax
6123ec:	77 12                	ja     0x612400
6123ee:	81 e1 ff 27 ff ff    	and    $0xffff27ff,%ecx
6123f4:	83 c1 40             	add    $0x40,%ecx
6123f7:	c1 e1 0a             	shl    $0xa,%ecx
6123fa:	33 c0                	xor    %eax,%eax
6123fc:	89 0e                	mov    %ecx,(%esi)
6123fe:	eb 3d                	jmp    0x61243d
612400:	56                   	push   %esi
612401:	51                   	push   %ecx
612402:	ff 75 08             	push   0x8(%ebp)
612405:	e8 b7 e2 ff ff       	call   0x6106c1
61240a:	eb 2e                	jmp    0x61243a
61240c:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
612411:	66 3b c1             	cmp    %cx,%ax
612414:	77 c4                	ja     0x6123da
612416:	8d 45 f8             	lea    -0x8(%ebp),%eax
612419:	33 ff                	xor    %edi,%edi
61241b:	50                   	push   %eax
61241c:	0f b7 c2             	movzwl %dx,%eax
61241f:	25 ff 23 ff ff       	and    $0xffff23ff,%eax
612424:	89 7d f8             	mov    %edi,-0x8(%ebp)
612427:	03 06                	add    (%esi),%eax
612429:	50                   	push   %eax
61242a:	ff 75 08             	push   0x8(%ebp)
61242d:	89 7d fc             	mov    %edi,-0x4(%ebp)
612430:	e8 8c e2 ff ff       	call   0x6106c1
612435:	89 3e                	mov    %edi,(%esi)
612437:	89 7e 04             	mov    %edi,0x4(%esi)
61243a:	83 c4 0c             	add    $0xc,%esp