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
456555:	33 c0                	xor    %eax,%eax
456557:	c3                   	ret
456558:	33 c0                	xor    %eax,%eax
45655a:	40                   	inc    %eax
45655b:	c3                   	ret
45655c:	55                   	push   %ebp
45655d:	8b ec                	mov    %esp,%ebp
45655f:	56                   	push   %esi
456560:	8b f1                	mov    %ecx,%esi
456562:	8b 46 0c             	mov    0xc(%esi),%eax
456565:	85 c0                	test   %eax,%eax
456567:	7e 47                	jle    0x4565b0
456569:	57                   	push   %edi
45656a:	8b 7d 08             	mov    0x8(%ebp),%edi
45656d:	83 f8 03             	cmp    $0x3,%eax
456570:	7e 26                	jle    0x456598
456572:	83 f8 04             	cmp    $0x4,%eax
456575:	74 26                	je     0x45659d
456577:	83 f8 07             	cmp    $0x7,%eax
45657a:	74 1c                	je     0x456598
45657c:	83 f8 08             	cmp    $0x8,%eax
45657f:	7e 2e                	jle    0x4565af
456581:	83 f8 0a             	cmp    $0xa,%eax
456584:	7e 12                	jle    0x456598
456586:	83 f8 0b             	cmp    $0xb,%eax
456589:	75 24                	jne    0x4565af
45658b:	39 47 0c             	cmp    %eax,0xc(%edi)
45658e:	75 08                	jne    0x456598
456590:	57                   	push   %edi
456591:	e8 6a 31 fb ff       	call   0x409700
456596:	eb 17                	jmp    0x4565af
456598:	e8 eb 2e fb ff       	call   0x409488
45659d:	8b cf                	mov    %edi,%ecx
45659f:	e8 f3 33 fb ff       	call   0x409997
4565a4:	ff 77 08             	push   0x8(%edi)
4565a7:	8b 4e 08             	mov    0x8(%esi),%ecx
4565aa:	e8 df 16 fb ff       	call   0x407c8e
4565af:	5f                   	pop    %edi
4565b0:	5e                   	pop    %esi
4565b1:	5d                   	pop    %ebp
4565b2:	c2 04 00             	ret    $0x4
4565b5:	55                   	push   %ebp
4565b6:	8b ec                	mov    %esp,%ebp
4565b8:	56                   	push   %esi
4565b9:	8b f1                	mov    %ecx,%esi
4565bb:	8b 46 0c             	mov    0xc(%esi),%eax
4565be:	85 c0                	test   %eax,%eax
4565c0:	7e 2a                	jle    0x4565ec
4565c2:	83 f8 02             	cmp    $0x2,%eax
4565c5:	7e 14                	jle    0x4565db
4565c7:	83 f8 03             	cmp    $0x3,%eax
4565ca:	74 14                	je     0x4565e0
4565cc:	83 f8 04             	cmp    $0x4,%eax
4565cf:	74 0a                	je     0x4565db
4565d1:	83 f8 09             	cmp    $0x9,%eax
4565d4:	74 05                	je     0x4565db
4565d6:	83 f8 0b             	cmp    $0xb,%eax
4565d9:	75 11                	jne    0x4565ec
4565db:	e8 b3 2f fb ff       	call   0x409593
4565e0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4565e3:	e8 10 37 fb ff       	call   0x409cf8
4565e8:	dc 3e                	fdivrl (%esi)
4565ea:	dd 1e                	fstpl  (%esi)
4565ec:	8b ce                	mov    %esi,%ecx
4565ee:	e8 8c 33 fb ff       	call   0x40997f
4565f3:	8b c6                	mov    %esi,%eax
4565f5:	5e                   	pop    %esi
4565f6:	5d                   	pop    %ebp
4565f7:	c2 04 00             	ret    $0x4
4565fa:	56                   	push   %esi
4565fb:	8b f1                	mov    %ecx,%esi
4565fd:	e8 40 36 fb ff       	call   0x409c42
456602:	84 c0                	test   %al,%al
456604:	75 0a                	jne    0x456610
456606:	83 7e 0c 03          	cmpl   $0x3,0xc(%esi)
45660a:	74 04                	je     0x456610
45660c:	33 c0                	xor    %eax,%eax
45660e:	5e                   	pop    %esi
45660f:	c3                   	ret
456610:	33 c0                	xor    %eax,%eax
456612:	40                   	inc    %eax
456613:	5e                   	pop    %esi
456614:	c3                   	ret
456615:	83 79 0c 05          	cmpl   $0x5,0xc(%ecx)
456619:	75 03                	jne    0x45661e
45661b:	8b 01                	mov    (%ecx),%eax
45661d:	c3                   	ret
45661e:	33 c0                	xor    %eax,%eax
456620:	c3                   	ret
456621:	56                   	push   %esi
456622:	8b f1                	mov    %ecx,%esi
456624:	e8 c7 37 fb ff       	call   0x409df0
456629:	56                   	push   %esi
45662a:	e8 3d aa fc ff       	call   0x42106c
45662f:	59                   	pop    %ecx
456630:	8b c6                	mov    %esi,%eax
456632:	5e                   	pop    %esi
456633:	c2 04 00             	ret    $0x4
456636:	56                   	push   %esi
456637:	8b f1                	mov    %ecx,%esi
456639:	57                   	push   %edi
45663a:	33 ff                	xor    %edi,%edi
45663c:	39 7e 08             	cmp    %edi,0x8(%esi)
45663f:	76 1d                	jbe    0x45665e
456641:	8b 46 04             	mov    0x4(%esi),%eax
456644:	8b 0c b8             	mov    (%eax,%edi,4),%ecx
456647:	85 c9                	test   %ecx,%ecx
456649:	74 06                	je     0x456651
45664b:	51                   	push   %ecx
45664c:	e8 d0 ff ff ff       	call   0x456621
456651:	8b 46 04             	mov    0x4(%esi),%eax
456654:	83 24 b8 00          	andl   $0x0,(%eax,%edi,4)
456658:	47                   	inc    %edi
456659:	3b 7e 08             	cmp    0x8(%esi),%edi
45665c:	72 e3                	jb     0x456641
45665e:	83 66 08 00          	andl   $0x0,0x8(%esi)
456662:	5f                   	pop    %edi
456663:	5e                   	pop    %esi
456664:	c3                   	ret
456665:	55                   	push   %ebp
456666:	8b ec                	mov    %esp,%ebp
456668:	56                   	push   %esi
456669:	8b f1                	mov    %ecx,%esi
45666b:	57                   	push   %edi
45666c:	8b 46 0c             	mov    0xc(%esi),%eax
45666f:	39 46 08             	cmp    %eax,0x8(%esi)
456672:	75 4e                	jne    0x4566c2
456674:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
456677:	6a 08                	push   $0x8
456679:	58                   	pop    %eax
45667a:	3b c8                	cmp    %eax,%ecx
45667c:	72 02                	jb     0x456680
45667e:	8b c1                	mov    %ecx,%eax
456680:	33 c9                	xor    %ecx,%ecx
456682:	89 46 0c             	mov    %eax,0xc(%esi)
456685:	6a 04                	push   $0x4
456687:	5a                   	pop    %edx
456688:	f7 e2                	mul    %edx
45668a:	0f 90 c1             	seto   %cl
45668d:	f7 d9                	neg    %ecx
45668f:	0b c8                	or     %eax,%ecx
456691:	51                   	push   %ecx
456692:	e8 5f a9 fc ff       	call   0x420ff6
456697:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
45669b:	8b f8                	mov    %eax,%edi
45669d:	59                   	pop    %ecx
45669e:	74 1f                	je     0x4566bf
4566a0:	8b 46 08             	mov    0x8(%esi),%eax
4566a3:	85 c0                	test   %eax,%eax
4566a5:	74 18                	je     0x4566bf
4566a7:	c1 e0 02             	shl    $0x2,%eax
4566aa:	50                   	push   %eax
4566ab:	ff 76 04             	push   0x4(%esi)
4566ae:	57                   	push   %edi
4566af:	e8 cc a9 fc ff       	call   0x421080
4566b4:	ff 76 04             	push   0x4(%esi)
4566b7:	e8 b0 a9 fc ff       	call   0x42106c
4566bc:	83 c4 10             	add    $0x10,%esp
4566bf:	89 7e 04             	mov    %edi,0x4(%esi)
4566c2:	6a 10                	push   $0x10
4566c4:	e8 2d a9 fc ff       	call   0x420ff6
4566c9:	8b f8                	mov    %eax,%edi
4566cb:	59                   	pop    %ecx
4566cc:	85 ff                	test   %edi,%edi
4566ce:	74 10                	je     0x4566e0
4566d0:	ff 75 08             	push   0x8(%ebp)
4566d3:	83 67 08 00          	andl   $0x0,0x8(%edi)
4566d7:	8b cf                	mov    %edi,%ecx
4566d9:	e8 e2 33 fb ff       	call   0x409ac0
4566de:	eb 02                	jmp    0x4566e2
4566e0:	33 ff                	xor    %edi,%edi
4566e2:	8b 4e 08             	mov    0x8(%esi),%ecx
4566e5:	8b 46 04             	mov    0x4(%esi),%eax
4566e8:	89 3c 88             	mov    %edi,(%eax,%ecx,4)
4566eb:	ff 46 08             	incl   0x8(%esi)