414fde:	33 c0                	xor    %eax,%eax
414fe0:	40                   	inc    %eax
414fe1:	8d 79 02             	lea    0x2(%ecx),%edi
414fe4:	89 45 18             	mov    %eax,0x18(%ebp)
414fe7:	f7 da                	neg    %edx
414fe9:	8b 4d 18             	mov    0x18(%ebp),%ecx
414fec:	8b df                	mov    %edi,%ebx
414fee:	8b c2                	mov    %edx,%eax
414ff0:	33 d2                	xor    %edx,%edx
414ff2:	f7 75 14             	divl   0x14(%ebp)
414ff5:	89 55 08             	mov    %edx,0x8(%ebp)
414ff8:	8b d0                	mov    %eax,%edx
414ffa:	8b 45 08             	mov    0x8(%ebp),%eax
414ffd:	83 f8 09             	cmp    $0x9,%eax
415000:	76 05                	jbe    0x415007
415002:	83 c0 57             	add    $0x57,%eax
415005:	eb 03                	jmp    0x41500a
415007:	83 c0 30             	add    $0x30,%eax
41500a:	66 89 07             	mov    %ax,(%edi)
41500d:	83 c7 02             	add    $0x2,%edi
415010:	41                   	inc    %ecx
415011:	85 d2                	test   %edx,%edx
415013:	74 05                	je     0x41501a
415015:	3b 4d 10             	cmp    0x10(%ebp),%ecx
415018:	72 d4                	jb     0x414fee
41501a:	3b 4d 10             	cmp    0x10(%ebp),%ecx
41501d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
415020:	72 15                	jb     0x415037
415022:	33 c0                	xor    %eax,%eax
415024:	66 89 01             	mov    %ax,(%ecx)
415027:	e8 51 31 ff ff       	call   0x40817d
41502c:	89 30                	mov    %esi,(%eax)
41502e:	e8 c2 65 ff ff       	call   0x40b5f5
415033:	8b c6                	mov    %esi,%eax
415035:	eb 20                	jmp    0x415057
415037:	33 c0                	xor    %eax,%eax
415039:	66 89 07             	mov    %ax,(%edi)
41503c:	83 ef 02             	sub    $0x2,%edi
41503f:	0f b7 0f             	movzwl (%edi),%ecx
415042:	66 8b 03             	mov    (%ebx),%ax
415045:	66 89 07             	mov    %ax,(%edi)
415048:	66 89 0b             	mov    %cx,(%ebx)
41504b:	83 ef 02             	sub    $0x2,%edi
41504e:	83 c3 02             	add    $0x2,%ebx
415051:	3b df                	cmp    %edi,%ebx
415053:	72 ea                	jb     0x41503f
415055:	33 c0                	xor    %eax,%eax
415057:	5f                   	pop    %edi
415058:	5b                   	pop    %ebx
415059:	5e                   	pop    %esi
41505a:	5d                   	pop    %ebp
41505b:	c2 14 00             	ret    $0x14
41505e:	55                   	push   %ebp
41505f:	8b ec                	mov    %esp,%ebp
415061:	6a 0a                	push   $0xa
415063:	6a 00                	push   $0x0
415065:	ff 75 08             	push   0x8(%ebp)
415068:	e8 d0 24 00 00       	call   0x41753d
41506d:	83 c4 0c             	add    $0xc,%esp
415070:	5d                   	pop    %ebp
415071:	c3                   	ret
415072:	53                   	push   %ebx
415073:	8b dc                	mov    %esp,%ebx
415075:	51                   	push   %ecx
415076:	51                   	push   %ecx
415077:	83 e4 f0             	and    $0xfffffff0,%esp
41507a:	83 c4 04             	add    $0x4,%esp
41507d:	55                   	push   %ebp
41507e:	8b 6b 04             	mov    0x4(%ebx),%ebp
415081:	89 6c 24 04          	mov    %ebp,0x4(%esp)
415085:	8b ec                	mov    %esp,%ebp
415087:	8b 4b 08             	mov    0x8(%ebx),%ecx
41508a:	66 8b 53 0c          	mov    0xc(%ebx),%dx
41508e:	83 ec 20             	sub    $0x20,%esp
415091:	83 3d d0 20 42 00 01 	cmpl   $0x1,0x4220d0
415098:	7c 48                	jl     0x4150e2
41509a:	0f b7 c2             	movzwl %dx,%eax
41509d:	66 0f 6e c0          	movd   %eax,%xmm0
4150a1:	f2 0f 70 c0 00       	pshuflw $0x0,%xmm0,%xmm0
4150a6:	66 0f 70 d0 00       	pshufd $0x0,%xmm0,%xmm2
4150ab:	8b c1                	mov    %ecx,%eax
4150ad:	25 ff 0f 00 00       	and    $0xfff,%eax
4150b2:	3d f0 0f 00 00       	cmp    $0xff0,%eax
4150b7:	77 3e                	ja     0x4150f7
4150b9:	f3 0f 6f 01          	movdqu (%ecx),%xmm0
4150bd:	66 0f ef c9          	pxor   %xmm1,%xmm1
4150c1:	66 0f 75 c8          	pcmpeqw %xmm0,%xmm1
4150c5:	66 0f 75 c2          	pcmpeqw %xmm2,%xmm0
4150c9:	66 0f eb c8          	por    %xmm0,%xmm1
4150cd:	66 0f d7 c1          	pmovmskb %xmm1,%eax
4150d1:	85 c0                	test   %eax,%eax
4150d3:	75 34                	jne    0x415109
4150d5:	83 c1 10             	add    $0x10,%ecx
4150d8:	eb d1                	jmp    0x4150ab
4150da:	66 3b c2             	cmp    %dx,%ax
4150dd:	74 0b                	je     0x4150ea
4150df:	83 c1 02             	add    $0x2,%ecx
4150e2:	0f b7 01             	movzwl (%ecx),%eax
4150e5:	66 85 c0             	test   %ax,%ax
4150e8:	75 f0                	jne    0x4150da
4150ea:	33 c0                	xor    %eax,%eax
4150ec:	66 39 11             	cmp    %dx,(%ecx)
4150ef:	0f 95 c0             	setne  %al
4150f2:	48                   	dec    %eax
4150f3:	23 c1                	and    %ecx,%eax
4150f5:	eb 22                	jmp    0x415119
4150f7:	0f b7 01             	movzwl (%ecx),%eax
4150fa:	66 3b c2             	cmp    %dx,%ax
4150fd:	74 18                	je     0x415117
4150ff:	66 85 c0             	test   %ax,%ax
415102:	74 0f                	je     0x415113
415104:	83 c1 02             	add    $0x2,%ecx
415107:	eb a2                	jmp    0x4150ab
415109:	0f bc c0             	bsf    %eax,%eax
41510c:	89 45 fc             	mov    %eax,-0x4(%ebp)
41510f:	03 c8                	add    %eax,%ecx
415111:	eb d7                	jmp    0x4150ea
415113:	33 c0                	xor    %eax,%eax
415115:	eb 02                	jmp    0x415119
415117:	8b c1                	mov    %ecx,%eax
415119:	8b e5                	mov    %ebp,%esp
41511b:	5d                   	pop    %ebp
41511c:	8b e3                	mov    %ebx,%esp
41511e:	5b                   	pop    %ebx
41511f:	c3                   	ret
415120:	55                   	push   %ebp
415121:	8b ec                	mov    %esp,%ebp
415123:	51                   	push   %ecx
415124:	83 3d 74 27 42 00 00 	cmpl   $0x0,0x422774
41512b:	57                   	push   %edi
41512c:	0f 85 8c 00 00 00    	jne    0x4151be
415132:	8b 7d 10             	mov    0x10(%ebp),%edi
415135:	33 c0                	xor    %eax,%eax
415137:	85 ff                	test   %edi,%edi
415139:	0f 84 92 00 00 00    	je     0x4151d1
41513f:	8b 55 08             	mov    0x8(%ebp),%edx
415142:	85 d2                	test   %edx,%edx
415144:	75 17                	jne    0x41515d
415146:	e8 32 30 ff ff       	call   0x40817d
41514b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
415151:	e8 9f 64 ff ff       	call   0x40b5f5
415156:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
41515b:	eb 74                	jmp    0x4151d1
41515d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
415160:	85 c9                	test   %ecx,%ecx
415162:	74 e2                	je     0x415146
415164:	53                   	push   %ebx
415165:	56                   	push   %esi
415166:	6a 41                	push   $0x41
415168:	5b                   	pop    %ebx
415169:	6a 5a                	push   $0x5a
41516b:	5e                   	pop    %esi
41516c:	2b d1                	sub    %ecx,%edx
41516e:	89 75 fc             	mov    %esi,-0x4(%ebp)
415171:	eb 03                	jmp    0x415176
415173:	6a 5a                	push   $0x5a
415175:	5e                   	pop    %esi
415176:	0f b7 04 0a          	movzwl (%edx,%ecx,1),%eax
41517a:	66 3b c3             	cmp    %bx,%ax
41517d:	72 0d                	jb     0x41518c
41517f:	66 3b c6             	cmp    %si,%ax
415182:	77 08                	ja     0x41518c
415184:	83 c0 20             	add    $0x20,%eax
415187:	0f b7 f0             	movzwl %ax,%esi
41518a:	eb 02                	jmp    0x41518e
41518c:	8b f0                	mov    %eax,%esi
41518e:	0f b7 01             	movzwl (%ecx),%eax
415191:	66 3b c3             	cmp    %bx,%ax
415194:	72 0c                	jb     0x4151a2
415196:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
41519a:	77 06                	ja     0x4151a2
41519c:	83 c0 20             	add    $0x20,%eax
41519f:	0f b7 c0             	movzwl %ax,%eax
4151a2:	83 c1 02             	add    $0x2,%ecx
4151a5:	4f                   	dec    %edi
4151a6:	74 0a                	je     0x4151b2
4151a8:	66 85 f6             	test   %si,%si
4151ab:	74 05                	je     0x4151b2
4151ad:	66 3b f0             	cmp    %ax,%si
4151b0:	74 c1                	je     0x415173
4151b2:	0f b7 c8             	movzwl %ax,%ecx
4151b5:	0f b7 c6             	movzwl %si,%eax
4151b8:	5e                   	pop    %esi
4151b9:	2b c1                	sub    %ecx,%eax
4151bb:	5b                   	pop    %ebx
4151bc:	eb 13                	jmp    0x4151d1
4151be:	6a 00                	push   $0x0
4151c0:	ff 75 10             	push   0x10(%ebp)
4151c3:	ff 75 0c             	push   0xc(%ebp)
4151c6:	ff 75 08             	push   0x8(%ebp)
4151c9:	e8 06 00 00 00       	call   0x4151d4
4151ce:	83 c4 10             	add    $0x10,%esp
4151d1:	5f                   	pop    %edi
4151d2:	c9                   	leave
4151d3:	c3                   	ret
4151d4:	55                   	push   %ebp
4151d5:	8b ec                	mov    %esp,%ebp
4151d7:	83 ec 14             	sub    $0x14,%esp
4151da:	53                   	push   %ebx
4151db:	56                   	push   %esi
4151dc:	33 f6                	xor    %esi,%esi
4151de:	57                   	push   %edi
4151df:	39 75 10             	cmp    %esi,0x10(%ebp)
4151e2:	0f 84 dc 00 00 00    	je     0x4152c4
4151e8:	8b 5d 08             	mov    0x8(%ebp),%ebx
4151eb:	85 db                	test   %ebx,%ebx
4151ed:	75 1a                	jne    0x415209
4151ef:	e8 89 2f ff ff       	call   0x40817d
4151f4:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4151fa:	e8 f6 63 ff ff       	call   0x40b5f5
4151ff:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
415204:	e9 bd 00 00 00       	jmp    0x4152c6
415209:	8b 7d 0c             	mov    0xc(%ebp),%edi
41520c:	85 ff                	test   %edi,%edi
41520e:	74 df                	je     0x4151ef
415210:	ff 75 14             	push   0x14(%ebp)
415213:	8d 4d ec             	lea    -0x14(%ebp),%ecx
415216:	e8 e2 ff fe ff       	call   0x4051fd
41521b:	8b 45 ec             	mov    -0x14(%ebp),%eax
41521e:	39 b0 a8 00 00 00    	cmp    %esi,0xa8(%eax)
415224:	75 51                	jne    0x415277
415226:	8b 4d 10             	mov    0x10(%ebp),%ecx
415229:	6a 41                	push   $0x41
41522b:	5a                   	pop    %edx
41522c:	6a 5a                	push   $0x5a
41522e:	5e                   	pop    %esi
41522f:	2b df                	sub    %edi,%ebx
415231:	89 75 fc             	mov    %esi,-0x4(%ebp)
415234:	eb 03                	jmp    0x415239
415236:	6a 5a                	push   $0x5a
415238:	5e                   	pop    %esi
415239:	0f b7 04 3b          	movzwl (%ebx,%edi,1),%eax
41523d:	66 3b c2             	cmp    %dx,%ax
415240:	72 0d                	jb     0x41524f
415242:	66 3b c6             	cmp    %si,%ax
415245:	77 08                	ja     0x41524f
415247:	83 c0 20             	add    $0x20,%eax
41524a:	0f b7 f0             	movzwl %ax,%esi
41524d:	eb 02                	jmp    0x415251
41524f:	8b f0                	mov    %eax,%esi
415251:	0f b7 07             	movzwl (%edi),%eax
415254:	66 3b c2             	cmp    %dx,%ax
415257:	72 0c                	jb     0x415265
415259:	66 3b 45 fc          	cmp    -0x4(%ebp),%ax
41525d:	77 06                	ja     0x415265
41525f:	83 c0 20             	add    $0x20,%eax
415262:	0f b7 c0             	movzwl %ax,%eax
415265:	83 c7 02             	add    $0x2,%edi
415268:	49                   	dec    %ecx
415269:	74 44                	je     0x4152af
41526b:	66 85 f6             	test   %si,%si
41526e:	74 3f                	je     0x4152af
415270:	66 3b f0             	cmp    %ax,%si
415273:	74 c1                	je     0x415236
415275:	eb 38                	jmp    0x4152af
415277:	8d 45 ec             	lea    -0x14(%ebp),%eax
41527a:	50                   	push   %eax
41527b:	0f b7 03             	movzwl (%ebx),%eax
41527e:	50                   	push   %eax
41527f:	e8 b1 fa ff ff       	call   0x414d35
415284:	0f b7 f0             	movzwl %ax,%esi
415287:	8d 45 ec             	lea    -0x14(%ebp),%eax
41528a:	50                   	push   %eax
41528b:	0f b7 07             	movzwl (%edi),%eax
41528e:	50                   	push   %eax
41528f:	e8 a1 fa ff ff       	call   0x414d35
415294:	83 c4 10             	add    $0x10,%esp
415297:	ff 4d 10             	decl   0x10(%ebp)
41529a:	0f b7 c0             	movzwl %ax,%eax
41529d:	8d 5b 02             	lea    0x2(%ebx),%ebx
4152a0:	8d 7f 02             	lea    0x2(%edi),%edi
4152a3:	74 0a                	je     0x4152af
4152a5:	66 85 f6             	test   %si,%si
4152a8:	74 05                	je     0x4152af
4152aa:	66 3b f0             	cmp    %ax,%si
4152ad:	74 c8                	je     0x415277
4152af:	0f b7 c0             	movzwl %ax,%eax
4152b2:	0f b7 f6             	movzwl %si,%esi
4152b5:	2b f0                	sub    %eax,%esi
4152b7:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
4152bb:	74 07                	je     0x4152c4
4152bd:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4152c0:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
4152c4:	8b c6                	mov    %esi,%eax
4152c6:	5f                   	pop    %edi
4152c7:	5e                   	pop    %esi
4152c8:	5b                   	pop    %ebx
4152c9:	c9                   	leave
4152ca:	c3                   	ret
4152cb:	a1 08 14 42 00       	mov    0x421408,%eax
4152d0:	83 f8 ff             	cmp    $0xffffffff,%eax
4152d3:	74 0c                	je     0x4152e1
4152d5:	83 f8 fe             	cmp    $0xfffffffe,%eax
4152d8:	74 07                	je     0x4152e1
4152da:	50                   	push   %eax
4152db:	ff 15 40 90 41 00    	call   *0x419040
4152e1:	c3                   	ret
4152e2:	33 c0                	xor    %eax,%eax
4152e4:	50                   	push   %eax
4152e5:	50                   	push   %eax
4152e6:	6a 03                	push   $0x3
4152e8:	50                   	push   %eax
4152e9:	6a 03                	push   $0x3
4152eb:	68 00 00 00 40       	push   $0x40000000
4152f0:	68 6c d3 41 00       	push   $0x41d36c
4152f5:	ff 15 34 90 41 00    	call   *0x419034
4152fb:	a3 08 14 42 00       	mov    %eax,0x421408
415300:	c3                   	ret
415301:	55                   	push   %ebp
415302:	8b ec                	mov    %esp,%ebp
415304:	83 ec 44             	sub    $0x44,%esp
415307:	a1 90 08 42 00       	mov    0x420890,%eax
41530c:	33 c5                	xor    %ebp,%eax
41530e:	89 45 fc             	mov    %eax,-0x4(%ebp)
415311:	8b 4d 08             	mov    0x8(%ebp),%ecx
415314:	53                   	push   %ebx
415315:	0f b7 41 0a          	movzwl 0xa(%ecx),%eax
415319:	8b d0                	mov    %eax,%edx
41531b:	25 00 80 00 00       	and    $0x8000,%eax
415320:	89 45 bc             	mov    %eax,-0x44(%ebp)
415323:	8b 41 06             	mov    0x6(%ecx),%eax
415326:	89 45 f0             	mov    %eax,-0x10(%ebp)
415329:	8b 41 02             	mov    0x2(%ecx),%eax
41532c:	89 45 f4             	mov    %eax,-0xc(%ebp)
41532f:	0f b7 01             	movzwl (%ecx),%eax
415332:	81 e2 ff 7f 00 00    	and    $0x7fff,%edx
415338:	56                   	push   %esi
415339:	81 ea ff 3f 00 00    	sub    $0x3fff,%edx
41533f:	57                   	push   %edi
415340:	8b 7d 0c             	mov    0xc(%ebp),%edi
415343:	c1 e0 10             	shl    $0x10,%eax
415346:	33 db                	xor    %ebx,%ebx
415348:	89 7d c0             	mov    %edi,-0x40(%ebp)
41534b:	89 55 e0             	mov    %edx,-0x20(%ebp)
41534e:	89 45 f8             	mov    %eax,-0x8(%ebp)
415351:	81 fa 01 c0 ff ff    	cmp    $0xffffc001,%edx
415357:	75 25                	jne    0x41537e
415359:	8b f3                	mov    %ebx,%esi
41535b:	8b c3                	mov    %ebx,%eax
41535d:	39 5c 85 f0          	cmp    %ebx,-0x10(%ebp,%eax,4)
415361:	75 0b                	jne    0x41536e
415363:	40                   	inc    %eax
415364:	83 f8 03             	cmp    $0x3,%eax
415367:	7c f4                	jl     0x41535d
415369:	e9 b9 04 00 00       	jmp    0x415827
41536e:	33 c0                	xor    %eax,%eax
415370:	8d 7d f0             	lea    -0x10(%ebp),%edi
415373:	ab                   	stos   %eax,%es:(%edi)
415374:	ab                   	stos   %eax,%es:(%edi)
415375:	ab                   	stos   %eax,%es:(%edi)