4ff18b:	eb 0e                	jmp    0x4ff19b
4ff18d:	0f 57 c0             	xorps  %xmm0,%xmm0
4ff190:	66 0f 13 45 a0       	movlpd %xmm0,-0x60(%ebp)
4ff195:	8b 55 a4             	mov    -0x5c(%ebp),%edx
4ff198:	8b 45 a0             	mov    -0x60(%ebp),%eax
4ff19b:	89 46 20             	mov    %eax,0x20(%esi)
4ff19e:	89 56 24             	mov    %edx,0x24(%esi)
4ff1a1:	8b 45 e8             	mov    -0x18(%ebp),%eax
4ff1a4:	57                   	push   %edi
4ff1a5:	50                   	push   %eax
4ff1a6:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
4ff1ac:	e8 ef 49 05 00       	call   0x553ba0
4ff1b1:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4ff1b4:	83 c4 08             	add    $0x8,%esp
4ff1b7:	89 45 e0             	mov    %eax,-0x20(%ebp)
4ff1ba:	89 55 dc             	mov    %edx,-0x24(%ebp)
4ff1bd:	83 39 00             	cmpl   $0x0,(%ecx)
4ff1c0:	74 09                	je     0x4ff1cb
4ff1c2:	ba 00 10 00 00       	mov    $0x1000,%edx
4ff1c7:	66 09 56 0a          	or     %dx,0xa(%esi)
4ff1cb:	f6 47 04 01          	testb  $0x1,0x4(%edi)
4ff1cf:	74 58                	je     0x4ff229
4ff1d1:	0f bf 47 24          	movswl 0x24(%edi),%eax
4ff1d5:	50                   	push   %eax
4ff1d6:	51                   	push   %ecx
4ff1d7:	e8 94 4b 05 00       	call   0x553d70
4ff1dc:	09 55 dc             	or     %edx,-0x24(%ebp)
4ff1df:	8b c8                	mov    %eax,%ecx
4ff1e1:	8b 45 e0             	mov    -0x20(%ebp),%eax
4ff1e4:	83 c4 08             	add    $0x8,%esp
4ff1e7:	0b c1                	or     %ecx,%eax
4ff1e9:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4ff1ec:	83 45 d4 ff          	addl   $0xffffffff,-0x2c(%ebp)
4ff1f0:	89 45 e0             	mov    %eax,-0x20(%ebp)
4ff1f3:	89 45 bc             	mov    %eax,-0x44(%ebp)
4ff1f6:	8b 45 dc             	mov    -0x24(%ebp),%eax
4ff1f9:	89 55 d0             	mov    %edx,-0x30(%ebp)
4ff1fc:	83 55 d0 ff          	adcl   $0xffffffff,-0x30(%ebp)
4ff200:	0f ac 45 bc 01       	shrd   $0x1,%eax,-0x44(%ebp)
4ff205:	d1 e8                	shr    $1,%eax
4ff207:	3b c2                	cmp    %edx,%eax
4ff209:	72 2c                	jb     0x4ff237
4ff20b:	77 05                	ja     0x4ff212
4ff20d:	39 4d bc             	cmp    %ecx,-0x44(%ebp)
4ff210:	72 25                	jb     0x4ff237
4ff212:	68 e8 ba 6b 00       	push   $0x6bbae8
4ff217:	ff 75 f4             	push   -0xc(%ebp)
4ff21a:	e8 41 40 02 00       	call   0x523260
4ff21f:	83 c4 08             	add    $0x8,%esp
4ff222:	5f                   	pop    %edi
4ff223:	5e                   	pop    %esi
4ff224:	5b                   	pop    %ebx
4ff225:	8b e5                	mov    %ebp,%esp
4ff227:	5d                   	pop    %ebp
4ff228:	c3                   	ret
4ff229:	8b 4d b0             	mov    -0x50(%ebp),%ecx
4ff22c:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4ff22f:	8b 4d ac             	mov    -0x54(%ebp),%ecx
4ff232:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
4ff235:	eb 03                	jmp    0x4ff23a
4ff237:	8b 45 e0             	mov    -0x20(%ebp),%eax
4ff23a:	89 46 28             	mov    %eax,0x28(%esi)
4ff23d:	8b 45 dc             	mov    -0x24(%ebp),%eax
4ff240:	89 46 2c             	mov    %eax,0x2c(%esi)
4ff243:	33 c0                	xor    %eax,%eax
4ff245:	66 89 46 0c          	mov    %ax,0xc(%esi)
4ff249:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4ff24c:	c7 46 14 ff ff ff ff 	movl   $0xffffffff,0x14(%esi)
4ff253:	c7 46 10 ff ff ff ff 	movl   $0xffffffff,0x10(%esi)
4ff25a:	83 f8 31             	cmp    $0x31,%eax
4ff25d:	0f 84 33 01 00 00    	je     0x4ff396
4ff263:	83 f8 35             	cmp    $0x35,%eax
4ff266:	72 09                	jb     0x4ff271
4ff268:	83 f8 39             	cmp    $0x39,%eax
4ff26b:	0f 86 25 01 00 00    	jbe    0x4ff396
4ff271:	83 f8 32             	cmp    $0x32,%eax
4ff274:	0f 84 1c 01 00 00    	je     0x4ff396
4ff27a:	83 f8 2d             	cmp    $0x2d,%eax
4ff27d:	0f 84 13 01 00 00    	je     0x4ff396
4ff283:	8a 07                	mov    (%edi),%al
4ff285:	3c 30                	cmp    $0x30,%al
4ff287:	0f 85 e2 00 00 00    	jne    0x4ff36f
4ff28d:	80 7b 08 2c          	cmpb   $0x2c,0x8(%ebx)
4ff291:	0f 85 d8 00 00 00    	jne    0x4ff36f
4ff297:	8b 47 14             	mov    0x14(%edi),%eax
4ff29a:	83 c0 04             	add    $0x4,%eax
4ff29d:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
4ff2a4:	89 45 b8             	mov    %eax,-0x48(%ebp)
4ff2a7:	8b 00                	mov    (%eax),%eax
4ff2a9:	85 c0                	test   %eax,%eax
4ff2ab:	74 14                	je     0x4ff2c1
4ff2ad:	6a 00                	push   $0x0
4ff2af:	6a 00                	push   $0x0
4ff2b1:	50                   	push   %eax
4ff2b2:	ff 75 ec             	push   -0x14(%ebp)
4ff2b5:	e8 a6 15 00 00       	call   0x500860
4ff2ba:	83 c4 10             	add    $0x10,%esp
4ff2bd:	8b f0                	mov    %eax,%esi
4ff2bf:	eb 02                	jmp    0x4ff2c3
4ff2c1:	33 f6                	xor    %esi,%esi
4ff2c3:	8b 47 0c             	mov    0xc(%edi),%eax
4ff2c6:	85 c0                	test   %eax,%eax
4ff2c8:	74 12                	je     0x4ff2dc
4ff2ca:	6a 00                	push   $0x0
4ff2cc:	6a 00                	push   $0x0
4ff2ce:	50                   	push   %eax
4ff2cf:	ff 75 ec             	push   -0x14(%ebp)
4ff2d2:	e8 89 15 00 00       	call   0x500860
4ff2d7:	83 c4 10             	add    $0x10,%esp
4ff2da:	eb 02                	jmp    0x4ff2de
4ff2dc:	33 c0                	xor    %eax,%eax
4ff2de:	56                   	push   %esi
4ff2df:	50                   	push   %eax
4ff2e0:	8b 45 bc             	mov    -0x44(%ebp),%eax
4ff2e3:	0f b6 80 7c 31 6b 00 	movzbl 0x6b317c(%eax),%eax
4ff2ea:	50                   	push   %eax
4ff2eb:	ff 75 f4             	push   -0xc(%ebp)
4ff2ee:	e8 1d 2d 03 00       	call   0x532010
4ff2f3:	83 c4 10             	add    $0x10,%esp
4ff2f6:	85 c0                	test   %eax,%eax
4ff2f8:	74 11                	je     0x4ff30b
4ff2fa:	8b 4f 04             	mov    0x4(%edi),%ecx
4ff2fd:	83 e1 01             	and    $0x1,%ecx
4ff300:	09 48 04             	or     %ecx,0x4(%eax)
4ff303:	66 8b 4f 24          	mov    0x24(%edi),%cx
4ff307:	66 89 48 24          	mov    %cx,0x24(%eax)
4ff30b:	6a 03                	push   $0x3
4ff30d:	50                   	push   %eax
4ff30e:	53                   	push   %ebx
4ff30f:	e8 fc 10 06 00       	call   0x560410
4ff314:	8b f0                	mov    %eax,%esi
4ff316:	56                   	push   %esi
4ff317:	53                   	push   %ebx
4ff318:	ff 75 08             	push   0x8(%ebp)
4ff31b:	e8 70 fd ff ff       	call   0x4ff090
4ff320:	8b 4b 14             	mov    0x14(%ebx),%ecx
4ff323:	8d 14 76             	lea    (%esi,%esi,2),%edx
4ff326:	8b 45 f8             	mov    -0x8(%ebp),%eax
4ff329:	03 d2                	add    %edx,%edx
4ff32b:	8b 75 f8             	mov    -0x8(%ebp),%esi
4ff32e:	03 c1                	add    %ecx,%eax
4ff330:	89 45 f0             	mov    %eax,-0x10(%ebp)
4ff333:	83 c4 18             	add    $0x18,%esp
4ff336:	8b 45 10             	mov    0x10(%ebp),%eax
4ff339:	89 44 d1 10          	mov    %eax,0x10(%ecx,%edx,8)
4ff33d:	8b 4b 14             	mov    0x14(%ebx),%ecx
4ff340:	66 8b 44 31 08       	mov    0x8(%ecx,%esi,1),%ax
4ff345:	66 89 44 d1 08       	mov    %ax,0x8(%ecx,%edx,8)
4ff34a:	8b 43 14             	mov    0x14(%ebx),%eax
4ff34d:	8b 4d bc             	mov    -0x44(%ebp),%ecx
4ff350:	41                   	inc    %ecx
4ff351:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4ff354:	fe 44 30 0e          	incb   0xe(%eax,%esi,1)
4ff358:	8b 45 b8             	mov    -0x48(%ebp),%eax
4ff35b:	83 c0 14             	add    $0x14,%eax
4ff35e:	89 45 b8             	mov    %eax,-0x48(%ebp)
4ff361:	83 f9 02             	cmp    $0x2,%ecx
4ff364:	0f 8c 3d ff ff ff    	jl     0x4ff2a7
4ff36a:	e9 f6 01 00 00       	jmp    0x4ff565
4ff36f:	3c 2b                	cmp    $0x2b,%al
4ff371:	0f 85 f1 01 00 00    	jne    0x4ff568
4ff377:	ff 75 10             	push   0x10(%ebp)
4ff37a:	53                   	push   %ebx
4ff37b:	ff 75 08             	push   0x8(%ebp)
4ff37e:	e8 fd 07 00 00       	call   0x4ffb80
4ff383:	8b 73 14             	mov    0x14(%ebx),%esi
4ff386:	83 c4 0c             	add    $0xc,%esp
4ff389:	8b 45 f8             	mov    -0x8(%ebp),%eax
4ff38c:	03 f0                	add    %eax,%esi
4ff38e:	89 75 f0             	mov    %esi,-0x10(%ebp)
4ff391:	e9 d2 01 00 00       	jmp    0x4ff568
4ff396:	ff 77 0c             	push   0xc(%edi)
4ff399:	e8 82 89 02 00       	call   0x527d20
4ff39e:	ff 77 10             	push   0x10(%edi)
4ff3a1:	89 45 bc             	mov    %eax,-0x44(%ebp)
4ff3a4:	e8 77 89 02 00       	call   0x527d20
4ff3a9:	8b 56 20             	mov    0x20(%esi),%edx
4ff3ac:	83 c4 08             	add    $0x8,%esp
4ff3af:	8b 4e 24             	mov    0x24(%esi),%ecx
4ff3b2:	23 55 cc             	and    -0x34(%ebp),%edx
4ff3b5:	23 4d c8             	and    -0x38(%ebp),%ecx
4ff3b8:	0b d1                	or     %ecx,%edx
4ff3ba:	89 45 b0             	mov    %eax,-0x50(%ebp)
4ff3bd:	c7 45 b8 ff 1f 00 00 	movl   $0x1fff,-0x48(%ebp)
4ff3c4:	74 07                	je     0x4ff3cd
4ff3c6:	c7 45 b8 00 08 00 00 	movl   $0x800,-0x48(%ebp)
4ff3cd:	8b 46 18             	mov    0x18(%esi),%eax
4ff3d0:	85 c0                	test   %eax,%eax
4ff3d2:	7e 0f                	jle    0x4ff3e3
4ff3d4:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
4ff3d7:	8b 45 bc             	mov    -0x44(%ebp),%eax
4ff3da:	8b 40 14             	mov    0x14(%eax),%eax
4ff3dd:	8b 44 88 f0          	mov    -0x10(%eax,%ecx,4),%eax
4ff3e1:	eb 03                	jmp    0x4ff3e6
4ff3e3:	8b 45 bc             	mov    -0x44(%ebp),%eax
4ff3e6:	ff 75 e4             	push   -0x1c(%ebp)
4ff3e9:	50                   	push   %eax
4ff3ea:	8d 45 a0             	lea    -0x60(%ebp),%eax
4ff3ed:	50                   	push   %eax
4ff3ee:	ff 75 c8             	push   -0x38(%ebp)
4ff3f1:	ff 75 cc             	push   -0x34(%ebp)
4ff3f4:	ff 75 08             	push   0x8(%ebp)
4ff3f7:	e8 14 1d 00 00       	call   0x501110
4ff3fc:	83 c4 18             	add    $0x18,%esp
4ff3ff:	85 c0                	test   %eax,%eax
4ff401:	74 1f                	je     0x4ff422
4ff403:	8b 45 a0             	mov    -0x60(%ebp),%eax
4ff406:	ff 75 e4             	push   -0x1c(%ebp)
4ff409:	89 46 14             	mov    %eax,0x14(%esi)
4ff40c:	8b 45 a4             	mov    -0x5c(%ebp),%eax
4ff40f:	89 46 1c             	mov    %eax,0x1c(%esi)
4ff412:	e8 39 cc 00 00       	call   0x50c050
4ff417:	83 c4 04             	add    $0x4,%esp
4ff41a:	66 23 45 b8          	and    -0x48(%ebp),%ax
4ff41e:	66 89 46 0c          	mov    %ax,0xc(%esi)
4ff422:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4ff425:	b9 00 08 00 00       	mov    $0x800,%ecx
4ff42a:	83 f8 2d             	cmp    $0x2d,%eax
4ff42d:	75 04                	jne    0x4ff433
4ff42f:	66 09 4e 0a          	or     %cx,0xa(%esi)
4ff433:	8b 4d b0             	mov    -0x50(%ebp),%ecx
4ff436:	85 c9                	test   %ecx,%ecx
4ff438:	0f 84 2a 01 00 00    	je     0x4ff568
4ff43e:	50                   	push   %eax
4ff43f:	51                   	push   %ecx
4ff440:	8d 45 a0             	lea    -0x60(%ebp),%eax
4ff443:	50                   	push   %eax
4ff444:	ff 76 24             	push   0x24(%esi)
4ff447:	ff 76 20             	push   0x20(%esi)
4ff44a:	ff 75 08             	push   0x8(%ebp)
4ff44d:	e8 be 1c 00 00       	call   0x501110
4ff452:	83 c4 18             	add    $0x18,%esp
4ff455:	85 c0                	test   %eax,%eax
4ff457:	0f 84 0b 01 00 00    	je     0x4ff568
4ff45d:	83 7e 14 00          	cmpl   $0x0,0x14(%esi)
4ff461:	c7 45 b0 00 00 00 00 	movl   $0x0,-0x50(%ebp)
4ff468:	0f 8c 9c 00 00 00    	jl     0x4ff50a
4ff46e:	8b 75 ec             	mov    -0x14(%ebp),%esi
4ff471:	6a 00                	push   $0x0
4ff473:	57                   	push   %edi
4ff474:	56                   	push   %esi
4ff475:	e8 e6 73 02 00       	call   0x526860
4ff47a:	83 c4 0c             	add    $0xc,%esp
4ff47d:	89 45 bc             	mov    %eax,-0x44(%ebp)
4ff480:	80 7e 51 00          	cmpb   $0x0,0x51(%esi)
4ff484:	74 19                	je     0x4ff49f
4ff486:	85 c0                	test   %eax,%eax
4ff488:	0f 84 dc 06 00 00    	je     0x4ffb6a
4ff48e:	50                   	push   %eax
4ff48f:	56                   	push   %esi
4ff490:	e8 1b 73 02 00       	call   0x5267b0
4ff495:	83 c4 08             	add    $0x8,%esp
4ff498:	5f                   	pop    %edi
4ff499:	5e                   	pop    %esi
4ff49a:	5b                   	pop    %ebx
4ff49b:	8b e5                	mov    %ebp,%esp
4ff49d:	5d                   	pop    %ebp
4ff49e:	c3                   	ret
4ff49f:	6a 03                	push   $0x3
4ff4a1:	50                   	push   %eax
4ff4a2:	53                   	push   %ebx
4ff4a3:	e8 68 0f 06 00       	call   0x560410
4ff4a8:	83 c4 0c             	add    $0xc,%esp
4ff4ab:	85 c0                	test   %eax,%eax
4ff4ad:	0f 84 b7 06 00 00    	je     0x4ffb6a
4ff4b3:	ff 75 10             	push   0x10(%ebp)
4ff4b6:	8d 34 40             	lea    (%eax,%eax,2),%esi
4ff4b9:	c1 e6 04             	shl    $0x4,%esi
4ff4bc:	03 73 14             	add    0x14(%ebx),%esi
4ff4bf:	50                   	push   %eax
4ff4c0:	53                   	push   %ebx
4ff4c1:	89 75 b4             	mov    %esi,-0x4c(%ebp)
4ff4c4:	e8 67 9f 00 00       	call   0x509430
4ff4c9:	83 c4 0c             	add    $0xc,%esp
4ff4cc:	83 7d e4 2d          	cmpl   $0x2d,-0x1c(%ebp)
4ff4d0:	75 09                	jne    0x4ff4db
4ff4d2:	b8 00 08 00 00       	mov    $0x800,%eax
4ff4d7:	66 09 46 0a          	or     %ax,0xa(%esi)
4ff4db:	8b 73 14             	mov    0x14(%ebx),%esi
4ff4de:	03 75 f8             	add    -0x8(%ebp),%esi
4ff4e1:	8b 45 bc             	mov    -0x44(%ebp),%eax
4ff4e4:	50                   	push   %eax
4ff4e5:	ff 75 f4             	push   -0xc(%ebp)
4ff4e8:	66 83 4e 0a 08       	orw    $0x8,0xa(%esi)
4ff4ed:	89 75 f0             	mov    %esi,-0x10(%ebp)
4ff4f0:	e8 8b 91 05 00       	call   0x558680
4ff4f5:	83 c4 08             	add    $0x8,%esp
4ff4f8:	85 c0                	test   %eax,%eax
4ff4fa:	74 14                	je     0x4ff510
4ff4fc:	b8 00 08 00 00       	mov    $0x800,%eax
4ff501:	66 09 46 0c          	or     %ax,0xc(%esi)
4ff505:	89 45 b0             	mov    %eax,-0x50(%ebp)
4ff508:	eb 06                	jmp    0x4ff510
4ff50a:	89 7d bc             	mov    %edi,-0x44(%ebp)
4ff50d:	89 75 b4             	mov    %esi,-0x4c(%ebp)
4ff510:	8b 75 bc             	mov    -0x44(%ebp),%esi
4ff513:	56                   	push   %esi
4ff514:	ff 75 f4             	push   -0xc(%ebp)
4ff517:	e8 84 11 00 00       	call   0x5006a0
4ff51c:	8b 55 b4             	mov    -0x4c(%ebp),%edx
4ff51f:	8b 4d c8             	mov    -0x38(%ebp),%ecx
4ff522:	0b 4d d0             	or     -0x30(%ebp),%ecx
4ff525:	66 09 42 0a          	or     %ax,0xa(%edx)
4ff529:	8b 45 a0             	mov    -0x60(%ebp),%eax
4ff52c:	89 42 14             	mov    %eax,0x14(%edx)
4ff52f:	8b 45 a4             	mov    -0x5c(%ebp),%eax
4ff532:	89 42 1c             	mov    %eax,0x1c(%edx)
4ff535:	8b 45 cc             	mov    -0x34(%ebp),%eax
4ff538:	0b 45 d4             	or     -0x2c(%ebp),%eax
4ff53b:	89 42 20             	mov    %eax,0x20(%edx)
4ff53e:	8b 45 e0             	mov    -0x20(%ebp),%eax
4ff541:	89 42 28             	mov    %eax,0x28(%edx)
4ff544:	8b 45 dc             	mov    -0x24(%ebp),%eax
4ff547:	89 4a 24             	mov    %ecx,0x24(%edx)
4ff54a:	89 42 2c             	mov    %eax,0x2c(%edx)
4ff54d:	0f b6 06             	movzbl (%esi),%eax
4ff550:	50                   	push   %eax
4ff551:	e8 fa ca 00 00       	call   0x50c050
4ff556:	66 03 45 b0          	add    -0x50(%ebp),%ax
4ff55a:	83 c4 0c             	add    $0xc,%esp
4ff55d:	66 23 45 b8          	and    -0x48(%ebp),%ax
4ff561:	66 89 42 0c          	mov    %ax,0xc(%edx)
4ff565:	8b 75 f0             	mov    -0x10(%ebp),%esi
4ff568:	80 7b 08 2c          	cmpb   $0x2c,0x8(%ebx)
4ff56c:	0f 85 47 05 00 00    	jne    0x4ffab9
4ff572:	8d 45 c0             	lea    -0x40(%ebp),%eax
4ff575:	50                   	push   %eax
4ff576:	8d 45 c4             	lea    -0x3c(%ebp),%eax
4ff579:	50                   	push   %eax
4ff57a:	8d 45 d8             	lea    -0x28(%ebp),%eax
4ff57d:	50                   	push   %eax
4ff57e:	57                   	push   %edi
4ff57f:	ff 75 f4             	push   -0xc(%ebp)
4ff582:	e8 b9 87 00 00       	call   0x507d40
4ff587:	83 c4 14             	add    $0x14,%esp
4ff58a:	85 c0                	test   %eax,%eax
4ff58c:	0f 84 3b 02 00 00    	je     0x4ff7cd
4ff592:	8b 47 14             	mov    0x14(%edi),%eax
4ff595:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4ff598:	8b 40 18             	mov    0x18(%eax),%eax
4ff59b:	89 45 b0             	mov    %eax,-0x50(%ebp)
4ff59e:	85 c9                	test   %ecx,%ecx
4ff5a0:	74 18                	je     0x4ff5ba
4ff5a2:	6a 00                	push   $0x0
4ff5a4:	6a 00                	push   $0x0
4ff5a6:	51                   	push   %ecx
4ff5a7:	ff 75 ec             	push   -0x14(%ebp)
4ff5aa:	e8 b1 12 00 00       	call   0x500860
4ff5af:	8b 4d d8             	mov    -0x28(%ebp),%ecx
4ff5b2:	83 c4 10             	add    $0x10,%esp