465295:	2b ce                	sub    %esi,%ecx
465297:	d3 ea                	shr    %cl,%edx
465299:	8b ca                	mov    %edx,%ecx
46529b:	f7 d1                	not    %ecx
46529d:	0b c8                	or     %eax,%ecx
46529f:	33 c0                	xor    %eax,%eax
4652a1:	23 cd                	and    %ebp,%ecx
4652a3:	38 44 24 17          	cmp    %al,0x17(%esp)
4652a7:	0f 45 c2             	cmovne %edx,%eax
4652aa:	23 44 24 18          	and    0x18(%esp),%eax
4652ae:	0b c8                	or     %eax,%ecx
4652b0:	8b 07                	mov    (%edi),%eax
4652b2:	89 08                	mov    %ecx,(%eax)
4652b4:	8b c7                	mov    %edi,%eax
4652b6:	5f                   	pop    %edi
4652b7:	5e                   	pop    %esi
4652b8:	5d                   	pop    %ebp
4652b9:	5b                   	pop    %ebx
4652ba:	83 c4 18             	add    $0x18,%esp
4652bd:	c2 14 00             	ret    $0x14
4652c0:	33 c0                	xor    %eax,%eax
4652c2:	8d 4a 04             	lea    0x4(%edx),%ecx
4652c5:	38 44 24 17          	cmp    %al,0x17(%esp)
4652c9:	0f 45 44 24 18       	cmovne 0x18(%esp),%eax
4652ce:	23 6c 24 1c          	and    0x1c(%esp),%ebp
4652d2:	0b c5                	or     %ebp,%eax
4652d4:	89 02                	mov    %eax,(%edx)
4652d6:	8b c3                	mov    %ebx,%eax
4652d8:	2b c1                	sub    %ecx,%eax
4652da:	ba ff 00 00 00       	mov    $0xff,%edx
4652df:	50                   	push   %eax
4652e0:	33 c0                	xor    %eax,%eax
4652e2:	38 44 24 1b          	cmp    %al,0x1b(%esp)
4652e6:	0f 45 c2             	cmovne %edx,%eax
4652e9:	50                   	push   %eax
4652ea:	51                   	push   %ecx
4652eb:	e8 c0 68 00 00       	call   0x46bbb0
4652f0:	83 c4 0c             	add    $0xc,%esp
4652f3:	85 f6                	test   %esi,%esi
4652f5:	74 1f                	je     0x465316
4652f7:	83 ca ff             	or     $0xffffffff,%edx
4652fa:	b9 20 00 00 00       	mov    $0x20,%ecx
4652ff:	2b 4c 24 20          	sub    0x20(%esp),%ecx
465303:	33 c0                	xor    %eax,%eax
465305:	d3 ea                	shr    %cl,%edx
465307:	38 44 24 17          	cmp    %al,0x17(%esp)
46530b:	0f 45 c2             	cmovne %edx,%eax
46530e:	f7 d2                	not    %edx
465310:	23 13                	and    (%ebx),%edx
465312:	0b c2                	or     %edx,%eax
465314:	89 03                	mov    %eax,(%ebx)
465316:	8b c7                	mov    %edi,%eax
465318:	5f                   	pop    %edi
465319:	5e                   	pop    %esi
46531a:	5d                   	pop    %ebp
46531b:	5b                   	pop    %ebx
46531c:	83 c4 18             	add    $0x18,%esp
46531f:	c2 14 00             	ret    $0x14
465322:	cc                   	int3
465323:	cc                   	int3
465324:	cc                   	int3
465325:	cc                   	int3
465326:	cc                   	int3
465327:	cc                   	int3
465328:	cc                   	int3
465329:	cc                   	int3
46532a:	cc                   	int3
46532b:	cc                   	int3
46532c:	cc                   	int3
46532d:	cc                   	int3
46532e:	cc                   	int3
46532f:	cc                   	int3
465330:	55                   	push   %ebp
465331:	8b ec                	mov    %esp,%ebp
465333:	6a ff                	push   $0xffffffff
465335:	68 e0 cd 49 00       	push   $0x49cde0
46533a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
465340:	50                   	push   %eax
465341:	83 ec 20             	sub    $0x20,%esp
465344:	53                   	push   %ebx
465345:	56                   	push   %esi
465346:	57                   	push   %edi
465347:	a1 14 40 4c 00       	mov    0x4c4014,%eax
46534c:	33 c5                	xor    %ebp,%eax
46534e:	50                   	push   %eax
46534f:	8d 45 f4             	lea    -0xc(%ebp),%eax
465352:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
465358:	8b c1                	mov    %ecx,%eax
46535a:	89 45 e8             	mov    %eax,-0x18(%ebp)
46535d:	8b 18                	mov    (%eax),%ebx
46535f:	8b 40 0c             	mov    0xc(%eax),%eax
465362:	89 5d ec             	mov    %ebx,-0x14(%ebp)
465365:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
46536c:	89 45 f0             	mov    %eax,-0x10(%ebp)
46536f:	85 c0                	test   %eax,%eax
465371:	74 6f                	je     0x4653e2
465373:	8b 75 0c             	mov    0xc(%ebp),%esi
465376:	2b f3                	sub    %ebx,%esi
465378:	c1 fe 02             	sar    $0x2,%esi
46537b:	c1 e6 05             	shl    $0x5,%esi
46537e:	03 75 10             	add    0x10(%ebp),%esi
465381:	79 1a                	jns    0x46539d
465383:	8b c6                	mov    %esi,%eax
465385:	f7 d8                	neg    %eax
465387:	74 14                	je     0x46539d
465389:	8b c6                	mov    %esi,%eax
46538b:	8b d3                	mov    %ebx,%edx
46538d:	f7 d0                	not    %eax
46538f:	c1 e8 05             	shr    $0x5,%eax
465392:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
465399:	2b d0                	sub    %eax,%edx
46539b:	eb 08                	jmp    0x4653a5
46539d:	8b c6                	mov    %esi,%eax
46539f:	c1 e8 05             	shr    $0x5,%eax
4653a2:	8d 14 83             	lea    (%ebx,%eax,4),%edx
4653a5:	8b 4d 14             	mov    0x14(%ebp),%ecx
4653a8:	83 e6 1f             	and    $0x1f,%esi
4653ab:	2b cb                	sub    %ebx,%ecx
4653ad:	c1 f9 02             	sar    $0x2,%ecx
4653b0:	c1 e1 05             	shl    $0x5,%ecx
4653b3:	03 4d 18             	add    0x18(%ebp),%ecx
4653b6:	79 1d                	jns    0x4653d5
4653b8:	8b c1                	mov    %ecx,%eax
4653ba:	f7 d8                	neg    %eax
4653bc:	74 17                	je     0x4653d5
4653be:	8b c1                	mov    %ecx,%eax
4653c0:	8b fb                	mov    %ebx,%edi
4653c2:	f7 d0                	not    %eax
4653c4:	c1 e8 05             	shr    $0x5,%eax
4653c7:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
4653ce:	2b f8                	sub    %eax,%edi
4653d0:	83 e1 1f             	and    $0x1f,%ecx
4653d3:	eb 18                	jmp    0x4653ed
4653d5:	8b c1                	mov    %ecx,%eax
4653d7:	c1 e8 05             	shr    $0x5,%eax
4653da:	83 e1 1f             	and    $0x1f,%ecx
4653dd:	8d 3c 83             	lea    (%ebx,%eax,4),%edi
4653e0:	eb 0b                	jmp    0x4653ed
4653e2:	33 c9                	xor    %ecx,%ecx
4653e4:	8b fb                	mov    %ebx,%edi
4653e6:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4653e9:	33 f6                	xor    %esi,%esi
4653eb:	8b d3                	mov    %ebx,%edx
4653ed:	8b c2                	mov    %edx,%eax
4653ef:	2b c3                	sub    %ebx,%eax
4653f1:	c1 f8 02             	sar    $0x2,%eax
4653f4:	c1 e0 05             	shl    $0x5,%eax
4653f7:	03 c6                	add    %esi,%eax
4653f9:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4653fc:	3b d7                	cmp    %edi,%edx
4653fe:	75 08                	jne    0x465408
465400:	3b f1                	cmp    %ecx,%esi
465402:	0f 84 d5 00 00 00    	je     0x4654dd
465408:	8b 45 f0             	mov    -0x10(%ebp),%eax
46540b:	85 c0                	test   %eax,%eax
46540d:	79 23                	jns    0x465432
46540f:	f7 d8                	neg    %eax
465411:	33 db                	xor    %ebx,%ebx
465413:	3b d8                	cmp    %eax,%ebx
465415:	8b 45 f0             	mov    -0x10(%ebp),%eax
465418:	73 18                	jae    0x465432
46541a:	03 c3                	add    %ebx,%eax
46541c:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46541f:	89 45 f0             	mov    %eax,-0x10(%ebp)
465422:	f7 d0                	not    %eax
465424:	c1 e8 05             	shr    $0x5,%eax
465427:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
46542e:	2b d8                	sub    %eax,%ebx
465430:	eb 10                	jmp    0x465442
465432:	33 db                	xor    %ebx,%ebx
465434:	03 c3                	add    %ebx,%eax
465436:	8b 5d ec             	mov    -0x14(%ebp),%ebx
465439:	89 45 f0             	mov    %eax,-0x10(%ebp)
46543c:	c1 e8 05             	shr    $0x5,%eax
46543f:	8d 1c 83             	lea    (%ebx,%eax,4),%ebx
465442:	83 65 f0 1f          	andl   $0x1f,-0x10(%ebp)
465446:	b8 01 00 00 00       	mov    $0x1,%eax
46544b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
465450:	3b fb                	cmp    %ebx,%edi
465452:	75 05                	jne    0x465459
465454:	3b 4d f0             	cmp    -0x10(%ebp),%ecx
465457:	74 33                	je     0x46548c
465459:	d3 e0                	shl    %cl,%eax
46545b:	85 07                	test   %eax,(%edi)
46545d:	8b 02                	mov    (%edx),%eax
46545f:	74 05                	je     0x465466
465461:	0f ab f0             	bts    %esi,%eax
465464:	eb 03                	jmp    0x465469
465466:	0f b3 f0             	btr    %esi,%eax
465469:	89 02                	mov    %eax,(%edx)
46546b:	83 fe 1f             	cmp    $0x1f,%esi
46546e:	73 03                	jae    0x465473
465470:	46                   	inc    %esi
465471:	eb 05                	jmp    0x465478
465473:	33 f6                	xor    %esi,%esi
465475:	83 c2 04             	add    $0x4,%edx
465478:	b8 01 00 00 00       	mov    $0x1,%eax
46547d:	83 f9 1f             	cmp    $0x1f,%ecx
465480:	73 03                	jae    0x465485
465482:	41                   	inc    %ecx
465483:	eb cb                	jmp    0x465450
465485:	33 c9                	xor    %ecx,%ecx
465487:	83 c7 04             	add    $0x4,%edi
46548a:	eb c4                	jmp    0x465450
46548c:	8b 5d e8             	mov    -0x18(%ebp),%ebx
46548f:	8b 3b                	mov    (%ebx),%edi
465491:	2b d7                	sub    %edi,%edx
465493:	c1 fa 02             	sar    $0x2,%edx
465496:	c1 e2 05             	shl    $0x5,%edx
465499:	03 d6                	add    %esi,%edx
46549b:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
4654a1:	0f 87 9a 00 00 00    	ja     0x465541
4654a7:	8b 4b 04             	mov    0x4(%ebx),%ecx
4654aa:	8d 72 1f             	lea    0x1f(%edx),%esi
4654ad:	8b c1                	mov    %ecx,%eax
4654af:	c1 ee 05             	shr    $0x5,%esi
4654b2:	2b c7                	sub    %edi,%eax
4654b4:	c1 f8 02             	sar    $0x2,%eax
4654b7:	3b f0                	cmp    %eax,%esi
4654b9:	73 0a                	jae    0x4654c5
4654bb:	8d 04 b7             	lea    (%edi,%esi,4),%eax
4654be:	3b c1                	cmp    %ecx,%eax
4654c0:	74 03                	je     0x4654c5
4654c2:	89 43 04             	mov    %eax,0x4(%ebx)
4654c5:	89 53 0c             	mov    %edx,0xc(%ebx)
4654c8:	83 e2 1f             	and    $0x1f,%edx
4654cb:	76 13                	jbe    0x4654e0
4654cd:	8b ca                	mov    %edx,%ecx
4654cf:	b8 01 00 00 00       	mov    $0x1,%eax
4654d4:	d3 e0                	shl    %cl,%eax
4654d6:	48                   	dec    %eax
4654d7:	21 44 b7 fc          	and    %eax,-0x4(%edi,%esi,4)
4654db:	eb 03                	jmp    0x4654e0
4654dd:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4654e0:	8b 55 08             	mov    0x8(%ebp),%edx
4654e3:	33 f6                	xor    %esi,%esi
4654e5:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4654e8:	8b 03                	mov    (%ebx),%eax
4654ea:	89 02                	mov    %eax,(%edx)
4654ec:	89 72 04             	mov    %esi,0x4(%edx)
4654ef:	85 c9                	test   %ecx,%ecx
4654f1:	79 1f                	jns    0x465512
4654f3:	8b c1                	mov    %ecx,%eax
4654f5:	f7 d8                	neg    %eax
4654f7:	3b f0                	cmp    %eax,%esi
4654f9:	73 17                	jae    0x465512
4654fb:	8b f1                	mov    %ecx,%esi
4654fd:	b8 fc ff ff ff       	mov    $0xfffffffc,%eax
465502:	8b ce                	mov    %esi,%ecx
465504:	f7 d1                	not    %ecx
465506:	c1 e9 05             	shr    $0x5,%ecx
465509:	c1 e1 02             	shl    $0x2,%ecx
46550c:	2b c1                	sub    %ecx,%eax
46550e:	01 02                	add    %eax,(%edx)
465510:	eb 0c                	jmp    0x46551e
465512:	03 f1                	add    %ecx,%esi
465514:	8b ce                	mov    %esi,%ecx
465516:	c1 e9 05             	shr    $0x5,%ecx
465519:	c1 e1 02             	shl    $0x2,%ecx
46551c:	01 0a                	add    %ecx,(%edx)
46551e:	b8 1f 00 00 00       	mov    $0x1f,%eax
465523:	89 72 04             	mov    %esi,0x4(%edx)
465526:	23 c6                	and    %esi,%eax
465528:	89 42 04             	mov    %eax,0x4(%edx)
46552b:	8b c2                	mov    %edx,%eax
46552d:	8b 4d f4             	mov    -0xc(%ebp),%ecx
465530:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
465537:	59                   	pop    %ecx
465538:	5f                   	pop    %edi
465539:	5e                   	pop    %esi
46553a:	5b                   	pop    %ebx
46553b:	8b e5                	mov    %ebp,%esp
46553d:	5d                   	pop    %ebp
46553e:	c2 14 00             	ret    $0x14
465541:	e8 aa 02 00 00       	call   0x4657f0
465546:	cc                   	int3
465547:	cc                   	int3
465548:	cc                   	int3
465549:	cc                   	int3
46554a:	cc                   	int3
46554b:	cc                   	int3
46554c:	cc                   	int3
46554d:	cc                   	int3
46554e:	cc                   	int3
46554f:	cc                   	int3
465550:	53                   	push   %ebx
465551:	56                   	push   %esi
465552:	8b f1                	mov    %ecx,%esi
465554:	57                   	push   %edi
465555:	68 91 1b 00 00       	push   $0x1b91
46555a:	8b 5e 04             	mov    0x4(%esi),%ebx
46555d:	2b 1e                	sub    (%esi),%ebx
46555f:	d1 fb                	sar    $1,%ebx
465561:	e8 72 44 00 00       	call   0x4699d8
465566:	83 c4 04             	add    $0x4,%esp
465569:	85 c0                	test   %eax,%eax
46556b:	74 64                	je     0x4655d1
46556d:	8d 78 23             	lea    0x23(%eax),%edi
465570:	83 e7 e0             	and    $0xffffffe0,%edi
465573:	89 47 fc             	mov    %eax,-0x4(%edi)
465576:	8b 0e                	mov    (%esi),%ecx
465578:	8b 46 04             	mov    0x4(%esi),%eax
46557b:	2b c1                	sub    %ecx,%eax
46557d:	50                   	push   %eax
46557e:	51                   	push   %ecx
46557f:	57                   	push   %edi
465580:	e8 9b 60 00 00       	call   0x46b620
465585:	8b 06                	mov    (%esi),%eax
465587:	83 c4 0c             	add    $0xc,%esp
46558a:	85 c0                	test   %eax,%eax
46558c:	74 2c                	je     0x4655ba
46558e:	8b 4e 08             	mov    0x8(%esi),%ecx
465591:	2b c8                	sub    %eax,%ecx
465593:	83 e1 fe             	and    $0xfffffffe,%ecx
465596:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
46559c:	72 12                	jb     0x4655b0
46559e:	8b 50 fc             	mov    -0x4(%eax),%edx
4655a1:	83 c1 23             	add    $0x23,%ecx
4655a4:	2b c2                	sub    %edx,%eax
4655a6:	83 c0 fc             	add    $0xfffffffc,%eax
4655a9:	83 f8 1f             	cmp    $0x1f,%eax
4655ac:	77 23                	ja     0x4655d1
4655ae:	8b c2                	mov    %edx,%eax
4655b0:	51                   	push   %ecx
4655b1:	50                   	push   %eax
4655b2:	e8 51 44 00 00       	call   0x469a08
4655b7:	83 c4 08             	add    $0x8,%esp
4655ba:	8d 04 5f             	lea    (%edi,%ebx,2),%eax
4655bd:	89 3e                	mov    %edi,(%esi)
4655bf:	89 46 04             	mov    %eax,0x4(%esi)
4655c2:	8d 87 6e 1b 00 00    	lea    0x1b6e(%edi),%eax
4655c8:	5f                   	pop    %edi
4655c9:	89 46 08             	mov    %eax,0x8(%esi)
4655cc:	5e                   	pop    %esi
4655cd:	5b                   	pop    %ebx
4655ce:	c2 04 00             	ret    $0x4
4655d1:	e8 5b 40 01 00       	call   0x479631
4655d6:	cc                   	int3
4655d7:	cc                   	int3
4655d8:	cc                   	int3
4655d9:	cc                   	int3
4655da:	cc                   	int3
4655db:	cc                   	int3
4655dc:	cc                   	int3
4655dd:	cc                   	int3
4655de:	cc                   	int3
4655df:	cc                   	int3
4655e0:	83 ec 18             	sub    $0x18,%esp
4655e3:	53                   	push   %ebx
4655e4:	55                   	push   %ebp