45e43d:	e8 8e 49 17 00       	call   0x5d2dd0
45e442:	83 c4 0c             	add    $0xc,%esp
45e445:	39 7d f4             	cmp    %edi,-0xc(%ebp)
45e448:	75 13                	jne    0x45e45d
45e44a:	8d 04 37             	lea    (%edi,%esi,1),%eax
45e44d:	5e                   	pop    %esi
45e44e:	5b                   	pop    %ebx
45e44f:	5f                   	pop    %edi
45e450:	8b e5                	mov    %ebp,%esp
45e452:	5d                   	pop    %ebp
45e453:	c3                   	ret
45e454:	c7 47 3c 01 00 00 00 	movl   $0x1,0x3c(%edi)
45e45b:	89 37                	mov    %esi,(%edi)
45e45d:	5e                   	pop    %esi
45e45e:	5b                   	pop    %ebx
45e45f:	33 c0                	xor    %eax,%eax
45e461:	5f                   	pop    %edi
45e462:	8b e5                	mov    %ebp,%esp
45e464:	5d                   	pop    %ebp
45e465:	c3                   	ret
45e466:	cc                   	int3
45e467:	cc                   	int3
45e468:	cc                   	int3
45e469:	cc                   	int3
45e46a:	cc                   	int3
45e46b:	cc                   	int3
45e46c:	cc                   	int3
45e46d:	cc                   	int3
45e46e:	cc                   	int3
45e46f:	cc                   	int3
45e470:	55                   	push   %ebp
45e471:	8b ec                	mov    %esp,%ebp
45e473:	83 ec 08             	sub    $0x8,%esp
45e476:	56                   	push   %esi
45e477:	8b 75 08             	mov    0x8(%ebp),%esi
45e47a:	57                   	push   %edi
45e47b:	8b 7d 0c             	mov    0xc(%ebp),%edi
45e47e:	3b f7                	cmp    %edi,%esi
45e480:	73 34                	jae    0x45e4b6
45e482:	8d 45 f8             	lea    -0x8(%ebp),%eax
45e485:	50                   	push   %eax
45e486:	56                   	push   %esi
45e487:	e8 f4 26 ff ff       	call   0x450b80
45e48c:	8b f0                	mov    %eax,%esi
45e48e:	83 c4 08             	add    $0x8,%esp
45e491:	85 f6                	test   %esi,%esi
45e493:	74 29                	je     0x45e4be
45e495:	8b 45 f8             	mov    -0x8(%ebp),%eax
45e498:	8b c8                	mov    %eax,%ecx
45e49a:	83 e0 01             	and    $0x1,%eax
45e49d:	d1 e9                	shr    $1,%ecx
45e49f:	f7 d8                	neg    %eax
45e4a1:	33 c8                	xor    %eax,%ecx
45e4a3:	8d 45 08             	lea    0x8(%ebp),%eax
45e4a6:	89 4d 08             	mov    %ecx,0x8(%ebp)
45e4a9:	8b 4d 10             	mov    0x10(%ebp),%ecx
45e4ac:	50                   	push   %eax
45e4ad:	e8 6e ea ff ff       	call   0x45cf20
45e4b2:	3b f7                	cmp    %edi,%esi
45e4b4:	72 cc                	jb     0x45e482
45e4b6:	5f                   	pop    %edi
45e4b7:	8b c6                	mov    %esi,%eax
45e4b9:	5e                   	pop    %esi
45e4ba:	8b e5                	mov    %ebp,%esp
45e4bc:	5d                   	pop    %ebp
45e4bd:	c3                   	ret
45e4be:	5f                   	pop    %edi
45e4bf:	33 c0                	xor    %eax,%eax
45e4c1:	5e                   	pop    %esi
45e4c2:	8b e5                	mov    %ebp,%esp
45e4c4:	5d                   	pop    %ebp
45e4c5:	c3                   	ret
45e4c6:	cc                   	int3
45e4c7:	cc                   	int3
45e4c8:	cc                   	int3
45e4c9:	cc                   	int3
45e4ca:	cc                   	int3
45e4cb:	cc                   	int3
45e4cc:	cc                   	int3
45e4cd:	cc                   	int3
45e4ce:	cc                   	int3
45e4cf:	cc                   	int3
45e4d0:	55                   	push   %ebp
45e4d1:	8b ec                	mov    %esp,%ebp
45e4d3:	83 ec 14             	sub    $0x14,%esp
45e4d6:	53                   	push   %ebx
45e4d7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45e4da:	56                   	push   %esi
45e4db:	8b 75 08             	mov    0x8(%ebp),%esi
45e4de:	57                   	push   %edi
45e4df:	3b f3                	cmp    %ebx,%esi
45e4e1:	0f 83 a9 00 00 00    	jae    0x45e590
45e4e7:	0f b6 0e             	movzbl (%esi),%ecx
45e4ea:	8b fe                	mov    %esi,%edi
45e4ec:	46                   	inc    %esi
45e4ed:	89 4d 08             	mov    %ecx,0x8(%ebp)
45e4f0:	84 c9                	test   %cl,%cl
45e4f2:	78 04                	js     0x45e4f8
45e4f4:	33 c0                	xor    %eax,%eax
45e4f6:	eb 7a                	jmp    0x45e572
45e4f8:	0f b6 0e             	movzbl (%esi),%ecx
45e4fb:	8d 77 02             	lea    0x2(%edi),%esi
45e4fe:	8b 55 08             	mov    0x8(%ebp),%edx
45e501:	8b c1                	mov    %ecx,%eax
45e503:	c1 e0 07             	shl    $0x7,%eax
45e506:	83 c2 80             	add    $0xffffff80,%edx
45e509:	03 d0                	add    %eax,%edx
45e50b:	33 c0                	xor    %eax,%eax
45e50d:	89 55 08             	mov    %edx,0x8(%ebp)
45e510:	84 c9                	test   %cl,%cl
45e512:	78 04                	js     0x45e518
45e514:	8b ca                	mov    %edx,%ecx
45e516:	eb 5a                	jmp    0x45e572
45e518:	89 55 08             	mov    %edx,0x8(%ebp)
45e51b:	bb 0e 00 00 00       	mov    $0xe,%ebx
45e520:	89 45 fc             	mov    %eax,-0x4(%ebp)
45e523:	0f b6 06             	movzbl (%esi),%eax
45e526:	8b cb                	mov    %ebx,%ecx
45e528:	99                   	cltd
45e529:	89 45 f8             	mov    %eax,-0x8(%ebp)
45e52c:	8b fa                	mov    %edx,%edi
45e52e:	83 c0 ff             	add    $0xffffffff,%eax
45e531:	83 d2 ff             	adc    $0xffffffff,%edx
45e534:	e8 77 36 17 00       	call   0x5d1bb0
45e539:	8b 4d 08             	mov    0x8(%ebp),%ecx
45e53c:	03 c8                	add    %eax,%ecx
45e53e:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e541:	89 4d 08             	mov    %ecx,0x8(%ebp)
45e544:	13 c2                	adc    %edx,%eax
45e546:	46                   	inc    %esi
45e547:	89 45 fc             	mov    %eax,-0x4(%ebp)
45e54a:	85 ff                	test   %edi,%edi
45e54c:	75 09                	jne    0x45e557
45e54e:	81 7d f8 80 00 00 00 	cmpl   $0x80,-0x8(%ebp)
45e555:	72 18                	jb     0x45e56f
45e557:	83 c3 07             	add    $0x7,%ebx
45e55a:	83 fb 46             	cmp    $0x46,%ebx
45e55d:	72 c4                	jb     0x45e523
45e55f:	0f 57 c0             	xorps  %xmm0,%xmm0
45e562:	33 f6                	xor    %esi,%esi
45e564:	66 0f 13 45 f4       	movlpd %xmm0,-0xc(%ebp)
45e569:	8b 45 f8             	mov    -0x8(%ebp),%eax
45e56c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45e56f:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45e572:	85 f6                	test   %esi,%esi
45e574:	74 23                	je     0x45e599
45e576:	89 45 f0             	mov    %eax,-0x10(%ebp)
45e579:	8d 45 ec             	lea    -0x14(%ebp),%eax
45e57c:	89 4d ec             	mov    %ecx,-0x14(%ebp)
45e57f:	8b 4d 10             	mov    0x10(%ebp),%ecx
45e582:	50                   	push   %eax
45e583:	e8 a8 ea ff ff       	call   0x45d030
45e588:	3b f3                	cmp    %ebx,%esi
45e58a:	0f 82 57 ff ff ff    	jb     0x45e4e7
45e590:	5f                   	pop    %edi
45e591:	8b c6                	mov    %esi,%eax
45e593:	5e                   	pop    %esi
45e594:	5b                   	pop    %ebx
45e595:	8b e5                	mov    %ebp,%esp
45e597:	5d                   	pop    %ebp
45e598:	c3                   	ret
45e599:	5f                   	pop    %edi
45e59a:	5e                   	pop    %esi
45e59b:	33 c0                	xor    %eax,%eax
45e59d:	5b                   	pop    %ebx
45e59e:	8b e5                	mov    %ebp,%esp
45e5a0:	5d                   	pop    %ebp
45e5a1:	c3                   	ret
45e5a2:	cc                   	int3
45e5a3:	cc                   	int3
45e5a4:	cc                   	int3
45e5a5:	cc                   	int3
45e5a6:	cc                   	int3
45e5a7:	cc                   	int3
45e5a8:	cc                   	int3
45e5a9:	cc                   	int3
45e5aa:	cc                   	int3
45e5ab:	cc                   	int3
45e5ac:	cc                   	int3
45e5ad:	cc                   	int3
45e5ae:	cc                   	int3
45e5af:	cc                   	int3
45e5b0:	55                   	push   %ebp
45e5b1:	8b ec                	mov    %esp,%ebp
45e5b3:	83 ec 0c             	sub    $0xc,%esp
45e5b6:	53                   	push   %ebx
45e5b7:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45e5ba:	56                   	push   %esi
45e5bb:	8b 75 08             	mov    0x8(%ebp),%esi
45e5be:	57                   	push   %edi
45e5bf:	3b f3                	cmp    %ebx,%esi
45e5c1:	0f 83 ae 00 00 00    	jae    0x45e675
45e5c7:	0f b6 0e             	movzbl (%esi),%ecx
45e5ca:	8b fe                	mov    %esi,%edi
45e5cc:	46                   	inc    %esi
45e5cd:	89 4d 08             	mov    %ecx,0x8(%ebp)
45e5d0:	84 c9                	test   %cl,%cl
45e5d2:	78 09                	js     0x45e5dd
45e5d4:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
45e5db:	eb 7d                	jmp    0x45e65a
45e5dd:	0f b6 0e             	movzbl (%esi),%ecx
45e5e0:	8d 77 02             	lea    0x2(%edi),%esi
45e5e3:	8b 55 08             	mov    0x8(%ebp),%edx
45e5e6:	8b c1                	mov    %ecx,%eax
45e5e8:	c1 e0 07             	shl    $0x7,%eax
45e5eb:	83 c2 80             	add    $0xffffff80,%edx
45e5ee:	03 d0                	add    %eax,%edx
45e5f0:	33 c0                	xor    %eax,%eax
45e5f2:	89 55 08             	mov    %edx,0x8(%ebp)
45e5f5:	89 45 fc             	mov    %eax,-0x4(%ebp)
45e5f8:	84 c9                	test   %cl,%cl
45e5fa:	78 04                	js     0x45e600
45e5fc:	8b ca                	mov    %edx,%ecx
45e5fe:	eb 57                	jmp    0x45e657
45e600:	89 55 08             	mov    %edx,0x8(%ebp)
45e603:	bb 0e 00 00 00       	mov    $0xe,%ebx
45e608:	0f b6 06             	movzbl (%esi),%eax
45e60b:	8b cb                	mov    %ebx,%ecx
45e60d:	99                   	cltd
45e60e:	89 45 f8             	mov    %eax,-0x8(%ebp)
45e611:	8b fa                	mov    %edx,%edi
45e613:	83 c0 ff             	add    $0xffffffff,%eax
45e616:	83 d2 ff             	adc    $0xffffffff,%edx
45e619:	e8 92 35 17 00       	call   0x5d1bb0
45e61e:	8b 4d 08             	mov    0x8(%ebp),%ecx
45e621:	03 c8                	add    %eax,%ecx
45e623:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e626:	89 4d 08             	mov    %ecx,0x8(%ebp)
45e629:	13 c2                	adc    %edx,%eax
45e62b:	46                   	inc    %esi
45e62c:	89 45 fc             	mov    %eax,-0x4(%ebp)
45e62f:	85 ff                	test   %edi,%edi
45e631:	75 09                	jne    0x45e63c
45e633:	81 7d f8 80 00 00 00 	cmpl   $0x80,-0x8(%ebp)
45e63a:	72 18                	jb     0x45e654
45e63c:	83 c3 07             	add    $0x7,%ebx
45e63f:	83 fb 46             	cmp    $0x46,%ebx
45e642:	72 c4                	jb     0x45e608
45e644:	0f 57 c0             	xorps  %xmm0,%xmm0
45e647:	33 f6                	xor    %esi,%esi
45e649:	66 0f 13 45 f4       	movlpd %xmm0,-0xc(%ebp)
45e64e:	8b 45 f8             	mov    -0x8(%ebp),%eax
45e651:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45e654:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45e657:	89 45 f8             	mov    %eax,-0x8(%ebp)
45e65a:	85 f6                	test   %esi,%esi
45e65c:	74 20                	je     0x45e67e
45e65e:	8d 45 08             	lea    0x8(%ebp),%eax
45e661:	89 4d 08             	mov    %ecx,0x8(%ebp)
45e664:	8b 4d 10             	mov    0x10(%ebp),%ecx
45e667:	50                   	push   %eax
45e668:	e8 b3 e8 ff ff       	call   0x45cf20
45e66d:	3b f3                	cmp    %ebx,%esi
45e66f:	0f 82 52 ff ff ff    	jb     0x45e5c7
45e675:	5f                   	pop    %edi
45e676:	8b c6                	mov    %esi,%eax
45e678:	5e                   	pop    %esi
45e679:	5b                   	pop    %ebx
45e67a:	8b e5                	mov    %ebp,%esp
45e67c:	5d                   	pop    %ebp
45e67d:	c3                   	ret
45e67e:	5f                   	pop    %edi
45e67f:	5e                   	pop    %esi
45e680:	33 c0                	xor    %eax,%eax
45e682:	5b                   	pop    %ebx
45e683:	8b e5                	mov    %ebp,%esp
45e685:	5d                   	pop    %ebp
45e686:	c3                   	ret
45e687:	cc                   	int3
45e688:	cc                   	int3
45e689:	cc                   	int3
45e68a:	cc                   	int3
45e68b:	cc                   	int3
45e68c:	cc                   	int3
45e68d:	cc                   	int3
45e68e:	cc                   	int3
45e68f:	cc                   	int3
45e690:	55                   	push   %ebp
45e691:	8b ec                	mov    %esp,%ebp
45e693:	83 ec 10             	sub    $0x10,%esp
45e696:	53                   	push   %ebx
45e697:	8b 5d 0c             	mov    0xc(%ebp),%ebx
45e69a:	56                   	push   %esi
45e69b:	8b 75 08             	mov    0x8(%ebp),%esi
45e69e:	57                   	push   %edi
45e69f:	3b f3                	cmp    %ebx,%esi
45e6a1:	73 46                	jae    0x45e6e9
45e6a3:	8d 45 f8             	lea    -0x8(%ebp),%eax
45e6a6:	50                   	push   %eax
45e6a7:	56                   	push   %esi
45e6a8:	e8 d3 24 ff ff       	call   0x450b80
45e6ad:	8b f0                	mov    %eax,%esi
45e6af:	83 c4 08             	add    $0x8,%esp
45e6b2:	33 c0                	xor    %eax,%eax
45e6b4:	85 f6                	test   %esi,%esi
45e6b6:	74 33                	je     0x45e6eb
45e6b8:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45e6bb:	8b d1                	mov    %ecx,%edx
45e6bd:	8b 7d fc             	mov    -0x4(%ebp),%edi
45e6c0:	83 e1 01             	and    $0x1,%ecx
45e6c3:	0f ac fa 01          	shrd   $0x1,%edi,%edx
45e6c7:	d1 ef                	shr    $1,%edi
45e6c9:	f7 d9                	neg    %ecx
45e6cb:	13 c0                	adc    %eax,%eax
45e6cd:	33 d1                	xor    %ecx,%edx
45e6cf:	8b 4d 10             	mov    0x10(%ebp),%ecx
45e6d2:	f7 d8                	neg    %eax
45e6d4:	33 f8                	xor    %eax,%edi
45e6d6:	89 55 f0             	mov    %edx,-0x10(%ebp)
45e6d9:	8d 45 f0             	lea    -0x10(%ebp),%eax
45e6dc:	89 7d f4             	mov    %edi,-0xc(%ebp)
45e6df:	50                   	push   %eax
45e6e0:	e8 4b e9 ff ff       	call   0x45d030
45e6e5:	3b f3                	cmp    %ebx,%esi
45e6e7:	72 ba                	jb     0x45e6a3
45e6e9:	8b c6                	mov    %esi,%eax
45e6eb:	5f                   	pop    %edi
45e6ec:	5e                   	pop    %esi
45e6ed:	5b                   	pop    %ebx
45e6ee:	8b e5                	mov    %ebp,%esp
45e6f0:	5d                   	pop    %ebp
45e6f1:	c3                   	ret
45e6f2:	cc                   	int3
45e6f3:	cc                   	int3
45e6f4:	cc                   	int3
45e6f5:	cc                   	int3
45e6f6:	cc                   	int3
45e6f7:	cc                   	int3
45e6f8:	cc                   	int3
45e6f9:	cc                   	int3
45e6fa:	cc                   	int3
45e6fb:	cc                   	int3
45e6fc:	cc                   	int3
45e6fd:	cc                   	int3
45e6fe:	cc                   	int3
45e6ff:	cc                   	int3
45e700:	55                   	push   %ebp
45e701:	8b ec                	mov    %esp,%ebp
45e703:	83 ec 08             	sub    $0x8,%esp
45e706:	56                   	push   %esi
45e707:	8b 75 08             	mov    0x8(%ebp),%esi
45e70a:	57                   	push   %edi
45e70b:	8b 7d 0c             	mov    0xc(%ebp),%edi
45e70e:	3b f7                	cmp    %edi,%esi
45e710:	73 34                	jae    0x45e746
45e712:	8d 45 f8             	lea    -0x8(%ebp),%eax
45e715:	50                   	push   %eax
45e716:	56                   	push   %esi
45e717:	e8 64 24 ff ff       	call   0x450b80
45e71c:	8b f0                	mov    %eax,%esi