49c1c0:	50                   	push   %eax
49c1c1:	e8 ea c8 fd ff       	call   0x478ab0
49c1c6:	8b 4e 08             	mov    0x8(%esi),%ecx
49c1c9:	83 c4 0c             	add    $0xc,%esp
49c1cc:	8b 06                	mov    (%esi),%eax
49c1ce:	2b c8                	sub    %eax,%ecx
49c1d0:	83 e1 fc             	and    $0xfffffffc,%ecx
49c1d3:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
49c1d9:	72 12                	jb     0x49c1ed
49c1db:	8b 50 fc             	mov    -0x4(%eax),%edx
49c1de:	83 c1 23             	add    $0x23,%ecx
49c1e1:	2b c2                	sub    %edx,%eax
49c1e3:	83 c0 fc             	add    $0xfffffffc,%eax
49c1e6:	83 f8 1f             	cmp    $0x1f,%eax
49c1e9:	77 28                	ja     0x49c213
49c1eb:	8b c2                	mov    %edx,%eax
49c1ed:	51                   	push   %ecx
49c1ee:	50                   	push   %eax
49c1ef:	e8 61 50 13 00       	call   0x5d1255
49c1f4:	83 c4 08             	add    $0x8,%esp
49c1f7:	8b 4d 08             	mov    0x8(%ebp),%ecx
49c1fa:	8b 45 0c             	mov    0xc(%ebp),%eax
49c1fd:	89 0e                	mov    %ecx,(%esi)
49c1ff:	8d 04 81             	lea    (%ecx,%eax,4),%eax
49c202:	89 46 04             	mov    %eax,0x4(%esi)
49c205:	8b 45 10             	mov    0x10(%ebp),%eax
49c208:	8d 04 81             	lea    (%ecx,%eax,4),%eax
49c20b:	89 46 08             	mov    %eax,0x8(%esi)
49c20e:	5e                   	pop    %esi
49c20f:	5d                   	pop    %ebp
49c210:	c2 0c 00             	ret    $0xc
49c213:	e8 d8 9f 13 00       	call   0x5d61f0
49c218:	cc                   	int3
49c219:	cc                   	int3
49c21a:	cc                   	int3
49c21b:	cc                   	int3
49c21c:	cc                   	int3
49c21d:	cc                   	int3
49c21e:	cc                   	int3
49c21f:	cc                   	int3
49c220:	55                   	push   %ebp
49c221:	8b ec                	mov    %esp,%ebp
49c223:	53                   	push   %ebx
49c224:	8b d9                	mov    %ecx,%ebx
49c226:	56                   	push   %esi
49c227:	8b 33                	mov    (%ebx),%esi
49c229:	85 f6                	test   %esi,%esi
49c22b:	74 4a                	je     0x49c277
49c22d:	57                   	push   %edi
49c22e:	8b 7b 04             	mov    0x4(%ebx),%edi
49c231:	3b f7                	cmp    %edi,%esi
49c233:	74 16                	je     0x49c24b
49c235:	8b 0e                	mov    (%esi),%ecx
49c237:	85 c9                	test   %ecx,%ecx
49c239:	74 07                	je     0x49c242
49c23b:	6a 01                	push   $0x1
49c23d:	e8 7e 23 fe ff       	call   0x47e5c0
49c242:	83 c6 04             	add    $0x4,%esi
49c245:	3b f7                	cmp    %edi,%esi
49c247:	75 ec                	jne    0x49c235
49c249:	8b 33                	mov    (%ebx),%esi
49c24b:	8b 43 08             	mov    0x8(%ebx),%eax
49c24e:	2b c6                	sub    %esi,%eax
49c250:	83 e0 fc             	and    $0xfffffffc,%eax
49c253:	5f                   	pop    %edi
49c254:	3d 00 10 00 00       	cmp    $0x1000,%eax
49c259:	72 12                	jb     0x49c26d
49c25b:	8b 4e fc             	mov    -0x4(%esi),%ecx
49c25e:	83 c0 23             	add    $0x23,%eax
49c261:	2b f1                	sub    %ecx,%esi
49c263:	83 c6 fc             	add    $0xfffffffc,%esi
49c266:	83 fe 1f             	cmp    $0x1f,%esi
49c269:	77 29                	ja     0x49c294
49c26b:	8b f1                	mov    %ecx,%esi
49c26d:	50                   	push   %eax
49c26e:	56                   	push   %esi
49c26f:	e8 e1 4f 13 00       	call   0x5d1255
49c274:	83 c4 08             	add    $0x8,%esp
49c277:	8b 4d 08             	mov    0x8(%ebp),%ecx
49c27a:	8b 45 0c             	mov    0xc(%ebp),%eax
49c27d:	89 0b                	mov    %ecx,(%ebx)
49c27f:	5e                   	pop    %esi
49c280:	8d 04 81             	lea    (%ecx,%eax,4),%eax
49c283:	89 43 04             	mov    %eax,0x4(%ebx)
49c286:	8b 45 10             	mov    0x10(%ebp),%eax
49c289:	8d 04 81             	lea    (%ecx,%eax,4),%eax
49c28c:	89 43 08             	mov    %eax,0x8(%ebx)
49c28f:	5b                   	pop    %ebx
49c290:	5d                   	pop    %ebp
49c291:	c2 0c 00             	ret    $0xc
49c294:	e8 57 9f 13 00       	call   0x5d61f0
49c299:	cc                   	int3
49c29a:	cc                   	int3
49c29b:	cc                   	int3
49c29c:	cc                   	int3
49c29d:	cc                   	int3
49c29e:	cc                   	int3
49c29f:	cc                   	int3
49c2a0:	55                   	push   %ebp
49c2a1:	8b ec                	mov    %esp,%ebp
49c2a3:	56                   	push   %esi
49c2a4:	57                   	push   %edi
49c2a5:	8b f9                	mov    %ecx,%edi
49c2a7:	8b 37                	mov    (%edi),%esi
49c2a9:	85 f6                	test   %esi,%esi
49c2ab:	74 49                	je     0x49c2f6
49c2ad:	53                   	push   %ebx
49c2ae:	8b 5f 04             	mov    0x4(%edi),%ebx
49c2b1:	3b f3                	cmp    %ebx,%esi
49c2b3:	74 15                	je     0x49c2ca
49c2b5:	8b 0e                	mov    (%esi),%ecx
49c2b7:	85 c9                	test   %ecx,%ecx
49c2b9:	74 06                	je     0x49c2c1
49c2bb:	8b 01                	mov    (%ecx),%eax
49c2bd:	6a 01                	push   $0x1
49c2bf:	ff 10                	call   *(%eax)
49c2c1:	83 c6 04             	add    $0x4,%esi
49c2c4:	3b f3                	cmp    %ebx,%esi
49c2c6:	75 ed                	jne    0x49c2b5
49c2c8:	8b 37                	mov    (%edi),%esi
49c2ca:	8b 47 08             	mov    0x8(%edi),%eax
49c2cd:	2b c6                	sub    %esi,%eax
49c2cf:	83 e0 fc             	and    $0xfffffffc,%eax
49c2d2:	5b                   	pop    %ebx
49c2d3:	3d 00 10 00 00       	cmp    $0x1000,%eax
49c2d8:	72 12                	jb     0x49c2ec
49c2da:	8b 4e fc             	mov    -0x4(%esi),%ecx
49c2dd:	83 c0 23             	add    $0x23,%eax
49c2e0:	2b f1                	sub    %ecx,%esi
49c2e2:	83 c6 fc             	add    $0xfffffffc,%esi
49c2e5:	83 fe 1f             	cmp    $0x1f,%esi
49c2e8:	77 29                	ja     0x49c313
49c2ea:	8b f1                	mov    %ecx,%esi
49c2ec:	50                   	push   %eax
49c2ed:	56                   	push   %esi
49c2ee:	e8 62 4f 13 00       	call   0x5d1255
49c2f3:	83 c4 08             	add    $0x8,%esp
49c2f6:	8b 4d 08             	mov    0x8(%ebp),%ecx
49c2f9:	8b 45 0c             	mov    0xc(%ebp),%eax
49c2fc:	89 0f                	mov    %ecx,(%edi)
49c2fe:	8d 04 81             	lea    (%ecx,%eax,4),%eax
49c301:	89 47 04             	mov    %eax,0x4(%edi)
49c304:	8b 45 10             	mov    0x10(%ebp),%eax
49c307:	8d 04 81             	lea    (%ecx,%eax,4),%eax
49c30a:	89 47 08             	mov    %eax,0x8(%edi)
49c30d:	5f                   	pop    %edi
49c30e:	5e                   	pop    %esi
49c30f:	5d                   	pop    %ebp
49c310:	c2 0c 00             	ret    $0xc
49c313:	e8 d8 9e 13 00       	call   0x5d61f0
49c318:	cc                   	int3
49c319:	cc                   	int3
49c31a:	cc                   	int3
49c31b:	cc                   	int3
49c31c:	cc                   	int3
49c31d:	cc                   	int3
49c31e:	cc                   	int3
49c31f:	cc                   	int3
49c320:	55                   	push   %ebp
49c321:	8b ec                	mov    %esp,%ebp
49c323:	57                   	push   %edi
49c324:	8b f9                	mov    %ecx,%edi
49c326:	8b 07                	mov    (%edi),%eax
49c328:	85 c0                	test   %eax,%eax
49c32a:	74 50                	je     0x49c37c
49c32c:	56                   	push   %esi
49c32d:	57                   	push   %edi
49c32e:	ff 77 04             	push   0x4(%edi)
49c331:	50                   	push   %eax
49c332:	e8 f9 c7 fd ff       	call   0x478b30
49c337:	8b 4f 08             	mov    0x8(%edi),%ecx
49c33a:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
49c33f:	8b 37                	mov    (%edi),%esi
49c341:	83 c4 0c             	add    $0xc,%esp
49c344:	2b ce                	sub    %esi,%ecx
49c346:	f7 e9                	imul   %ecx
49c348:	d1 fa                	sar    $1,%edx
49c34a:	8b c2                	mov    %edx,%eax
49c34c:	c1 e8 1f             	shr    $0x1f,%eax
49c34f:	03 c2                	add    %edx,%eax
49c351:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
49c354:	c1 e1 02             	shl    $0x2,%ecx
49c357:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
49c35d:	72 12                	jb     0x49c371
49c35f:	8b 56 fc             	mov    -0x4(%esi),%edx
49c362:	83 c1 23             	add    $0x23,%ecx
49c365:	2b f2                	sub    %edx,%esi
49c367:	8d 46 fc             	lea    -0x4(%esi),%eax
49c36a:	83 f8 1f             	cmp    $0x1f,%eax
49c36d:	77 2f                	ja     0x49c39e
49c36f:	8b f2                	mov    %edx,%esi
49c371:	51                   	push   %ecx
49c372:	56                   	push   %esi
49c373:	e8 dd 4e 13 00       	call   0x5d1255
49c378:	83 c4 08             	add    $0x8,%esp
49c37b:	5e                   	pop    %esi
49c37c:	8b 4d 08             	mov    0x8(%ebp),%ecx
49c37f:	8b 45 0c             	mov    0xc(%ebp),%eax
49c382:	89 0f                	mov    %ecx,(%edi)
49c384:	8d 04 40             	lea    (%eax,%eax,2),%eax
49c387:	8d 04 81             	lea    (%ecx,%eax,4),%eax
49c38a:	89 47 04             	mov    %eax,0x4(%edi)
49c38d:	8b 45 10             	mov    0x10(%ebp),%eax
49c390:	8d 04 40             	lea    (%eax,%eax,2),%eax
49c393:	8d 04 81             	lea    (%ecx,%eax,4),%eax
49c396:	89 47 08             	mov    %eax,0x8(%edi)
49c399:	5f                   	pop    %edi
49c39a:	5d                   	pop    %ebp
49c39b:	c2 0c 00             	ret    $0xc
49c39e:	e8 4d 9e 13 00       	call   0x5d61f0
49c3a3:	cc                   	int3
49c3a4:	cc                   	int3
49c3a5:	cc                   	int3
49c3a6:	cc                   	int3
49c3a7:	cc                   	int3
49c3a8:	cc                   	int3
49c3a9:	cc                   	int3
49c3aa:	cc                   	int3
49c3ab:	cc                   	int3
49c3ac:	cc                   	int3
49c3ad:	cc                   	int3
49c3ae:	cc                   	int3
49c3af:	cc                   	int3
49c3b0:	55                   	push   %ebp
49c3b1:	8b ec                	mov    %esp,%ebp
49c3b3:	53                   	push   %ebx
49c3b4:	8b 5d 08             	mov    0x8(%ebp),%ebx
49c3b7:	56                   	push   %esi
49c3b8:	8b f1                	mov    %ecx,%esi
49c3ba:	57                   	push   %edi
49c3bb:	81 fb ff ff ff 3f    	cmp    $0x3fffffff,%ebx
49c3c1:	0f 87 85 00 00 00    	ja     0x49c44c
49c3c7:	8b 56 08             	mov    0x8(%esi),%edx
49c3ca:	b8 ff ff ff 3f       	mov    $0x3fffffff,%eax
49c3cf:	8b 0e                	mov    (%esi),%ecx
49c3d1:	2b d1                	sub    %ecx,%edx
49c3d3:	c1 fa 02             	sar    $0x2,%edx
49c3d6:	8b fa                	mov    %edx,%edi
49c3d8:	d1 ef                	shr    $1,%edi
49c3da:	2b c7                	sub    %edi,%eax
49c3dc:	3b d0                	cmp    %eax,%edx
49c3de:	76 07                	jbe    0x49c3e7
49c3e0:	bf ff ff ff 3f       	mov    $0x3fffffff,%edi
49c3e5:	eb 07                	jmp    0x49c3ee
49c3e7:	03 fa                	add    %edx,%edi
49c3e9:	3b fb                	cmp    %ebx,%edi
49c3eb:	0f 42 fb             	cmovb  %ebx,%edi
49c3ee:	85 c9                	test   %ecx,%ecx
49c3f0:	74 3b                	je     0x49c42d
49c3f2:	c1 e2 02             	shl    $0x2,%edx
49c3f5:	81 fa 00 10 00 00    	cmp    $0x1000,%edx
49c3fb:	72 12                	jb     0x49c40f
49c3fd:	8b 59 fc             	mov    -0x4(%ecx),%ebx
49c400:	83 c2 23             	add    $0x23,%edx
49c403:	2b cb                	sub    %ebx,%ecx
49c405:	8d 41 fc             	lea    -0x4(%ecx),%eax
49c408:	83 f8 1f             	cmp    $0x1f,%eax
49c40b:	77 3a                	ja     0x49c447
49c40d:	8b cb                	mov    %ebx,%ecx
49c40f:	52                   	push   %edx
49c410:	51                   	push   %ecx
49c411:	e8 3f 4e 13 00       	call   0x5d1255
49c416:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
49c41c:	83 c4 08             	add    $0x8,%esp
49c41f:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
49c426:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
49c42d:	57                   	push   %edi
49c42e:	8b ce                	mov    %esi,%ecx
49c430:	e8 9b ce fc ff       	call   0x4692d0
49c435:	89 06                	mov    %eax,(%esi)
49c437:	89 46 04             	mov    %eax,0x4(%esi)
49c43a:	8d 04 b8             	lea    (%eax,%edi,4),%eax
49c43d:	5f                   	pop    %edi
49c43e:	89 46 08             	mov    %eax,0x8(%esi)
49c441:	5e                   	pop    %esi
49c442:	5b                   	pop    %ebx
49c443:	5d                   	pop    %ebp
49c444:	c2 04 00             	ret    $0x4
49c447:	e8 a4 9d 13 00       	call   0x5d61f0
49c44c:	e8 4f 03 fc ff       	call   0x45c7a0
49c451:	cc                   	int3
49c452:	cc                   	int3
49c453:	cc                   	int3
49c454:	cc                   	int3
49c455:	cc                   	int3
49c456:	cc                   	int3
49c457:	cc                   	int3
49c458:	cc                   	int3
49c459:	cc                   	int3
49c45a:	cc                   	int3
49c45b:	cc                   	int3
49c45c:	cc                   	int3
49c45d:	cc                   	int3
49c45e:	cc                   	int3
49c45f:	cc                   	int3
49c460:	55                   	push   %ebp
49c461:	8b ec                	mov    %esp,%ebp
49c463:	51                   	push   %ecx
49c464:	ff 75 0c             	push   0xc(%ebp)
49c467:	ff 75 08             	push   0x8(%ebp)
49c46a:	e8 21 cf fc ff       	call   0x469390
49c46f:	83 c4 0c             	add    $0xc,%esp
49c472:	5d                   	pop    %ebp
49c473:	c2 08 00             	ret    $0x8
49c476:	cc                   	int3
49c477:	cc                   	int3
49c478:	cc                   	int3
49c479:	cc                   	int3
49c47a:	cc                   	int3
49c47b:	cc                   	int3
49c47c:	cc                   	int3
49c47d:	cc                   	int3
49c47e:	cc                   	int3
49c47f:	cc                   	int3
49c480:	55                   	push   %ebp
49c481:	8b ec                	mov    %esp,%ebp
49c483:	51                   	push   %ecx
49c484:	ff 75 0c             	push   0xc(%ebp)
49c487:	ff 75 08             	push   0x8(%ebp)
49c48a:	e8 a1 c6 fd ff       	call   0x478b30
49c48f:	83 c4 0c             	add    $0xc,%esp
49c492:	5d                   	pop    %ebp
49c493:	c2 08 00             	ret    $0x8
49c496:	cc                   	int3
49c497:	cc                   	int3
49c498:	cc                   	int3
49c499:	cc                   	int3
49c49a:	cc                   	int3
49c49b:	cc                   	int3
49c49c:	cc                   	int3
49c49d:	cc                   	int3
49c49e:	cc                   	int3
49c49f:	cc                   	int3
49c4a0:	55                   	push   %ebp
49c4a1:	8b ec                	mov    %esp,%ebp
49c4a3:	83 ec 08             	sub    $0x8,%esp
49c4a6:	8b 45 08             	mov    0x8(%ebp),%eax
49c4a9:	53                   	push   %ebx
49c4aa:	56                   	push   %esi
49c4ab:	8b d9                	mov    %ecx,%ebx
49c4ad:	89 45 fc             	mov    %eax,-0x4(%ebp)
49c4b0:	57                   	push   %edi
49c4b1:	8d 4d 08             	lea    0x8(%ebp),%ecx
49c4b4:	e8 a7 1e fe ff       	call   0x47e360
49c4b9:	8b 55 fc             	mov    -0x4(%ebp),%edx
49c4bc:	8b 02                	mov    (%edx),%eax
49c4be:	8b 7a 08             	mov    0x8(%edx),%edi
49c4c1:	80 78 0d 00          	cmpb   $0x0,0xd(%eax)
49c4c5:	75 18                	jne    0x49c4df
49c4c7:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)