456170:	d2 e3                	shl    %cl,%bl
456172:	8b 4d f8             	mov    -0x8(%ebp),%ecx
456175:	c1 e8 03             	shr    $0x3,%eax
456178:	08 1c 08             	or     %bl,(%eax,%ecx,1)
45617b:	e9 51 a5 fc ff       	jmp    0x4206d1
456180:	33 c0                	xor    %eax,%eax
456182:	81 7d fc 50 43 52 45 	cmpl   $0x45524350,-0x4(%ebp)
456189:	0f 95 c0             	setne  %al
45618c:	48                   	dec    %eax
45618d:	83 e0 e7             	and    $0xffffffe7,%eax
456190:	83 c0 fc             	add    $0xfffffffc,%eax
456193:	e9 17 a7 fc ff       	jmp    0x4208af
456198:	8b 75 0c             	mov    0xc(%ebp),%esi
45619b:	85 d2                	test   %edx,%edx
45619d:	74 08                	je     0x4561a7
45619f:	8b 3a                	mov    (%edx),%edi
4561a1:	eb 04                	jmp    0x4561a7
4561a3:	0f b7 79 1a          	movzwl 0x1a(%ecx),%edi
4561a7:	89 3e                	mov    %edi,(%esi)
4561a9:	e9 ff a6 fc ff       	jmp    0x4208ad
4561ae:	8b 75 0c             	mov    0xc(%ebp),%esi
4561b1:	a8 10                	test   $0x10,%al
4561b3:	74 09                	je     0x4561be
4561b5:	0f b7 41 18          	movzwl 0x18(%ecx),%eax
4561b9:	e9 ed a6 fc ff       	jmp    0x4208ab
4561be:	c1 e8 08             	shr    $0x8,%eax
4561c1:	83 c8 fe             	or     $0xfffffffe,%eax
4561c4:	e9 e2 a6 fc ff       	jmp    0x4208ab
4561c9:	8b 75 0c             	mov    0xc(%ebp),%esi
4561cc:	a8 10                	test   $0x10,%al
4561ce:	74 d7                	je     0x4561a7
4561d0:	0f b7 79 18          	movzwl 0x18(%ecx),%edi
4561d4:	eb d1                	jmp    0x4561a7
4561d6:	8b 75 0c             	mov    0xc(%ebp),%esi
4561d9:	a8 10                	test   $0x10,%al
4561db:	74 08                	je     0x4561e5
4561dd:	33 c0                	xor    %eax,%eax
4561df:	40                   	inc    %eax
4561e0:	e9 c6 a6 fc ff       	jmp    0x4208ab
4561e5:	c1 e8 07             	shr    $0x7,%eax
4561e8:	83 e0 02             	and    $0x2,%eax
4561eb:	e9 bb a6 fc ff       	jmp    0x4208ab
4561f0:	8b 75 0c             	mov    0xc(%ebp),%esi
4561f3:	85 d2                	test   %edx,%edx
4561f5:	74 b0                	je     0x4561a7
4561f7:	f6 42 04 01          	testb  $0x1,0x4(%edx)
4561fb:	74 aa                	je     0x4561a7
4561fd:	8b 7b 04             	mov    0x4(%ebx),%edi
456200:	83 c7 08             	add    $0x8,%edi
456203:	eb a2                	jmp    0x4561a7
456205:	8b 75 0c             	mov    0xc(%ebp),%esi
456208:	85 d2                	test   %edx,%edx
45620a:	74 0e                	je     0x45621a
45620c:	f6 42 04 02          	testb  $0x2,0x4(%edx)
456210:	74 08                	je     0x45621a
456212:	8b 42 28             	mov    0x28(%edx),%eax
456215:	e9 91 a6 fc ff       	jmp    0x4208ab
45621a:	83 c8 ff             	or     $0xffffffff,%eax
45621d:	e9 89 a6 fc ff       	jmp    0x4208ab
456222:	8b 75 0c             	mov    0xc(%ebp),%esi
456225:	85 db                	test   %ebx,%ebx
456227:	0f 84 7a ff ff ff    	je     0x4561a7
45622d:	f6 03 40             	testb  $0x40,(%ebx)
456230:	0f 84 71 ff ff ff    	je     0x4561a7
456236:	39 7b 1c             	cmp    %edi,0x1c(%ebx)
456239:	0f 84 68 ff ff ff    	je     0x4561a7
45623f:	33 ff                	xor    %edi,%edi
456241:	47                   	inc    %edi
456242:	e9 60 ff ff ff       	jmp    0x4561a7
456247:	8b 75 0c             	mov    0xc(%ebp),%esi
45624a:	a8 40                	test   $0x40,%al
45624c:	74 cc                	je     0x45621a
45624e:	0f b7 41 1a          	movzwl 0x1a(%ecx),%eax
456252:	e9 54 a6 fc ff       	jmp    0x4208ab
456257:	8b 75 0c             	mov    0xc(%ebp),%esi
45625a:	a8 40                	test   $0x40,%al
45625c:	0f 84 45 ff ff ff    	je     0x4561a7
456262:	e9 3c ff ff ff       	jmp    0x4561a3
456267:	0f b6 c0             	movzbl %al,%eax
45626a:	c1 e8 06             	shr    $0x6,%eax
45626d:	83 e0 01             	and    $0x1,%eax
456270:	e9 33 a6 fc ff       	jmp    0x4208a8
456275:	8b 75 0c             	mov    0xc(%ebp),%esi
456278:	a9 00 20 00 00       	test   $0x2000,%eax
45627d:	74 08                	je     0x456287
45627f:	8b 41 10             	mov    0x10(%ecx),%eax
456282:	e9 24 a6 fc ff       	jmp    0x4208ab
456287:	6a df                	push   $0xffffffdf
456289:	58                   	pop    %eax
45628a:	e9 20 a6 fc ff       	jmp    0x4208af
45628f:	8b 75 0c             	mov    0xc(%ebp),%esi
456292:	a9 00 40 00 00       	test   $0x4000,%eax
456297:	74 ee                	je     0x456287
456299:	8b 41 14             	mov    0x14(%ecx),%eax
45629c:	e9 0a a6 fc ff       	jmp    0x4208ab
4562a1:	8b 46 08             	mov    0x8(%esi),%eax
4562a4:	85 c0                	test   %eax,%eax
4562a6:	0f 84 d3 a7 fc ff    	je     0x420a7f
4562ac:	c1 e0 02             	shl    $0x2,%eax
4562af:	50                   	push   %eax
4562b0:	ff 76 04             	push   0x4(%esi)
4562b3:	57                   	push   %edi
4562b4:	e8 c7 ad fc ff       	call   0x421080
4562b9:	ff 76 04             	push   0x4(%esi)
4562bc:	e8 ab ad fc ff       	call   0x42106c
4562c1:	83 c4 10             	add    $0x10,%esp
4562c4:	e9 b6 a7 fc ff       	jmp    0x420a7f
4562c9:	8b 46 04             	mov    0x4(%esi),%eax
4562cc:	ff 34 b8             	push   (%eax,%edi,4)
4562cf:	e8 98 ad fc ff       	call   0x42106c
4562d4:	59                   	pop    %ecx
4562d5:	8b 46 04             	mov    0x4(%esi),%eax
4562d8:	83 24 b8 00          	andl   $0x0,(%eax,%edi,4)
4562dc:	47                   	inc    %edi
4562dd:	3b 7e 08             	cmp    0x8(%esi),%edi
4562e0:	72 e7                	jb     0x4562c9
4562e2:	e9 8d a8 fc ff       	jmp    0x420b74
4562e7:	ff 15 40 f3 48 00    	call   *0x48f340
4562ed:	8b f0                	mov    %eax,%esi
4562ef:	85 f6                	test   %esi,%esi
4562f1:	0f 8e a0 a8 fc ff    	jle    0x420b97
4562f7:	0f b7 f6             	movzwl %si,%esi
4562fa:	81 ce 00 00 07 80    	or     $0x80070000,%esi
456300:	e9 92 a8 fc ff       	jmp    0x420b97
456305:	56                   	push   %esi
456306:	8b cf                	mov    %edi,%ecx
456308:	e8 d5 26 01 00       	call   0x4689e2
45630d:	50                   	push   %eax
45630e:	6a 01                	push   $0x1
456310:	e8 8a 26 01 00       	call   0x46899f
456315:	50                   	push   %eax
456316:	e8 78 e7 fc ff       	call   0x424a93
45631b:	83 c4 10             	add    $0x10,%esp
45631e:	8b f8                	mov    %eax,%edi
456320:	e9 24 a9 fc ff       	jmp    0x420c49
456325:	8b cf                	mov    %edi,%ecx
456327:	e8 6b 36 fb ff       	call   0x409997
45632c:	8b 47 08             	mov    0x8(%edi),%eax
45632f:	ff 30                	push   (%eax)
456331:	ff 15 48 f2 48 00    	call   *0x48f248
456337:	e9 02 a9 fc ff       	jmp    0x420c3e
45633c:	8b 0b                	mov    (%ebx),%ecx
45633e:	85 ff                	test   %edi,%edi
456340:	74 15                	je     0x456357
456342:	66 8b 01             	mov    (%ecx),%ax
456345:	66 3b 06             	cmp    (%esi),%ax
456348:	0f 85 f2 a9 fc ff    	jne    0x420d40
45634e:	83 c1 02             	add    $0x2,%ecx
456351:	83 c6 02             	add    $0x2,%esi
456354:	4f                   	dec    %edi
456355:	75 eb                	jne    0x456342
456357:	b0 01                	mov    $0x1,%al
456359:	e9 e4 a9 fc ff       	jmp    0x420d42
45635e:	8b 7e 08             	mov    0x8(%esi),%edi
456361:	85 ff                	test   %edi,%edi
456363:	0f 84 39 aa fc ff    	je     0x420da2
456369:	8d 4f 08             	lea    0x8(%edi),%ecx
45636c:	eb 02                	jmp    0x456370
45636e:	8b cf                	mov    %edi,%ecx
456370:	e8 ef f6 fa ff       	call   0x405a64
456375:	57                   	push   %edi
456376:	eb 16                	jmp    0x45638e
456378:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
45637c:	0f 84 20 aa fc ff    	je     0x420da2
456382:	ff 76 08             	push   0x8(%esi)
456385:	ff 15 5c f4 48 00    	call   *0x48f45c
45638b:	ff 76 08             	push   0x8(%esi)
45638e:	e8 d9 ac fc ff       	call   0x42106c
456393:	eb 14                	jmp    0x4563a9
456395:	8b 46 08             	mov    0x8(%esi),%eax
456398:	ff 70 04             	push   0x4(%eax)
45639b:	e8 cc ac fc ff       	call   0x42106c
4563a0:	ff 76 08             	push   0x8(%esi)
4563a3:	e8 c4 ac fc ff       	call   0x42106c
4563a8:	59                   	pop    %ecx
4563a9:	59                   	pop    %ecx
4563aa:	e9 f3 a9 fc ff       	jmp    0x420da2
4563af:	83 f8 0c             	cmp    $0xc,%eax
4563b2:	74 37                	je     0x4563eb
4563b4:	0f 8e e8 a9 fc ff    	jle    0x420da2
4563ba:	83 f8 0e             	cmp    $0xe,%eax
4563bd:	7e 1f                	jle    0x4563de
4563bf:	83 f8 0f             	cmp    $0xf,%eax
4563c2:	0f 85 da a9 fc ff    	jne    0x420da2
4563c8:	8b 4e 08             	mov    0x8(%esi),%ecx
4563cb:	85 c9                	test   %ecx,%ecx
4563cd:	0f 84 cf a9 fc ff    	je     0x420da2
4563d3:	51                   	push   %ecx
4563d4:	e8 2c 10 00 00       	call   0x457405
4563d9:	e9 c4 a9 fc ff       	jmp    0x420da2
4563de:	8b 7e 08             	mov    0x8(%esi),%edi
4563e1:	85 ff                	test   %edi,%edi
4563e3:	0f 84 b9 a9 fc ff    	je     0x420da2
4563e9:	eb 83                	jmp    0x45636e
4563eb:	8b 4e 08             	mov    0x8(%esi),%ecx
4563ee:	85 c9                	test   %ecx,%ecx
4563f0:	0f 84 ac a9 fc ff    	je     0x420da2
4563f6:	51                   	push   %ecx
4563f7:	e8 f4 0f 00 00       	call   0x4573f0
4563fc:	e9 a1 a9 fc ff       	jmp    0x420da2
456401:	55                   	push   %ebp
456402:	8b ec                	mov    %esp,%ebp
456404:	57                   	push   %edi
456405:	8b f9                	mov    %ecx,%edi
456407:	8b 4d 08             	mov    0x8(%ebp),%ecx
45640a:	e8 b8 13 fb ff       	call   0x4077c7
45640f:	8b 55 0c             	mov    0xc(%ebp),%edx
456412:	3b 57 04             	cmp    0x4(%edi),%edx
456415:	76 03                	jbe    0x45641a
456417:	8b 57 04             	mov    0x4(%edi),%edx
45641a:	8b 4d 10             	mov    0x10(%ebp),%ecx
45641d:	83 f9 ff             	cmp    $0xffffffff,%ecx
456420:	74 09                	je     0x45642b
456422:	8b 47 04             	mov    0x4(%edi),%eax
456425:	2b c2                	sub    %edx,%eax
456427:	3b c8                	cmp    %eax,%ecx
456429:	76 05                	jbe    0x456430
45642b:	8b 4f 04             	mov    0x4(%edi),%ecx
45642e:	2b ca                	sub    %edx,%ecx
456430:	51                   	push   %ecx
456431:	8b 4d 08             	mov    0x8(%ebp),%ecx
456434:	52                   	push   %edx
456435:	57                   	push   %edi
456436:	e8 70 15 fb ff       	call   0x4079ab
45643b:	8b 45 08             	mov    0x8(%ebp),%eax
45643e:	5f                   	pop    %edi
45643f:	5d                   	pop    %ebp
456440:	c2 0c 00             	ret    $0xc
456443:	56                   	push   %esi
456444:	6a 04                	push   $0x4
456446:	8b f1                	mov    %ecx,%esi
456448:	e8 a9 ab fc ff       	call   0x420ff6
45644d:	59                   	pop    %ecx
45644e:	85 c0                	test   %eax,%eax
456450:	74 08                	je     0x45645a
456452:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
456458:	eb 02                	jmp    0x45645c
45645a:	33 c0                	xor    %eax,%eax
45645c:	89 46 0c             	mov    %eax,0xc(%esi)
45645f:	5e                   	pop    %esi
456460:	c3                   	ret
456461:	8b 01                	mov    (%ecx),%eax
456463:	8b 90 0c 01 00 00    	mov    0x10c(%eax),%edx
456469:	3b 90 10 02 00 00    	cmp    0x210(%eax),%edx
45646f:	74 03                	je     0x456474
456471:	32 c0                	xor    %al,%al
456473:	c3                   	ret
456474:	33 c9                	xor    %ecx,%ecx
456476:	56                   	push   %esi
456477:	85 d2                	test   %edx,%edx
456479:	7e 1b                	jle    0x456496
45647b:	05 10 01 00 00       	add    $0x110,%eax
456480:	8b 30                	mov    (%eax),%esi
456482:	85 f6                	test   %esi,%esi
456484:	78 14                	js     0x45649a
456486:	3b b0 fc fe ff ff    	cmp    -0x104(%eax),%esi
45648c:	7d 0c                	jge    0x45649a
45648e:	41                   	inc    %ecx
45648f:	83 c0 04             	add    $0x4,%eax
456492:	3b ca                	cmp    %edx,%ecx
456494:	7c ea                	jl     0x456480
456496:	b0 01                	mov    $0x1,%al
456498:	5e                   	pop    %esi
456499:	c3                   	ret
45649a:	32 c0                	xor    %al,%al
45649c:	5e                   	pop    %esi
45649d:	c3                   	ret
45649e:	55                   	push   %ebp
45649f:	8b ec                	mov    %esp,%ebp
4564a1:	51                   	push   %ecx
4564a2:	51                   	push   %ecx
4564a3:	56                   	push   %esi
4564a4:	8b 31                	mov    (%ecx),%esi
4564a6:	57                   	push   %edi
4564a7:	8b 7e 08             	mov    0x8(%esi),%edi
4564aa:	85 ff                	test   %edi,%edi
4564ac:	75 05                	jne    0x4564b3
4564ae:	83 c8 ff             	or     $0xffffffff,%eax
4564b1:	eb 46                	jmp    0x4564f9
4564b3:	e8 a9 ff ff ff       	call   0x456461
4564b8:	84 c0                	test   %al,%al
4564ba:	74 f2                	je     0x4564ae
4564bc:	8b 86 0c 01 00 00    	mov    0x10c(%esi),%eax
4564c2:	53                   	push   %ebx
4564c3:	33 db                	xor    %ebx,%ebx
4564c5:	89 45 f8             	mov    %eax,-0x8(%ebp)
4564c8:	85 c0                	test   %eax,%eax
4564ca:	7e 2a                	jle    0x4564f6
4564cc:	b9 10 01 00 00       	mov    $0x110,%ecx
4564d1:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4564d4:	8b c7                	mov    %edi,%eax
4564d6:	99                   	cltd
4564d7:	f7 bc 31 fc fe ff ff 	idivl  -0x104(%ecx,%esi,1)
4564de:	8b 0c 31             	mov    (%ecx,%esi,1),%ecx
4564e1:	8b f8                	mov    %eax,%edi
4564e3:	0f af cf             	imul   %edi,%ecx
4564e6:	03 d9                	add    %ecx,%ebx
4564e8:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4564eb:	83 c1 04             	add    $0x4,%ecx
4564ee:	ff 4d f8             	decl   -0x8(%ebp)
4564f1:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4564f4:	75 de                	jne    0x4564d4
4564f6:	8b c3                	mov    %ebx,%eax
4564f8:	5b                   	pop    %ebx
4564f9:	5f                   	pop    %edi
4564fa:	5e                   	pop    %esi
4564fb:	8b e5                	mov    %ebp,%esp
4564fd:	5d                   	pop    %ebp
4564fe:	c3                   	ret
4564ff:	55                   	push   %ebp
456500:	8b ec                	mov    %esp,%ebp
456502:	53                   	push   %ebx
456503:	56                   	push   %esi
456504:	8b f1                	mov    %ecx,%esi
456506:	33 db                	xor    %ebx,%ebx
456508:	43                   	inc    %ebx
456509:	57                   	push   %edi
45650a:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
45650f:	8b 0e                	mov    (%esi),%ecx
456511:	8b 01                	mov    (%ecx),%eax
456513:	3b c3                	cmp    %ebx,%eax
456515:	7e 13                	jle    0x45652a
456517:	3b c7                	cmp    %edi,%eax
456519:	74 0f                	je     0x45652a
45651b:	48                   	dec    %eax
45651c:	89 01                	mov    %eax,(%ecx)
45651e:	8b ce                	mov    %esi,%ecx
456520:	56                   	push   %esi
456521:	e8 15 28 fb ff       	call   0x408d3b
456526:	8b 06                	mov    (%esi),%eax
456528:	89 18                	mov    %ebx,(%eax)
45652a:	83 7d 08 02          	cmpl   $0x2,0x8(%ebp)
45652e:	8b 06                	mov    (%esi),%eax
456530:	75 08                	jne    0x45653a
456532:	39 38                	cmp    %edi,(%eax)
456534:	74 06                	je     0x45653c
456536:	89 18                	mov    %ebx,(%eax)
456538:	eb 02                	jmp    0x45653c
45653a:	89 38                	mov    %edi,(%eax)
45653c:	5f                   	pop    %edi
45653d:	5e                   	pop    %esi
45653e:	5b                   	pop    %ebx
45653f:	5d                   	pop    %ebp
456540:	c2 04 00             	ret    $0x4
456543:	83 79 0c 08          	cmpl   $0x8,0xc(%ecx)
456547:	74 0f                	je     0x456558
456549:	83 79 0c 0c          	cmpl   $0xc,0xc(%ecx)
45654d:	74 09                	je     0x456558
45654f:	83 79 0c 0f          	cmpl   $0xf,0xc(%ecx)
456553:	74 03                	je     0x456558