547fa5:	83 fe 05             	cmp    $0x5,%esi
547fa8:	75 2d                	jne    0x547fd7
547faa:	50                   	push   %eax
547fab:	e8 e0 5c ff ff       	call   0x53dc90
547fb0:	83 c4 04             	add    $0x4,%esp
547fb3:	85 c0                	test   %eax,%eax
547fb5:	74 0d                	je     0x547fc4
547fb7:	53                   	push   %ebx
547fb8:	e8 53 b9 fe ff       	call   0x533910
547fbd:	83 c4 04             	add    $0x4,%esp
547fc0:	85 c0                	test   %eax,%eax
547fc2:	75 0d                	jne    0x547fd1
547fc4:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
547fca:	8b f0                	mov    %eax,%esi
547fcc:	e9 91 00 00 00       	jmp    0x548062
547fd1:	8b 8d 84 fe ff ff    	mov    -0x17c(%ebp),%ecx
547fd7:	3b f1                	cmp    %ecx,%esi
547fd9:	0f 84 7d 00 00 00    	je     0x54805c
547fdf:	83 f9 05             	cmp    $0x5,%ecx
547fe2:	74 05                	je     0x547fe9
547fe4:	83 fe 05             	cmp    $0x5,%esi
547fe7:	75 73                	jne    0x54805c
547fe9:	80 7f 4f 00          	cmpb   $0x0,0x4f(%edi)
547fed:	0f 84 ad 0f 00 00    	je     0x548fa0
547ff3:	83 bf b4 00 00 00 01 	cmpl   $0x1,0xb4(%edi)
547ffa:	0f 8f a0 0f 00 00    	jg     0x548fa0
548000:	83 f9 05             	cmp    $0x5,%ecx
548003:	75 20                	jne    0x548025
548005:	57                   	push   %edi
548006:	53                   	push   %ebx
548007:	e8 04 a4 fe ff       	call   0x532410
54800c:	83 c4 08             	add    $0x8,%esp
54800f:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
548015:	85 c0                	test   %eax,%eax
548017:	75 43                	jne    0x54805c
548019:	56                   	push   %esi
54801a:	53                   	push   %ebx
54801b:	e8 70 b3 fe ff       	call   0x533390
548020:	83 c4 08             	add    $0x8,%esp
548023:	eb 19                	jmp    0x54803e
548025:	83 f9 04             	cmp    $0x4,%ecx
548028:	75 0b                	jne    0x548035
54802a:	6a 02                	push   $0x2
54802c:	53                   	push   %ebx
54802d:	e8 5e b3 fe ff       	call   0x533390
548032:	83 c4 08             	add    $0x8,%esp
548035:	83 bd 94 fe ff ff 00 	cmpl   $0x0,-0x16c(%ebp)
54803c:	75 1e                	jne    0x54805c
54803e:	33 c0                	xor    %eax,%eax
548040:	83 fe 05             	cmp    $0x5,%esi
548043:	0f 94 c0             	sete   %al
548046:	40                   	inc    %eax
548047:	50                   	push   %eax
548048:	ff b5 70 fe ff ff    	push   -0x190(%ebp)
54804e:	e8 5d 5c fd ff       	call   0x51dcb0
548053:	83 c4 08             	add    $0x8,%esp
548056:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54805c:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
548062:	83 bd 94 fe ff ff 00 	cmpl   $0x0,-0x16c(%ebp)
548069:	0f 44 c6             	cmove  %esi,%eax
54806c:	50                   	push   %eax
54806d:	53                   	push   %ebx
54806e:	e8 1d b3 fe ff       	call   0x533390
548073:	8b 9d 88 fe ff ff    	mov    -0x178(%ebp),%ebx
548079:	83 c4 08             	add    $0x8,%esp
54807c:	b9 02 0a 00 00       	mov    $0xa02,%ecx
548081:	66 89 4b 08          	mov    %cx,0x8(%ebx)
548085:	83 f8 06             	cmp    $0x6,%eax
548088:	75 04                	jne    0x54808e
54808a:	33 c0                	xor    %eax,%eax
54808c:	eb 07                	jmp    0x548095
54808e:	8b 04 85 3c 31 6b 00 	mov    0x6b313c(,%eax,4),%eax
548095:	50                   	push   %eax
548096:	89 43 10             	mov    %eax,0x10(%ebx)
548099:	e8 f2 5b ff ff       	call   0x53dc90
54809e:	89 43 0c             	mov    %eax,0xc(%ebx)
5480a1:	0f b6 85 60 fe ff ff 	movzbl -0x1a0(%ebp),%eax
5480a8:	50                   	push   %eax
5480a9:	53                   	push   %ebx
5480aa:	c6 43 0a 01          	movb   $0x1,0xa(%ebx)
5480ae:	e8 0d 9e ff ff       	call   0x541ec0
5480b3:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
5480b9:	83 c4 0c             	add    $0xc,%esp
5480bc:	e9 48 b8 ff ff       	jmp    0x543909
5480c1:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5480c7:	8b 42 08             	mov    0x8(%edx),%eax
5480ca:	85 c0                	test   %eax,%eax
5480cc:	74 0e                	je     0x5480dc
5480ce:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
5480d4:	8d 04 80             	lea    (%eax,%eax,4),%eax
5480d7:	8d 04 c3             	lea    (%ebx,%eax,8),%eax
5480da:	eb 02                	jmp    0x5480de
5480dc:	33 c0                	xor    %eax,%eax
5480de:	50                   	push   %eax
5480df:	ff 72 04             	push   0x4(%edx)
5480e2:	8d 41 7c             	lea    0x7c(%ecx),%eax
5480e5:	57                   	push   %edi
5480e6:	50                   	push   %eax
5480e7:	e8 e4 10 ff ff       	call   0x5391d0
5480ec:	83 c4 10             	add    $0x10,%esp
5480ef:	e9 0f b8 ff ff       	jmp    0x543903
5480f4:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5480fa:	8b 47 10             	mov    0x10(%edi),%eax
5480fd:	8b 4a 04             	mov    0x4(%edx),%ecx
548100:	03 c9                	add    %ecx,%ecx
548102:	ff 74 c8 04          	push   0x4(%eax,%ecx,8)
548106:	e8 65 3a fd ff       	call   0x51bb70
54810b:	83 c4 04             	add    $0x4,%esp
54810e:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
548114:	85 c0                	test   %eax,%eax
548116:	0f 84 4a aa ff ff    	je     0x542b66
54811c:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548122:	83 f8 65             	cmp    $0x65,%eax
548125:	0f 85 d9 0d 00 00    	jne    0x548f04
54812b:	c7 85 94 fe ff ff 00 	movl   $0x0,-0x16c(%ebp)
548132:	00 00 00
548135:	e9 e2 a7 ff ff       	jmp    0x54291c
54813a:	83 7e 04 00          	cmpl   $0x0,0x4(%esi)
54813e:	75 26                	jne    0x548166
548140:	ff 76 08             	push   0x8(%esi)
548143:	57                   	push   %edi
548144:	e8 47 b3 fd ff       	call   0x523490
548149:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54814f:	83 c4 08             	add    $0x8,%esp
548152:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
548158:	83 c6 14             	add    $0x14,%esi
54815b:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
548161:	e9 4e a7 ff ff       	jmp    0x5428b4
548166:	8b 46 08             	mov    0x8(%esi),%eax
548169:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54816f:	40                   	inc    %eax
548170:	33 81 98 00 00 00    	xor    0x98(%ecx),%eax
548176:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
54817c:	83 e0 03             	and    $0x3,%eax
54817f:	31 81 98 00 00 00    	xor    %eax,0x98(%ecx)
548185:	83 c6 14             	add    $0x14,%esi
548188:	e9 27 a7 ff ff       	jmp    0x5428b4
54818d:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
548193:	8b 4e 04             	mov    0x4(%esi),%ecx
548196:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54819c:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5481a2:	8b 40 60             	mov    0x60(%eax),%eax
5481a5:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5481a8:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5481ae:	8b 40 28             	mov    0x28(%eax),%eax
5481b1:	80 48 01 40          	orb    $0x40,0x1(%eax)
5481b5:	83 c6 14             	add    $0x14,%esi
5481b8:	e9 f7 a6 ff ff       	jmp    0x5428b4
5481bd:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5481c3:	8b 4e 04             	mov    0x4(%esi),%ecx
5481c6:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5481cc:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5481d2:	8b 40 60             	mov    0x60(%eax),%eax
5481d5:	8b 04 88             	mov    (%eax,%ecx,4),%eax
5481d8:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5481de:	8b 40 28             	mov    0x28(%eax),%eax
5481e1:	80 60 01 bf          	andb   $0xbf,0x1(%eax)
5481e5:	83 c6 14             	add    $0x14,%esi
5481e8:	e9 c7 a6 ff ff       	jmp    0x5428b4
5481ed:	8a 46 0c             	mov    0xc(%esi),%al
5481f0:	88 85 dc fd ff ff    	mov    %al,-0x224(%ebp)
5481f6:	84 c0                	test   %al,%al
5481f8:	75 21                	jne    0x54821b
5481fa:	8b 47 20             	mov    0x20(%edi),%eax
5481fd:	25 00 04 00 00       	and    $0x400,%eax
548202:	89 85 74 fe ff ff    	mov    %eax,-0x18c(%ebp)
548208:	b8 00 00 00 00       	mov    $0x0,%eax
54820d:	0f 85 5f a9 ff ff    	jne    0x542b72
548213:	85 c0                	test   %eax,%eax
548215:	0f 85 57 a9 ff ff    	jne    0x542b72
54821b:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
548221:	ff b5 dc fd ff ff    	push   -0x224(%ebp)
548227:	8b 48 04             	mov    0x4(%eax),%ecx
54822a:	ff 70 08             	push   0x8(%eax)
54822d:	8b 47 10             	mov    0x10(%edi),%eax
548230:	03 c9                	add    %ecx,%ecx
548232:	ff 74 c8 04          	push   0x4(%eax,%ecx,8)
548236:	e8 b5 45 fd ff       	call   0x51c7f0
54823b:	83 c4 0c             	add    $0xc,%esp
54823e:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
548244:	85 c0                	test   %eax,%eax
548246:	0f 84 1a a9 ff ff    	je     0x542b66
54824c:	3c 06                	cmp    $0x6,%al
54824e:	0f 85 aa 0c 00 00    	jne    0x548efe
548254:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
54825a:	ff 70 10             	push   0x10(%eax)
54825d:	68 cc 8a 6b 00       	push   $0x6b8acc
548262:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
548268:	e8 43 a5 ff ff       	call   0x5427b0
54826d:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
548273:	83 c4 0c             	add    $0xc,%esp
548276:	e9 83 0c 00 00       	jmp    0x548efe
54827b:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
548281:	8b 72 10             	mov    0x10(%edx),%esi
548284:	56                   	push   %esi
548285:	57                   	push   %edi
548286:	e8 d5 5b 00 00       	call   0x54de60
54828b:	83 c4 08             	add    $0x8,%esp
54828e:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
548294:	85 f6                	test   %esi,%esi
548296:	0f 84 6d b6 ff ff    	je     0x543909
54829c:	ff 76 08             	push   0x8(%esi)
54829f:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
5482a5:	e8 76 65 00 00       	call   0x54e820
5482aa:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
5482b0:	83 c4 08             	add    $0x8,%esp
5482b3:	e9 51 b6 ff ff       	jmp    0x543909
5482b8:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5482be:	0f 57 c0             	xorps  %xmm0,%xmm0
5482c1:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
5482c7:	66 0f d6 85 e8 fe ff 	movq   %xmm0,-0x118(%ebp)
5482ce:	ff
5482cf:	0f 11 85 c8 fe ff ff 	movups %xmm0,-0x138(%ebp)
5482d6:	8b 42 08             	mov    0x8(%edx),%eax
5482d9:	0f 11 85 d8 fe ff ff 	movups %xmm0,-0x128(%ebp)
5482e0:	89 bd e8 fe ff ff    	mov    %edi,-0x118(%ebp)
5482e6:	8d 04 80             	lea    (%eax,%eax,4),%eax
5482e9:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
5482ec:	50                   	push   %eax
5482ed:	8d 85 c8 fe ff ff    	lea    -0x138(%ebp),%eax
5482f3:	50                   	push   %eax
5482f4:	e8 17 30 00 00       	call   0x54b310
5482f9:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5482ff:	8d 85 c8 fe ff ff    	lea    -0x138(%ebp),%eax
548305:	50                   	push   %eax
548306:	e8 35 a3 f9 ff       	call   0x4e2640
54830b:	83 c4 0c             	add    $0xc,%esp
54830e:	85 c0                	test   %eax,%eax
548310:	74 23                	je     0x548335
548312:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548318:	83 c1 7c             	add    $0x7c,%ecx
54831b:	51                   	push   %ecx
54831c:	50                   	push   %eax
54831d:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
548323:	ff 70 04             	push   0x4(%eax)
548326:	57                   	push   %edi
548327:	e8 e4 5d 00 00       	call   0x54e110
54832c:	83 c4 10             	add    $0x10,%esp
54832f:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
548335:	8d 85 c8 fe ff ff    	lea    -0x138(%ebp),%eax
54833b:	50                   	push   %eax
54833c:	e8 2f 36 00 00       	call   0x54b970
548341:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
548347:	83 c4 04             	add    $0x4,%esp
54834a:	e9 ba b5 ff ff       	jmp    0x543909
54834f:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
548355:	ff 87 c0 00 00 00    	incl   0xc0(%edi)
54835b:	ff 72 10             	push   0x10(%edx)
54835e:	ff 72 04             	push   0x4(%edx)
548361:	57                   	push   %edi
548362:	e8 89 5e 00 00       	call   0x54e1f0
548367:	83 c4 0c             	add    $0xc,%esp
54836a:	ff 8f c0 00 00 00    	decl   0xc0(%edi)
548370:	e9 8e b5 ff ff       	jmp    0x543903
548375:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54837b:	c7 45 a8 00 00 00 00 	movl   $0x0,-0x58(%ebp)
548382:	8b 42 10             	mov    0x10(%edx),%eax
548385:	8b 70 08             	mov    0x8(%eax),%esi
548388:	85 f6                	test   %esi,%esi
54838a:	0f 84 b1 0c 00 00    	je     0x549041
548390:	8b 1e                	mov    (%esi),%ebx
548392:	85 db                	test   %ebx,%ebx
548394:	0f 84 a7 0c 00 00    	je     0x549041
54839a:	8d 45 a8             	lea    -0x58(%ebp),%eax
54839d:	50                   	push   %eax
54839e:	8b 43 18             	mov    0x18(%ebx),%eax
5483a1:	56                   	push   %esi
5483a2:	ff d0                	call   *%eax
5483a4:	56                   	push   %esi
5483a5:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
5483ab:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5483b1:	e8 6a 64 00 00       	call   0x54e820
5483b6:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
5483bc:	83 c4 10             	add    $0x10,%esp
5483bf:	85 c0                	test   %eax,%eax
5483c1:	0f 85 37 0b 00 00    	jne    0x548efe
5483c7:	8b 45 a8             	mov    -0x58(%ebp),%eax
5483ca:	6a 02                	push   $0x2
5483cc:	6a ff                	push   $0xffffffff
5483ce:	6a 00                	push   $0x0
5483d0:	89 30                	mov    %esi,(%eax)
5483d2:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5483d8:	ff 70 04             	push   0x4(%eax)
5483db:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
5483e1:	e8 6a a5 fa ff       	call   0x4f2950
5483e6:	83 c4 14             	add    $0x14,%esp
5483e9:	85 c0                	test   %eax,%eax
5483eb:	0f 84 d8 0b 00 00    	je     0x548fc9
5483f1:	8b 4d a8             	mov    -0x58(%ebp),%ecx
5483f4:	89 48 28             	mov    %ecx,0x28(%eax)
5483f7:	ff 46 04             	incl   0x4(%esi)
5483fa:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
548400:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548406:	83 c6 14             	add    $0x14,%esi
548409:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54840f:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
548415:	e9 9a a4 ff ff       	jmp    0x5428b4
54841a:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
548420:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
548426:	83 c3 28             	add    $0x28,%ebx
548429:	8b 42 0c             	mov    0xc(%edx),%eax
54842c:	8d 14 80             	lea    (%eax,%eax,4),%edx
54842f:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
548435:	8b 34 d3             	mov    (%ebx,%edx,8),%esi
548438:	8d 1c d3             	lea    (%ebx,%edx,8),%ebx
54843b:	66 0f 6e c3          	movd   %ebx,%xmm0
54843f:	89 9d 78 fe ff ff    	mov    %ebx,-0x188(%ebp)
548445:	8b 48 04             	mov    0x4(%eax),%ecx
548448:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
54844e:	66 0f 70 d8 00       	pshufd $0x0,%xmm0,%xmm3
548453:	8b 40 60             	mov    0x60(%eax),%eax
548456:	8b 04 88             	mov    (%eax,%ecx,4),%eax
548459:	33 c9                	xor    %ecx,%ecx
54845b:	89 85 40 fe ff ff    	mov    %eax,-0x1c0(%ebp)
548461:	8b 40 28             	mov    0x28(%eax),%eax
548464:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
54846a:	8b 00                	mov    (%eax),%eax
54846c:	89 85 48 fe ff ff    	mov    %eax,-0x1b8(%ebp)
548472:	8b 00                	mov    (%eax),%eax
548474:	89 85 5c fe ff ff    	mov    %eax,-0x1a4(%ebp)
54847a:	8b 85 8c fe ff ff    	mov    -0x174(%ebp),%eax
548480:	8b 04 d0             	mov    (%eax,%edx,8),%eax
548483:	89 85 70 fe ff ff    	mov    %eax,-0x190(%ebp)
548489:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
54848f:	8b 50 5c             	mov    0x5c(%eax),%edx
548492:	85 f6                	test   %esi,%esi
548494:	0f 8e a1 00 00 00    	jle    0x54853b
54849a:	83 fe 08             	cmp    $0x8,%esi
54849d:	72 7e                	jb     0x54851d
54849f:	83 3d c0 0b 73 00 02 	cmpl   $0x2,0x730bc0
5484a6:	7c 75                	jl     0x54851d
5484a8:	0f 28 15 70 c6 6b 00 	movaps 0x6bc670,%xmm2
5484af:	8b c6                	mov    %esi,%eax
5484b1:	25 07 00 00 80       	and    $0x80000007,%eax
5484b6:	79 05                	jns    0x5484bd
5484b8:	48                   	dec    %eax
5484b9:	83 c8 f8             	or     $0xfffffff8,%eax
5484bc:	40                   	inc    %eax
5484bd:	0f 28 0d 80 c6 6b 00 	movaps 0x6bc680,%xmm1
5484c4:	8b de                	mov    %esi,%ebx
5484c6:	2b d8                	sub    %eax,%ebx
5484c8:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
5484cf:	00
5484d0:	66 0f 6e c1          	movd   %ecx,%xmm0
5484d4:	8d 41 04             	lea    0x4(%ecx),%eax
5484d7:	66 0f 70 c0 00       	pshufd $0x0,%xmm0,%xmm0
5484dc:	66 0f fe c2          	paddd  %xmm2,%xmm0
5484e0:	66 0f 38 40 c1       	pmulld %xmm1,%xmm0
5484e5:	66 0f fe c3          	paddd  %xmm3,%xmm0
5484e9:	66 0f fe c1          	paddd  %xmm1,%xmm0