412121:	8b 7d f0             	mov    -0x10(%ebp),%edi
412124:	8b 4d e8             	mov    -0x18(%ebp),%ecx
412127:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
412129:	8b 45 08             	mov    0x8(%ebp),%eax
41212c:	eb 53                	jmp    0x412181
41212e:	3b cf                	cmp    %edi,%ecx
412130:	75 35                	jne    0x412167
412132:	f7 d9                	neg    %ecx
412134:	83 c1 10             	add    $0x10,%ecx
412137:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
41213a:	8b 75 0c             	mov    0xc(%ebp),%esi
41213d:	8b 7d 08             	mov    0x8(%ebp),%edi
412140:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
412143:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
412145:	8b 4d 08             	mov    0x8(%ebp),%ecx
412148:	03 4d e4             	add    -0x1c(%ebp),%ecx
41214b:	8b 55 0c             	mov    0xc(%ebp),%edx
41214e:	03 55 e4             	add    -0x1c(%ebp),%edx
412151:	8b 45 10             	mov    0x10(%ebp),%eax
412154:	2b 45 e4             	sub    -0x1c(%ebp),%eax
412157:	50                   	push   %eax
412158:	52                   	push   %edx
412159:	51                   	push   %ecx
41215a:	e8 4c ff ff ff       	call   0x4120ab
41215f:	83 c4 0c             	add    $0xc,%esp
412162:	8b 45 08             	mov    0x8(%ebp),%eax
412165:	eb 1a                	jmp    0x412181
412167:	8b 75 0c             	mov    0xc(%ebp),%esi
41216a:	8b 7d 08             	mov    0x8(%ebp),%edi
41216d:	8b 4d 10             	mov    0x10(%ebp),%ecx
412170:	8b d1                	mov    %ecx,%edx
412172:	c1 e9 02             	shr    $0x2,%ecx
412175:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
412177:	8b ca                	mov    %edx,%ecx
412179:	83 e1 03             	and    $0x3,%ecx
41217c:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
41217e:	8b 45 08             	mov    0x8(%ebp),%eax
412181:	8b 5d fc             	mov    -0x4(%ebp),%ebx
412184:	8b 75 f8             	mov    -0x8(%ebp),%esi
412187:	8b 7d f4             	mov    -0xc(%ebp),%edi
41218a:	8b e5                	mov    %ebp,%esp
41218c:	5d                   	pop    %ebp
41218d:	c3                   	ret
41218e:	8b ff                	mov    %edi,%edi
412190:	55                   	push   %ebp
412191:	8b ec                	mov    %esp,%ebp
412193:	51                   	push   %ecx
412194:	51                   	push   %ecx
412195:	8b 45 0c             	mov    0xc(%ebp),%eax
412198:	56                   	push   %esi
412199:	8b 75 08             	mov    0x8(%ebp),%esi
41219c:	89 45 f8             	mov    %eax,-0x8(%ebp)
41219f:	8b 45 10             	mov    0x10(%ebp),%eax
4121a2:	57                   	push   %edi
4121a3:	56                   	push   %esi
4121a4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4121a7:	e8 15 30 00 00       	call   0x4151c1
4121ac:	83 cf ff             	or     $0xffffffff,%edi
4121af:	59                   	pop    %ecx
4121b0:	3b c7                	cmp    %edi,%eax
4121b2:	75 11                	jne    0x4121c5
4121b4:	e8 1c 39 ff ff       	call   0x405ad5
4121b9:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4121bf:	8b c7                	mov    %edi,%eax
4121c1:	8b d7                	mov    %edi,%edx
4121c3:	eb 4a                	jmp    0x41220f
4121c5:	ff 75 14             	push   0x14(%ebp)
4121c8:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4121cb:	51                   	push   %ecx
4121cc:	ff 75 f8             	push   -0x8(%ebp)
4121cf:	50                   	push   %eax
4121d0:	ff 15 10 a1 41 00    	call   *0x41a110
4121d6:	89 45 f8             	mov    %eax,-0x8(%ebp)
4121d9:	3b c7                	cmp    %edi,%eax
4121db:	75 13                	jne    0x4121f0
4121dd:	ff 15 98 a0 41 00    	call   *0x41a098
4121e3:	85 c0                	test   %eax,%eax
4121e5:	74 09                	je     0x4121f0
4121e7:	50                   	push   %eax
4121e8:	e8 0e 39 ff ff       	call   0x405afb
4121ed:	59                   	pop    %ecx
4121ee:	eb cf                	jmp    0x4121bf
4121f0:	8b c6                	mov    %esi,%eax
4121f2:	c1 f8 05             	sar    $0x5,%eax
4121f5:	8b 04 85 60 12 c7 00 	mov    0xc71260(,%eax,4),%eax
4121fc:	83 e6 1f             	and    $0x1f,%esi
4121ff:	c1 e6 06             	shl    $0x6,%esi
412202:	8d 44 30 04          	lea    0x4(%eax,%esi,1),%eax
412206:	80 20 fd             	andb   $0xfd,(%eax)
412209:	8b 45 f8             	mov    -0x8(%ebp),%eax
41220c:	8b 55 fc             	mov    -0x4(%ebp),%edx
41220f:	5f                   	pop    %edi
412210:	5e                   	pop    %esi
412211:	c9                   	leave
412212:	c3                   	ret
412213:	6a 14                	push   $0x14
412215:	68 f0 99 42 00       	push   $0x4299f0
41221a:	e8 bd 81 ff ff       	call   0x40a3dc
41221f:	83 ce ff             	or     $0xffffffff,%esi
412222:	89 75 dc             	mov    %esi,-0x24(%ebp)
412225:	89 75 e0             	mov    %esi,-0x20(%ebp)
412228:	8b 45 08             	mov    0x8(%ebp),%eax
41222b:	83 f8 fe             	cmp    $0xfffffffe,%eax
41222e:	75 1c                	jne    0x41224c
412230:	e8 b3 38 ff ff       	call   0x405ae8
412235:	83 20 00             	andl   $0x0,(%eax)
412238:	e8 98 38 ff ff       	call   0x405ad5
41223d:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
412243:	8b c6                	mov    %esi,%eax
412245:	8b d6                	mov    %esi,%edx
412247:	e9 d0 00 00 00       	jmp    0x41231c
41224c:	33 ff                	xor    %edi,%edi
41224e:	3b c7                	cmp    %edi,%eax
412250:	7c 08                	jl     0x41225a
412252:	3b 05 44 12 c7 00    	cmp    0xc71244,%eax
412258:	72 21                	jb     0x41227b
41225a:	e8 89 38 ff ff       	call   0x405ae8
41225f:	89 38                	mov    %edi,(%eax)
412261:	e8 6f 38 ff ff       	call   0x405ad5
412266:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
41226c:	57                   	push   %edi
41226d:	57                   	push   %edi
41226e:	57                   	push   %edi
41226f:	57                   	push   %edi
412270:	57                   	push   %edi
412271:	e8 af 2f ff ff       	call   0x405225
412276:	83 c4 14             	add    $0x14,%esp
412279:	eb c8                	jmp    0x412243
41227b:	8b c8                	mov    %eax,%ecx
41227d:	c1 f9 05             	sar    $0x5,%ecx
412280:	8d 1c 8d 60 12 c7 00 	lea    0xc71260(,%ecx,4),%ebx
412287:	8b f0                	mov    %eax,%esi
412289:	83 e6 1f             	and    $0x1f,%esi
41228c:	c1 e6 06             	shl    $0x6,%esi
41228f:	8b 0b                	mov    (%ebx),%ecx
412291:	0f be 4c 31 04       	movsbl 0x4(%ecx,%esi,1),%ecx
412296:	83 e1 01             	and    $0x1,%ecx
412299:	75 26                	jne    0x4122c1
41229b:	e8 48 38 ff ff       	call   0x405ae8
4122a0:	89 38                	mov    %edi,(%eax)
4122a2:	e8 2e 38 ff ff       	call   0x405ad5
4122a7:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4122ad:	57                   	push   %edi
4122ae:	57                   	push   %edi
4122af:	57                   	push   %edi
4122b0:	57                   	push   %edi
4122b1:	57                   	push   %edi
4122b2:	e8 6e 2f ff ff       	call   0x405225
4122b7:	83 c4 14             	add    $0x14,%esp
4122ba:	83 ca ff             	or     $0xffffffff,%edx
4122bd:	8b c2                	mov    %edx,%eax
4122bf:	eb 5b                	jmp    0x41231c
4122c1:	50                   	push   %eax
4122c2:	e8 71 2f 00 00       	call   0x415238
4122c7:	59                   	pop    %ecx
4122c8:	89 7d fc             	mov    %edi,-0x4(%ebp)
4122cb:	8b 03                	mov    (%ebx),%eax
4122cd:	f6 44 30 04 01       	testb  $0x1,0x4(%eax,%esi,1)
4122d2:	74 1c                	je     0x4122f0
4122d4:	ff 75 14             	push   0x14(%ebp)
4122d7:	ff 75 10             	push   0x10(%ebp)
4122da:	ff 75 0c             	push   0xc(%ebp)
4122dd:	ff 75 08             	push   0x8(%ebp)
4122e0:	e8 a9 fe ff ff       	call   0x41218e
4122e5:	83 c4 10             	add    $0x10,%esp
4122e8:	89 45 dc             	mov    %eax,-0x24(%ebp)
4122eb:	89 55 e0             	mov    %edx,-0x20(%ebp)
4122ee:	eb 1a                	jmp    0x41230a
4122f0:	e8 e0 37 ff ff       	call   0x405ad5
4122f5:	c7 00 09 00 00 00    	movl   $0x9,(%eax)
4122fb:	e8 e8 37 ff ff       	call   0x405ae8
412300:	89 38                	mov    %edi,(%eax)
412302:	83 4d dc ff          	orl    $0xffffffff,-0x24(%ebp)
412306:	83 4d e0 ff          	orl    $0xffffffff,-0x20(%ebp)
41230a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
412311:	e8 0c 00 00 00       	call   0x412322
412316:	8b 45 dc             	mov    -0x24(%ebp),%eax
412319:	8b 55 e0             	mov    -0x20(%ebp),%edx
41231c:	e8 00 81 ff ff       	call   0x40a421
412321:	c3                   	ret
412322:	ff 75 08             	push   0x8(%ebp)
412325:	e8 ae 2f 00 00       	call   0x4152d8
41232a:	59                   	pop    %ecx
41232b:	c3                   	ret
41232c:	8b ff                	mov    %edi,%edi
41232e:	55                   	push   %ebp
41232f:	8b ec                	mov    %esp,%ebp
412331:	b8 e4 1a 00 00       	mov    $0x1ae4,%eax
412336:	e8 f5 38 00 00       	call   0x415c30
41233b:	a1 68 b2 42 00       	mov    0x42b268,%eax
412340:	33 c5                	xor    %ebp,%eax
412342:	89 45 fc             	mov    %eax,-0x4(%ebp)
412345:	8b 45 0c             	mov    0xc(%ebp),%eax
412348:	56                   	push   %esi
412349:	33 f6                	xor    %esi,%esi
41234b:	89 85 34 e5 ff ff    	mov    %eax,-0x1acc(%ebp)
412351:	89 b5 38 e5 ff ff    	mov    %esi,-0x1ac8(%ebp)
412357:	89 b5 30 e5 ff ff    	mov    %esi,-0x1ad0(%ebp)
41235d:	39 75 10             	cmp    %esi,0x10(%ebp)
412360:	75 07                	jne    0x412369
412362:	33 c0                	xor    %eax,%eax
412364:	e9 e9 06 00 00       	jmp    0x412a52
412369:	3b c6                	cmp    %esi,%eax
41236b:	75 27                	jne    0x412394
41236d:	e8 76 37 ff ff       	call   0x405ae8
412372:	89 30                	mov    %esi,(%eax)
412374:	e8 5c 37 ff ff       	call   0x405ad5
412379:	56                   	push   %esi
41237a:	56                   	push   %esi
41237b:	56                   	push   %esi
41237c:	56                   	push   %esi
41237d:	56                   	push   %esi
41237e:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
412384:	e8 9c 2e ff ff       	call   0x405225
412389:	83 c4 14             	add    $0x14,%esp
41238c:	83 c8 ff             	or     $0xffffffff,%eax
41238f:	e9 be 06 00 00       	jmp    0x412a52
412394:	53                   	push   %ebx
412395:	57                   	push   %edi
412396:	8b 7d 08             	mov    0x8(%ebp),%edi
412399:	8b c7                	mov    %edi,%eax
41239b:	c1 f8 05             	sar    $0x5,%eax
41239e:	8d 34 85 60 12 c7 00 	lea    0xc71260(,%eax,4),%esi
4123a5:	8b 06                	mov    (%esi),%eax
4123a7:	83 e7 1f             	and    $0x1f,%edi
4123aa:	c1 e7 06             	shl    $0x6,%edi
4123ad:	03 c7                	add    %edi,%eax
4123af:	8a 58 24             	mov    0x24(%eax),%bl
4123b2:	02 db                	add    %bl,%bl
4123b4:	d0 fb                	sar    $1,%bl
4123b6:	89 b5 28 e5 ff ff    	mov    %esi,-0x1ad8(%ebp)
4123bc:	88 9d 27 e5 ff ff    	mov    %bl,-0x1ad9(%ebp)
4123c2:	80 fb 02             	cmp    $0x2,%bl
4123c5:	74 05                	je     0x4123cc
4123c7:	80 fb 01             	cmp    $0x1,%bl
4123ca:	75 30                	jne    0x4123fc
4123cc:	8b 4d 10             	mov    0x10(%ebp),%ecx
4123cf:	f7 d1                	not    %ecx
4123d1:	f6 c1 01             	test   $0x1,%cl
4123d4:	75 26                	jne    0x4123fc
4123d6:	e8 0d 37 ff ff       	call   0x405ae8
4123db:	33 f6                	xor    %esi,%esi
4123dd:	89 30                	mov    %esi,(%eax)
4123df:	e8 f1 36 ff ff       	call   0x405ad5
4123e4:	56                   	push   %esi
4123e5:	56                   	push   %esi
4123e6:	56                   	push   %esi
4123e7:	56                   	push   %esi
4123e8:	56                   	push   %esi
4123e9:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4123ef:	e8 31 2e ff ff       	call   0x405225
4123f4:	83 c4 14             	add    $0x14,%esp
4123f7:	e9 43 06 00 00       	jmp    0x412a3f
4123fc:	f6 40 04 20          	testb  $0x20,0x4(%eax)
412400:	74 11                	je     0x412413
412402:	6a 02                	push   $0x2
412404:	6a 00                	push   $0x0
412406:	6a 00                	push   $0x0
412408:	ff 75 08             	push   0x8(%ebp)
41240b:	e8 7e fd ff ff       	call   0x41218e
412410:	83 c4 10             	add    $0x10,%esp
412413:	ff 75 08             	push   0x8(%ebp)
412416:	e8 69 07 00 00       	call   0x412b84
41241b:	59                   	pop    %ecx
41241c:	85 c0                	test   %eax,%eax
41241e:	0f 84 9d 02 00 00    	je     0x4126c1
412424:	8b 06                	mov    (%esi),%eax
412426:	f6 44 07 04 80       	testb  $0x80,0x4(%edi,%eax,1)
41242b:	0f 84 90 02 00 00    	je     0x4126c1
412431:	e8 0b 86 ff ff       	call   0x40aa41
412436:	8b 40 6c             	mov    0x6c(%eax),%eax
412439:	33 c9                	xor    %ecx,%ecx
41243b:	39 48 14             	cmp    %ecx,0x14(%eax)
41243e:	8d 85 1c e5 ff ff    	lea    -0x1ae4(%ebp),%eax
412444:	0f 94 c1             	sete   %cl
412447:	50                   	push   %eax
412448:	8b 06                	mov    (%esi),%eax
41244a:	ff 34 07             	push   (%edi,%eax,1)
41244d:	89 8d 20 e5 ff ff    	mov    %ecx,-0x1ae0(%ebp)
412453:	ff 15 5c a1 41 00    	call   *0x41a15c
412459:	85 c0                	test   %eax,%eax
41245b:	0f 84 60 02 00 00    	je     0x4126c1
412461:	33 c9                	xor    %ecx,%ecx
412463:	39 8d 20 e5 ff ff    	cmp    %ecx,-0x1ae0(%ebp)
412469:	74 08                	je     0x412473
41246b:	84 db                	test   %bl,%bl
41246d:	0f 84 50 02 00 00    	je     0x4126c3
412473:	ff 15 24 a0 41 00    	call   *0x41a024
412479:	8b 9d 34 e5 ff ff    	mov    -0x1acc(%ebp),%ebx
41247f:	89 85 1c e5 ff ff    	mov    %eax,-0x1ae4(%ebp)
412485:	33 c0                	xor    %eax,%eax
412487:	89 85 3c e5 ff ff    	mov    %eax,-0x1ac4(%ebp)
41248d:	39 45 10             	cmp    %eax,0x10(%ebp)
412490:	0f 86 42 05 00 00    	jbe    0x4129d8
412496:	89 85 44 e5 ff ff    	mov    %eax,-0x1abc(%ebp)
41249c:	8a 85 27 e5 ff ff    	mov    -0x1ad9(%ebp),%al
4124a2:	84 c0                	test   %al,%al
4124a4:	0f 85 67 01 00 00    	jne    0x412611
4124aa:	8a 0b                	mov    (%ebx),%cl
4124ac:	8b b5 28 e5 ff ff    	mov    -0x1ad8(%ebp),%esi
4124b2:	33 c0                	xor    %eax,%eax
4124b4:	80 f9 0a             	cmp    $0xa,%cl
4124b7:	0f 94 c0             	sete   %al
4124ba:	89 85 20 e5 ff ff    	mov    %eax,-0x1ae0(%ebp)
4124c0:	8b 06                	mov    (%esi),%eax
4124c2:	03 c7                	add    %edi,%eax
4124c4:	83 78 38 00          	cmpl   $0x0,0x38(%eax)
4124c8:	74 15                	je     0x4124df
4124ca:	8a 50 34             	mov    0x34(%eax),%dl
4124cd:	88 55 f4             	mov    %dl,-0xc(%ebp)
4124d0:	88 4d f5             	mov    %cl,-0xb(%ebp)
4124d3:	83 60 38 00          	andl   $0x0,0x38(%eax)
4124d7:	6a 02                	push   $0x2
4124d9:	8d 45 f4             	lea    -0xc(%ebp),%eax
4124dc:	50                   	push   %eax
4124dd:	eb 4b                	jmp    0x41252a
4124df:	0f be c1             	movsbl %cl,%eax
4124e2:	50                   	push   %eax
4124e3:	e8 f8 08 00 00       	call   0x412de0
4124e8:	59                   	pop    %ecx
4124e9:	85 c0                	test   %eax,%eax
4124eb:	74 3a                	je     0x412527
4124ed:	8b 8d 34 e5 ff ff    	mov    -0x1acc(%ebp),%ecx
4124f3:	2b cb                	sub    %ebx,%ecx
4124f5:	03 4d 10             	add    0x10(%ebp),%ecx
4124f8:	33 c0                	xor    %eax,%eax
4124fa:	40                   	inc    %eax
4124fb:	3b c8                	cmp    %eax,%ecx
4124fd:	0f 86 a5 01 00 00    	jbe    0x4126a8
412503:	6a 02                	push   $0x2
412505:	8d 85 40 e5 ff ff    	lea    -0x1ac0(%ebp),%eax
41250b:	53                   	push   %ebx
41250c:	50                   	push   %eax
41250d:	e8 25 39 00 00       	call   0x415e37
412512:	83 c4 0c             	add    $0xc,%esp
412515:	83 f8 ff             	cmp    $0xffffffff,%eax
412518:	0f 84 b1 04 00 00    	je     0x4129cf
41251e:	43                   	inc    %ebx
41251f:	ff 85 44 e5 ff ff    	incl   -0x1abc(%ebp)
412525:	eb 1b                	jmp    0x412542
412527:	6a 01                	push   $0x1
412529:	53                   	push   %ebx
41252a:	8d 85 40 e5 ff ff    	lea    -0x1ac0(%ebp),%eax
412530:	50                   	push   %eax
412531:	e8 01 39 00 00       	call   0x415e37
412536:	83 c4 0c             	add    $0xc,%esp
412539:	83 f8 ff             	cmp    $0xffffffff,%eax
41253c:	0f 84 8d 04 00 00    	je     0x4129cf
412542:	33 c0                	xor    %eax,%eax
412544:	50                   	push   %eax