45e275:	8b 45 f0             	mov    -0x10(%ebp),%eax
45e278:	83 c4 0c             	add    $0xc,%esp
45e27b:	29 45 f4             	sub    %eax,-0xc(%ebp)
45e27e:	83 7f 10 10          	cmpl   $0x10,0x10(%edi)
45e282:	0f 8e 95 00 00 00    	jle    0x45e31d
45e288:	6a ff                	push   $0xffffffff
45e28a:	6a 00                	push   $0x0
45e28c:	8b cf                	mov    %edi,%ecx
45e28e:	e8 cd 0f 00 00       	call   0x45f260
45e293:	8b 77 04             	mov    0x4(%edi),%esi
45e296:	8b d0                	mov    %eax,%edx
45e298:	85 d2                	test   %edx,%edx
45e29a:	74 78                	je     0x45e314
45e29c:	8b ca                	mov    %edx,%ecx
45e29e:	b8 00 00 00 00       	mov    $0x0,%eax
45e2a3:	2b ce                	sub    %esi,%ecx
45e2a5:	01 4f 10             	add    %ecx,0x10(%edi)
45e2a8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45e2ab:	0f 48 47 10          	cmovs  0x10(%edi),%eax
45e2af:	2b d3                	sub    %ebx,%edx
45e2b1:	03 c6                	add    %esi,%eax
45e2b3:	8b de                	mov    %esi,%ebx
45e2b5:	89 07                	mov    %eax,(%edi)
45e2b7:	8b 45 f0             	mov    -0x10(%ebp),%eax
45e2ba:	83 c0 10             	add    $0x10,%eax
45e2bd:	03 c2                	add    %edx,%eax
45e2bf:	2b d8                	sub    %eax,%ebx
45e2c1:	89 45 fc             	mov    %eax,-0x4(%ebp)
45e2c4:	83 c3 10             	add    $0x10,%ebx
45e2c7:	3b cb                	cmp    %ebx,%ecx
45e2c9:	0f 8f 69 ff ff ff    	jg     0x45e238
45e2cf:	8b 5d f8             	mov    -0x8(%ebp),%ebx
45e2d2:	8b f1                	mov    %ecx,%esi
45e2d4:	8b cb                	mov    %ebx,%ecx
45e2d6:	c1 ee 02             	shr    $0x2,%esi
45e2d9:	e8 d2 fc ff ff       	call   0x45dfb0
45e2de:	03 c6                	add    %esi,%eax
45e2e0:	8b cb                	mov    %ebx,%ecx
45e2e2:	50                   	push   %eax
45e2e3:	e8 38 f3 ff ff       	call   0x45d620
45e2e8:	56                   	push   %esi
45e2e9:	8b cb                	mov    %ebx,%ecx
45e2eb:	8d 3c b5 00 00 00 00 	lea    0x0(,%esi,4),%edi
45e2f2:	e8 29 ef ff ff       	call   0x45d220
45e2f7:	8b 75 fc             	mov    -0x4(%ebp),%esi
45e2fa:	57                   	push   %edi
45e2fb:	56                   	push   %esi
45e2fc:	50                   	push   %eax
45e2fd:	e8 ce 4a 17 00       	call   0x5d2dd0
45e302:	83 c4 0c             	add    $0xc,%esp
45e305:	39 7d f4             	cmp    %edi,-0xc(%ebp)
45e308:	75 13                	jne    0x45e31d
45e30a:	8d 04 37             	lea    (%edi,%esi,1),%eax
45e30d:	5e                   	pop    %esi
45e30e:	5b                   	pop    %ebx
45e30f:	5f                   	pop    %edi
45e310:	8b e5                	mov    %ebp,%esp
45e312:	5d                   	pop    %ebp
45e313:	c3                   	ret
45e314:	c7 47 3c 01 00 00 00 	movl   $0x1,0x3c(%edi)
45e31b:	89 37                	mov    %esi,(%edi)
45e31d:	5e                   	pop    %esi
45e31e:	5b                   	pop    %ebx
45e31f:	33 c0                	xor    %eax,%eax
45e321:	5f                   	pop    %edi
45e322:	8b e5                	mov    %ebp,%esp
45e324:	5d                   	pop    %ebp
45e325:	c3                   	ret
45e326:	cc                   	int3
45e327:	cc                   	int3
45e328:	cc                   	int3
45e329:	cc                   	int3
45e32a:	cc                   	int3
45e32b:	cc                   	int3
45e32c:	cc                   	int3
45e32d:	cc                   	int3
45e32e:	cc                   	int3
45e32f:	cc                   	int3
45e330:	55                   	push   %ebp
45e331:	8b ec                	mov    %esp,%ebp
45e333:	83 ec 10             	sub    $0x10,%esp
45e336:	8b 45 08             	mov    0x8(%ebp),%eax
45e339:	89 45 f8             	mov    %eax,-0x8(%ebp)
45e33c:	8b 45 0c             	mov    0xc(%ebp),%eax
45e33f:	89 45 fc             	mov    %eax,-0x4(%ebp)
45e342:	8d 45 fc             	lea    -0x4(%ebp),%eax
45e345:	57                   	push   %edi
45e346:	8b 7d 10             	mov    0x10(%ebp),%edi
45e349:	50                   	push   %eax
45e34a:	e8 91 14 00 00       	call   0x45f7e0
45e34f:	8b c8                	mov    %eax,%ecx
45e351:	83 c4 04             	add    $0x4,%esp
45e354:	8b 45 fc             	mov    -0x4(%ebp),%eax
45e357:	89 4d f4             	mov    %ecx,-0xc(%ebp)
45e35a:	89 45 fc             	mov    %eax,-0x4(%ebp)
45e35d:	85 c0                	test   %eax,%eax
45e35f:	75 05                	jne    0x45e366
45e361:	5f                   	pop    %edi
45e362:	8b e5                	mov    %ebp,%esp
45e364:	5d                   	pop    %ebp
45e365:	c3                   	ret
45e366:	53                   	push   %ebx
45e367:	8b 5f 04             	mov    0x4(%edi),%ebx
45e36a:	2b d8                	sub    %eax,%ebx
45e36c:	83 c3 10             	add    $0x10,%ebx
45e36f:	56                   	push   %esi
45e370:	3b cb                	cmp    %ebx,%ecx
45e372:	0f 8e 97 00 00 00    	jle    0x45e40f
45e378:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45e37b:	8b f3                	mov    %ebx,%esi
45e37d:	c1 ee 03             	shr    $0x3,%esi
45e380:	e8 2b fc ff ff       	call   0x45dfb0
45e385:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45e388:	03 c6                	add    %esi,%eax
45e38a:	50                   	push   %eax
45e38b:	e8 60 f3 ff ff       	call   0x45d6f0
45e390:	8b 4d f8             	mov    -0x8(%ebp),%ecx
45e393:	8d 04 f5 00 00 00 00 	lea    0x0(,%esi,8),%eax
45e39a:	56                   	push   %esi
45e39b:	89 45 f0             	mov    %eax,-0x10(%ebp)
45e39e:	e8 9d ee ff ff       	call   0x45d240
45e3a3:	8d 0c f5 00 00 00 00 	lea    0x0(,%esi,8),%ecx
45e3aa:	8b 75 fc             	mov    -0x4(%ebp),%esi
45e3ad:	51                   	push   %ecx
45e3ae:	56                   	push   %esi
45e3af:	50                   	push   %eax
45e3b0:	e8 1b 4a 17 00       	call   0x5d2dd0
45e3b5:	8b 45 f0             	mov    -0x10(%ebp),%eax
45e3b8:	83 c4 0c             	add    $0xc,%esp
45e3bb:	29 45 f4             	sub    %eax,-0xc(%ebp)
45e3be:	83 7f 10 10          	cmpl   $0x10,0x10(%edi)
45e3c2:	0f 8e 95 00 00 00    	jle    0x45e45d
45e3c8:	6a ff                	push   $0xffffffff
45e3ca:	6a 00                	push   $0x0
45e3cc:	8b cf                	mov    %edi,%ecx
45e3ce:	e8 8d 0e 00 00       	call   0x45f260
45e3d3:	8b 77 04             	mov    0x4(%edi),%esi
45e3d6:	8b d0                	mov    %eax,%edx
45e3d8:	85 d2                	test   %edx,%edx
45e3da:	74 78                	je     0x45e454
45e3dc:	8b ca                	mov    %edx,%ecx
45e3de:	b8 00 00 00 00       	mov    $0x0,%eax
45e3e3:	2b ce                	sub    %esi,%ecx
45e3e5:	01 4f 10             	add    %ecx,0x10(%edi)
45e3e8:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45e3eb:	0f 48 47 10          	cmovs  0x10(%edi),%eax
45e3ef:	2b d3                	sub    %ebx,%edx
45e3f1:	03 c6                	add    %esi,%eax
45e3f3:	8b de                	mov    %esi,%ebx
45e3f5:	89 07                	mov    %eax,(%edi)
45e3f7:	8b 45 f0             	mov    -0x10(%ebp),%eax
45e3fa:	83 c0 10             	add    $0x10,%eax
45e3fd:	03 c2                	add    %edx,%eax
45e3ff:	2b d8                	sub    %eax,%ebx
45e401:	89 45 fc             	mov    %eax,-0x4(%ebp)
45e404:	83 c3 10             	add    $0x10,%ebx
45e407:	3b cb                	cmp    %ebx,%ecx
45e409:	0f 8f 69 ff ff ff    	jg     0x45e378
45e40f:	8b 5d f8             	mov    -0x8(%ebp),%ebx
45e412:	8b f1                	mov    %ecx,%esi
45e414:	8b cb                	mov    %ebx,%ecx
45e416:	c1 ee 03             	shr    $0x3,%esi
45e419:	e8 92 fb ff ff       	call   0x45dfb0
45e41e:	03 c6                	add    %esi,%eax
45e420:	8b cb                	mov    %ebx,%ecx
45e422:	50                   	push   %eax
45e423:	e8 c8 f2 ff ff       	call   0x45d6f0
45e428:	56                   	push   %esi
45e429:	8b cb                	mov    %ebx,%ecx
45e42b:	8d 3c f5 00 00 00 00 	lea    0x0(,%esi,8),%edi
45e432:	e8 09 ee ff ff       	call   0x45d240
45e437:	8b 75 fc             	mov    -0x4(%ebp),%esi
45e43a:	57                   	push   %edi
45e43b:	56                   	push   %esi
45e43c:	50                   	push   %eax
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