414013:	74 04                	je     0x414019
414015:	2b ca                	sub    %edx,%ecx
414017:	89 0f                	mov    %ecx,(%edi)
414019:	8b 55 0c             	mov    0xc(%ebp),%edx
41401c:	83 45 08 04          	addl   $0x4,0x8(%ebp)
414020:	83 c7 04             	add    $0x4,%edi
414023:	83 c2 04             	add    $0x4,%edx
414026:	8b 45 08             	mov    0x8(%ebp),%eax
414029:	3b 45 10             	cmp    0x10(%ebp),%eax
41402c:	7c af                	jl     0x413fdd
41402e:	8b 45 fc             	mov    -0x4(%ebp),%eax
414031:	eb 4a                	jmp    0x41407d
414033:	33 c0                	xor    %eax,%eax
414035:	eb 46                	jmp    0x41407d
414037:	ff 75 0c             	push   0xc(%ebp)
41403a:	0f b6 5a 0c          	movzbl 0xc(%edx),%ebx
41403e:	83 65 10 00          	andl   $0x0,0x10(%ebp)
414042:	8d 71 34             	lea    0x34(%ecx),%esi
414045:	8b ce                	mov    %esi,%ecx
414047:	e8 83 db fe ff       	call   0x401bcf
41404c:	83 65 08 00          	andl   $0x0,0x8(%ebp)
414050:	8b 06                	mov    (%esi),%eax
414052:	85 db                	test   %ebx,%ebx
414054:	76 27                	jbe    0x41407d
414056:	8b 55 08             	mov    0x8(%ebp),%edx
414059:	8b 75 0c             	mov    0xc(%ebp),%esi
41405c:	32 c9                	xor    %cl,%cl
41405e:	3b d6                	cmp    %esi,%edx
414060:	73 13                	jae    0x414075
414062:	8b 75 10             	mov    0x10(%ebp),%esi
414065:	2a 0c 3e             	sub    (%esi,%edi,1),%cl
414068:	ff 45 10             	incl   0x10(%ebp)
41406b:	88 0c 02             	mov    %cl,(%edx,%eax,1)
41406e:	03 d3                	add    %ebx,%edx
414070:	3b 55 0c             	cmp    0xc(%ebp),%edx
414073:	72 ed                	jb     0x414062
414075:	ff 45 08             	incl   0x8(%ebp)
414078:	39 5d 08             	cmp    %ebx,0x8(%ebp)
41407b:	72 d9                	jb     0x414056
41407d:	5f                   	pop    %edi
41407e:	5e                   	pop    %esi
41407f:	5b                   	pop    %ebx
414080:	c9                   	leave
414081:	c2 0c 00             	ret    $0xc
414084:	55                   	push   %ebp
414085:	8b ec                	mov    %esp,%ebp
414087:	53                   	push   %ebx
414088:	8b 5d 08             	mov    0x8(%ebp),%ebx
41408b:	56                   	push   %esi
41408c:	57                   	push   %edi
41408d:	8b 7d 0c             	mov    0xc(%ebp),%edi
414090:	8b f1                	mov    %ecx,%esi
414092:	3b fb                	cmp    %ebx,%edi
414094:	74 10                	je     0x4140a6
414096:	c6 86 4a 4c 00 00 01 	movb   $0x1,0x4c4a(%esi)
41409d:	73 07                	jae    0x4140a6
41409f:	c6 86 49 4c 00 00 01 	movb   $0x1,0x4c49(%esi)
4140a6:	80 be 38 4c 00 00 00 	cmpb   $0x0,0x4c38(%esi)
4140ad:	74 46                	je     0x4140f5
4140af:	2b fb                	sub    %ebx,%edi
4140b1:	23 be f8 e6 00 00    	and    0xe6f8(%esi),%edi
4140b7:	89 7d 0c             	mov    %edi,0xc(%ebp)
4140ba:	76 70                	jbe    0x41412c
4140bc:	ff 75 0c             	push   0xc(%ebp)
4140bf:	8d 8e 38 4b 00 00    	lea    0x4b38(%esi),%ecx
4140c5:	53                   	push   %ebx
4140c6:	e8 14 e2 ff ff       	call   0x4122df
4140cb:	8b f8                	mov    %eax,%edi
4140cd:	57                   	push   %edi
4140ce:	53                   	push   %ebx
4140cf:	8d 8e 38 4b 00 00    	lea    0x4b38(%esi),%ecx
4140d5:	e8 5c e1 ff ff       	call   0x412236
4140da:	50                   	push   %eax
4140db:	8b ce                	mov    %esi,%ecx
4140dd:	e8 e6 df ff ff       	call   0x4120c8
4140e2:	29 7d 0c             	sub    %edi,0xc(%ebp)
4140e5:	03 df                	add    %edi,%ebx
4140e7:	23 9e f8 e6 00 00    	and    0xe6f8(%esi),%ebx
4140ed:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
4140f1:	77 c9                	ja     0x4140bc
4140f3:	eb 37                	jmp    0x41412c
4140f5:	3b fb                	cmp    %ebx,%edi
4140f7:	73 22                	jae    0x41411b
4140f9:	8b 86 f4 e6 00 00    	mov    0xe6f4(%esi),%eax
4140ff:	2b c3                	sub    %ebx,%eax
414101:	50                   	push   %eax
414102:	8b 86 34 4b 00 00    	mov    0x4b34(%esi),%eax
414108:	03 c3                	add    %ebx,%eax
41410a:	50                   	push   %eax
41410b:	e8 b8 df ff ff       	call   0x4120c8
414110:	57                   	push   %edi
414111:	ff b6 34 4b 00 00    	push   0x4b34(%esi)
414117:	8b ce                	mov    %esi,%ecx
414119:	eb 0c                	jmp    0x414127
41411b:	8b 86 34 4b 00 00    	mov    0x4b34(%esi),%eax
414121:	2b fb                	sub    %ebx,%edi
414123:	57                   	push   %edi
414124:	03 c3                	add    %ebx,%eax
414126:	50                   	push   %eax
414127:	e8 9c df ff ff       	call   0x4120c8
41412c:	5f                   	pop    %edi
41412d:	5e                   	pop    %esi
41412e:	5b                   	pop    %ebx
41412f:	5d                   	pop    %ebp
414130:	c2 08 00             	ret    $0x8
414133:	55                   	push   %ebp
414134:	8b ec                	mov    %esp,%ebp
414136:	83 ec 0c             	sub    $0xc,%esp
414139:	56                   	push   %esi
41413a:	8b 75 08             	mov    0x8(%ebp),%esi
41413d:	57                   	push   %edi
41413e:	8b 7d 0c             	mov    0xc(%ebp),%edi
414141:	83 67 0c 00          	andl   $0x0,0xc(%edi)
414145:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
414149:	89 4d f4             	mov    %ecx,-0xc(%ebp)
41414c:	75 17                	jne    0x414165
41414e:	8b 41 78             	mov    0x78(%ecx),%eax
414151:	83 e8 07             	sub    $0x7,%eax
414154:	39 06                	cmp    %eax,(%esi)
414156:	7e 0d                	jle    0x414165
414158:	e8 b2 de ff ff       	call   0x41200f
41415d:	84 c0                	test   %al,%al
41415f:	0f 84 e4 00 00 00    	je     0x414249
414165:	8b 46 04             	mov    0x4(%esi),%eax
414168:	f7 d8                	neg    %eax
41416a:	53                   	push   %ebx
41416b:	83 e0 07             	and    $0x7,%eax
41416e:	50                   	push   %eax
41416f:	8b ce                	mov    %esi,%ecx
414171:	e8 c2 55 ff ff       	call   0x409738
414176:	8b ce                	mov    %esi,%ecx
414178:	e8 d2 55 ff ff       	call   0x40974f
41417d:	8b d8                	mov    %eax,%ebx
41417f:	c1 eb 08             	shr    $0x8,%ebx
414182:	6a 08                	push   $0x8
414184:	8b ce                	mov    %esi,%ecx
414186:	88 5d 0f             	mov    %bl,0xf(%ebp)
414189:	e8 aa 55 ff ff       	call   0x409738
41418e:	0f b6 c3             	movzbl %bl,%eax
414191:	8b d8                	mov    %eax,%ebx
414193:	c1 eb 03             	shr    $0x3,%ebx
414196:	83 e3 03             	and    $0x3,%ebx
414199:	43                   	inc    %ebx
41419a:	83 fb 04             	cmp    $0x4,%ebx
41419d:	74 7b                	je     0x41421a
41419f:	8d 4b 02             	lea    0x2(%ebx),%ecx
4141a2:	83 e0 07             	and    $0x7,%eax
4141a5:	89 4f 0c             	mov    %ecx,0xc(%edi)
4141a8:	40                   	inc    %eax
4141a9:	8b ce                	mov    %esi,%ecx
4141ab:	89 47 04             	mov    %eax,0x4(%edi)
4141ae:	e8 9c 55 ff ff       	call   0x40974f
4141b3:	c1 e8 08             	shr    $0x8,%eax
4141b6:	6a 08                	push   $0x8
4141b8:	8b ce                	mov    %esi,%ecx
4141ba:	88 45 0b             	mov    %al,0xb(%ebp)
4141bd:	e8 76 55 ff ff       	call   0x409738
4141c2:	33 c0                	xor    %eax,%eax
4141c4:	89 45 f8             	mov    %eax,-0x8(%ebp)
4141c7:	3b d8                	cmp    %eax,%ebx
4141c9:	76 32                	jbe    0x4141fd
4141cb:	89 45 fc             	mov    %eax,-0x4(%ebp)
4141ce:	8b ce                	mov    %esi,%ecx
4141d0:	e8 7a 55 ff ff       	call   0x40974f
4141d5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4141d8:	83 45 fc 08          	addl   $0x8,-0x4(%ebp)
4141dc:	c1 e8 08             	shr    $0x8,%eax
4141df:	d3 e0                	shl    %cl,%eax
4141e1:	01 45 f8             	add    %eax,-0x8(%ebp)
4141e4:	8b 46 04             	mov    0x4(%esi),%eax
4141e7:	83 c0 08             	add    $0x8,%eax
4141ea:	8b c8                	mov    %eax,%ecx
4141ec:	c1 e9 03             	shr    $0x3,%ecx
4141ef:	01 0e                	add    %ecx,(%esi)
4141f1:	83 e0 07             	and    $0x7,%eax
4141f4:	4b                   	dec    %ebx
4141f5:	89 46 04             	mov    %eax,0x4(%esi)
4141f8:	75 d4                	jne    0x4141ce
4141fa:	8b 45 f8             	mov    -0x8(%ebp),%eax
4141fd:	8b d0                	mov    %eax,%edx
4141ff:	c1 fa 10             	sar    $0x10,%edx
414202:	8b c8                	mov    %eax,%ecx
414204:	c1 f9 08             	sar    $0x8,%ecx
414207:	32 d1                	xor    %cl,%dl
414209:	8a 4d 0f             	mov    0xf(%ebp),%cl
41420c:	32 d0                	xor    %al,%dl
41420e:	32 d1                	xor    %cl,%dl
414210:	80 f2 5a             	xor    $0x5a,%dl
414213:	89 07                	mov    %eax,(%edi)
414215:	3a 55 0b             	cmp    0xb(%ebp),%dl
414218:	74 04                	je     0x41421e
41421a:	32 c0                	xor    %al,%al
41421c:	eb 2a                	jmp    0x414248
41421e:	8b 36                	mov    (%esi),%esi
414220:	8d 54 06 ff          	lea    -0x1(%esi,%eax,1),%edx
414224:	8b 45 f4             	mov    -0xc(%ebp),%eax
414227:	89 77 08             	mov    %esi,0x8(%edi)
41422a:	8b 70 7c             	mov    0x7c(%eax),%esi
41422d:	3b f2                	cmp    %edx,%esi
41422f:	7d 02                	jge    0x414233
414231:	8b d6                	mov    %esi,%edx
414233:	89 50 7c             	mov    %edx,0x7c(%eax)
414236:	8a d1                	mov    %cl,%dl
414238:	c0 ea 06             	shr    $0x6,%dl
41423b:	b0 01                	mov    $0x1,%al
41423d:	22 d0                	and    %al,%dl
41423f:	c0 e9 07             	shr    $0x7,%cl
414242:	88 57 10             	mov    %dl,0x10(%edi)
414245:	88 4f 11             	mov    %cl,0x11(%edi)
414248:	5b                   	pop    %ebx
414249:	5f                   	pop    %edi
41424a:	5e                   	pop    %esi
41424b:	c9                   	leave
41424c:	c2 08 00             	ret    $0x8
41424f:	55                   	push   %ebp
414250:	8b ec                	mov    %esp,%ebp
414252:	81 ec c8 01 00 00    	sub    $0x1c8,%esp
414258:	8b 45 0c             	mov    0xc(%ebp),%eax
41425b:	80 78 11 00          	cmpb   $0x0,0x11(%eax)
41425f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
414262:	75 07                	jne    0x41426b
414264:	b0 01                	mov    $0x1,%al
414266:	e9 92 02 00 00       	jmp    0x4144fd
41426b:	56                   	push   %esi
41426c:	8b 75 08             	mov    0x8(%ebp),%esi
41426f:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
414273:	75 17                	jne    0x41428c
414275:	8b 41 78             	mov    0x78(%ecx),%eax
414278:	83 e8 19             	sub    $0x19,%eax
41427b:	39 06                	cmp    %eax,(%esi)
41427d:	7e 0d                	jle    0x41428c
41427f:	e8 8b dd ff ff       	call   0x41200f
414284:	84 c0                	test   %al,%al
414286:	0f 84 70 02 00 00    	je     0x4144fc
41428c:	83 65 0c 00          	andl   $0x0,0xc(%ebp)
414290:	53                   	push   %ebx
414291:	57                   	push   %edi
414292:	8b ce                	mov    %esi,%ecx
414294:	e8 b6 54 ff ff       	call   0x40974f
414299:	c1 e8 0c             	shr    $0xc,%eax
41429c:	6a 04                	push   $0x4
41429e:	8b ce                	mov    %esi,%ecx
4142a0:	0f b6 d8             	movzbl %al,%ebx
4142a3:	e8 90 54 ff ff       	call   0x409738
4142a8:	83 fb 0f             	cmp    $0xf,%ebx
4142ab:	75 42                	jne    0x4142ef
4142ad:	8b ce                	mov    %esi,%ecx
4142af:	e8 9b 54 ff ff       	call   0x40974f
4142b4:	c1 e8 0c             	shr    $0xc,%eax
4142b7:	6a 04                	push   $0x4
4142b9:	8b ce                	mov    %esi,%ecx
4142bb:	0f b6 f8             	movzbl %al,%edi
4142be:	e8 75 54 ff ff       	call   0x409738
4142c3:	85 ff                	test   %edi,%edi
4142c5:	75 09                	jne    0x4142d0
4142c7:	8b 45 0c             	mov    0xc(%ebp),%eax
4142ca:	88 5c 05 e8          	mov    %bl,-0x18(%ebp,%eax,1)
4142ce:	eb 26                	jmp    0x4142f6
4142d0:	47                   	inc    %edi
4142d1:	47                   	inc    %edi
4142d2:	eb 12                	jmp    0x4142e6
4142d4:	4f                   	dec    %edi
4142d5:	83 7d 0c 14          	cmpl   $0x14,0xc(%ebp)
4142d9:	73 0f                	jae    0x4142ea
4142db:	8b 45 0c             	mov    0xc(%ebp),%eax
4142de:	ff 45 0c             	incl   0xc(%ebp)
4142e1:	c6 44 05 e8 00       	movb   $0x0,-0x18(%ebp,%eax,1)
4142e6:	85 ff                	test   %edi,%edi
4142e8:	7f ea                	jg     0x4142d4
4142ea:	ff 4d 0c             	decl   0xc(%ebp)
4142ed:	eb 07                	jmp    0x4142f6
4142ef:	8b 45 0c             	mov    0xc(%ebp),%eax
4142f2:	88 5c 05 e8          	mov    %bl,-0x18(%ebp,%eax,1)
4142f6:	ff 45 0c             	incl   0xc(%ebp)
4142f9:	83 7d 0c 14          	cmpl   $0x14,0xc(%ebp)
4142fd:	72 93                	jb     0x414292
4142ff:	8b 7d 10             	mov    0x10(%ebp),%edi
414302:	8b 4d fc             	mov    -0x4(%ebp),%ecx
414305:	6a 14                	push   $0x14
414307:	81 c7 b0 3b 00 00    	add    $0x3bb0,%edi
41430d:	57                   	push   %edi
41430e:	8d 45 e8             	lea    -0x18(%ebp),%eax
414311:	50                   	push   %eax
414312:	e8 58 e1 ff ff       	call   0x41246f
414317:	83 65 0c 00          	andl   $0x0,0xc(%ebp)
41431b:	80 7e 08 00          	cmpb   $0x0,0x8(%esi)
41431f:	75 1a                	jne    0x41433b
414321:	8b 4d fc             	mov    -0x4(%ebp),%ecx
414324:	8b 41 78             	mov    0x78(%ecx),%eax
414327:	83 e8 05             	sub    $0x5,%eax
41432a:	39 06                	cmp    %eax,(%esi)
41432c:	7e 0d                	jle    0x41433b
41432e:	e8 dc dc ff ff       	call   0x41200f
414333:	84 c0                	test   %al,%al
414335:	0f 84 63 01 00 00    	je     0x41449e
41433b:	8b ce                	mov    %esi,%ecx
41433d:	e8 c8 53 ff ff       	call   0x40970a
414342:	8b 9f 84 00 00 00    	mov    0x84(%edi),%ebx
414348:	25 fe ff 00 00       	and    $0xfffe,%eax
41434d:	3b 44 9f 04          	cmp    0x4(%edi,%ebx,4),%eax
414351:	73 29                	jae    0x41437c
414353:	6a 10                	push   $0x10
414355:	59                   	pop    %ecx
414356:	2b cb                	sub    %ebx,%ecx
414358:	d3 e8                	shr    %cl,%eax
41435a:	0f b6 8c 38 88 00 00 	movzbl 0x88(%eax,%edi,1),%ecx
414361:	00
414362:	03 4e 04             	add    0x4(%esi),%ecx
414365:	8b d1                	mov    %ecx,%edx
414367:	c1 ea 03             	shr    $0x3,%edx
41436a:	01 16                	add    %edx,(%esi)
41436c:	83 e1 07             	and    $0x7,%ecx
41436f:	89 4e 04             	mov    %ecx,0x4(%esi)
414372:	0f b7 84 47 88 04 00 	movzwl 0x488(%edi,%eax,2),%eax
414379:	00
41437a:	eb 4b                	jmp    0x4143c7
41437c:	6a 0f                	push   $0xf
41437e:	5a                   	pop    %edx
41437f:	43                   	inc    %ebx
414380:	3b da                	cmp    %edx,%ebx
414382:	73 15                	jae    0x414399
414384:	8d 4c 9f 04          	lea    0x4(%edi,%ebx,4),%ecx
414388:	3b 01                	cmp    (%ecx),%eax
41438a:	72 0b                	jb     0x414397
41438c:	43                   	inc    %ebx
41438d:	83 c1 04             	add    $0x4,%ecx
414390:	83 fb 0f             	cmp    $0xf,%ebx
414393:	72 f3                	jb     0x414388
414395:	eb 02                	jmp    0x414399
414397:	8b d3                	mov    %ebx,%edx
414399:	8b 4e 04             	mov    0x4(%esi),%ecx
41439c:	03 ca                	add    %edx,%ecx
41439e:	8b d9                	mov    %ecx,%ebx
4143a0:	83 e1 07             	and    $0x7,%ecx
4143a3:	89 4e 04             	mov    %ecx,0x4(%esi)
4143a6:	c1 eb 03             	shr    $0x3,%ebx
4143a9:	01 1e                	add    %ebx,(%esi)
4143ab:	2b 04 97             	sub    (%edi,%edx,4),%eax
4143ae:	6a 10                	push   $0x10
4143b0:	59                   	pop    %ecx
4143b1:	2b ca                	sub    %edx,%ecx
4143b3:	d3 e8                	shr    %cl,%eax
4143b5:	03 44 97 44          	add    0x44(%edi,%edx,4),%eax
4143b9:	3b 07                	cmp    (%edi),%eax
4143bb:	72 02                	jb     0x4143bf
4143bd:	33 c0                	xor    %eax,%eax
4143bf:	0f b7 84 47 88 0c 00 	movzwl 0xc88(%edi,%eax,2),%eax
4143c6:	00
4143c7:	83 f8 10             	cmp    $0x10,%eax
4143ca:	7d 12                	jge    0x4143de