545fc9:	0f 85 d8 25 00 00    	jne    0x5485a7
545fcf:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
545fd5:	83 c6 14             	add    $0x14,%esi
545fd8:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
545fde:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
545fe4:	e9 cb c8 ff ff       	jmp    0x5428b4
545fe9:	83 bd 70 fe ff ff 00 	cmpl   $0x0,-0x190(%ebp)
545ff0:	0f 85 b1 25 00 00    	jne    0x5485a7
545ff6:	85 c9                	test   %ecx,%ecx
545ff8:	0f 84 a9 25 00 00    	je     0x5485a7
545ffe:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
546004:	83 c6 14             	add    $0x14,%esi
546007:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54600d:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
546013:	e9 9c c8 ff ff       	jmp    0x5428b4
546018:	8b 46 0c             	mov    0xc(%esi),%eax
54601b:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
546021:	8d 04 80             	lea    (%eax,%eax,4),%eax
546024:	f6 44 c3 08 24       	testb  $0x24,0x8(%ebx,%eax,8)
546029:	75 6c                	jne    0x546097
54602b:	0f 10 0c c3          	movups (%ebx,%eax,8),%xmm1
54602f:	0f 10 44 c3 10       	movups 0x10(%ebx,%eax,8),%xmm0
546034:	0f 11 4d ac          	movups %xmm1,-0x54(%ebp)
546038:	0f 11 45 bc          	movups %xmm0,-0x44(%ebp)
54603c:	f3 0f 7e 44 c3 20    	movq   0x20(%ebx,%eax,8),%xmm0
546042:	66 0f 73 d9 08       	psrldq $0x8,%xmm1
546047:	66 0f 7e c8          	movd   %xmm1,%eax
54604b:	66 0f d6 45 cc       	movq   %xmm0,-0x34(%ebp)
546050:	a8 04                	test   $0x4,%al
546052:	75 35                	jne    0x546089
546054:	a8 08                	test   $0x8,%al
546056:	75 14                	jne    0x54606c
546058:	a8 02                	test   $0x2,%al
54605a:	74 25                	je     0x546081
54605c:	8d 45 ac             	lea    -0x54(%ebp),%eax
54605f:	6a 01                	push   $0x1
546061:	50                   	push   %eax
546062:	e8 e9 da fa ff       	call   0x4f3b50
546067:	83 c4 08             	add    $0x8,%esp
54606a:	eb 0c                	jmp    0x546078
54606c:	8d 45 ac             	lea    -0x54(%ebp),%eax
54606f:	50                   	push   %eax
546070:	e8 7b 46 00 00       	call   0x54a6f0
546075:	83 c4 04             	add    $0x4,%esp
546078:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54607e:	8a 45 b4             	mov    -0x4c(%ebp),%al
546081:	a8 04                	test   $0x4,%al
546083:	0f 84 99 c8 ff ff    	je     0x542922
546089:	8b 5d ac             	mov    -0x54(%ebp),%ebx
54608c:	8b 55 b0             	mov    -0x50(%ebp),%edx
54608f:	eb 19                	jmp    0x5460aa
546091:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
546097:	8b 46 0c             	mov    0xc(%esi),%eax
54609a:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
5460a0:	8d 04 80             	lea    (%eax,%eax,4),%eax
5460a3:	8b 1c c3             	mov    (%ebx,%eax,8),%ebx
5460a6:	8b 54 c1 04          	mov    0x4(%ecx,%eax,8),%edx
5460aa:	89 95 70 fe ff ff    	mov    %edx,-0x190(%ebp)
5460b0:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5460b6:	c7 85 fc fd ff ff 00 	movl   $0x0,-0x204(%ebp)
5460bd:	00 00 00
5460c0:	8b 48 04             	mov    0x4(%eax),%ecx
5460c3:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5460c9:	8b 40 60             	mov    0x60(%eax),%eax
5460cc:	8b 34 88             	mov    (%eax,%ecx,4),%esi
5460cf:	8d 85 fc fd ff ff    	lea    -0x204(%ebp),%eax
5460d5:	50                   	push   %eax
5460d6:	6a 00                	push   $0x0
5460d8:	52                   	push   %edx
5460d9:	53                   	push   %ebx
5460da:	6a 00                	push   $0x0
5460dc:	ff 76 28             	push   0x28(%esi)
5460df:	e8 dc 67 fd ff       	call   0x51c8c0
5460e4:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5460ea:	83 c4 18             	add    $0x18,%esp
5460ed:	8b 85 70 fe ff ff    	mov    -0x190(%ebp),%eax
5460f3:	89 46 44             	mov    %eax,0x44(%esi)
5460f6:	8b 85 fc fd ff ff    	mov    -0x204(%ebp),%eax
5460fc:	89 5e 40             	mov    %ebx,0x40(%esi)
5460ff:	66 c7 46 02 00 00    	movw   $0x0,0x2(%esi)
546105:	c7 46 1c 00 00 00 00 	movl   $0x0,0x1c(%esi)
54610c:	89 46 20             	mov    %eax,0x20(%esi)
54610f:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
546115:	85 c0                	test   %eax,%eax
546117:	0f 84 71 f3 ff ff    	je     0x54548e
54611d:	83 7e 08 00          	cmpl   $0x0,0x8(%esi)
546121:	0f 85 80 24 00 00    	jne    0x5485a7
546127:	68 ab 5d 01 00       	push   $0x15dab
54612c:	e8 7f 9c fd ff       	call   0x51fdb0
546131:	83 c4 04             	add    $0x4,%esp
546134:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54613a:	e9 55 f3 ff ff       	jmp    0x545494
54613f:	8b 9d 98 fe ff ff    	mov    -0x168(%ebp),%ebx
546145:	53                   	push   %ebx
546146:	51                   	push   %ecx
546147:	e8 44 5f fc ff       	call   0x50c090
54614c:	8b 53 04             	mov    0x4(%ebx),%edx
54614f:	83 c4 08             	add    $0x8,%esp
546152:	8b 9d 9c fe ff ff    	mov    -0x164(%ebp),%ebx
546158:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54615e:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
546164:	8b 4b 60             	mov    0x60(%ebx),%ecx
546167:	8b 14 91             	mov    (%ecx,%edx,4),%edx
54616a:	8b 4a 10             	mov    0x10(%edx),%ecx
54616d:	89 08                	mov    %ecx,(%eax)
54616f:	8b 4a 14             	mov    0x14(%edx),%ecx
546172:	89 48 04             	mov    %ecx,0x4(%eax)
546175:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
54617b:	8b 48 04             	mov    0x4(%eax),%ecx
54617e:	8b 43 60             	mov    0x60(%ebx),%eax
546181:	8b 04 88             	mov    (%eax,%ecx,4),%eax
546184:	8b cb                	mov    %ebx,%ecx
546186:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
54618c:	83 40 10 01          	addl   $0x1,0x10(%eax)
546190:	83 50 14 00          	adcl   $0x0,0x14(%eax)
546194:	83 c6 14             	add    $0x14,%esi
546197:	e9 18 c7 ff ff       	jmp    0x5428b4
54619c:	8b 9d 98 fe ff ff    	mov    -0x168(%ebp),%ebx
5461a2:	0f 57 c0             	xorps  %xmm0,%xmm0
5461a5:	53                   	push   %ebx
5461a6:	51                   	push   %ecx
5461a7:	66 0f 13 45 e8       	movlpd %xmm0,-0x18(%ebp)
5461ac:	c7 85 14 fe ff ff 00 	movl   $0x0,-0x1ec(%ebp)
5461b3:	00 00 00
5461b6:	e8 d5 5e fc ff       	call   0x50c090
5461bb:	8b 53 04             	mov    0x4(%ebx),%edx
5461be:	83 c4 08             	add    $0x8,%esp
5461c1:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
5461c7:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5461cd:	8b 48 60             	mov    0x60(%eax),%ecx
5461d0:	8b 04 91             	mov    (%ecx,%edx,4),%eax
5461d3:	89 85 84 fe ff ff    	mov    %eax,-0x17c(%ebp)
5461d9:	f6 40 08 02          	testb  $0x2,0x8(%eax)
5461dd:	75 7b                	jne    0x54625a
5461df:	8d 8d 14 fe ff ff    	lea    -0x1ec(%ebp),%ecx
5461e5:	51                   	push   %ecx
5461e6:	ff 70 28             	push   0x28(%eax)
5461e9:	e8 72 65 fd ff       	call   0x51c760
5461ee:	83 c4 08             	add    $0x8,%esp
5461f1:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5461f7:	85 c0                	test   %eax,%eax
5461f9:	0f 85 ff 2c 00 00    	jne    0x548efe
5461ff:	39 85 14 fe ff ff    	cmp    %eax,-0x1ec(%ebp)
546205:	74 0f                	je     0x546216
546207:	bb 01 00 00 00       	mov    $0x1,%ebx
54620c:	33 f6                	xor    %esi,%esi
54620e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
546211:	89 75 ec             	mov    %esi,-0x14(%ebp)
546214:	eb 4a                	jmp    0x546260
546216:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
54621c:	ff 70 28             	push   0x28(%eax)
54621f:	e8 8c 5e fd ff       	call   0x51c0b0
546224:	8b f2                	mov    %edx,%esi
546226:	83 c4 04             	add    $0x4,%esp
546229:	89 75 ec             	mov    %esi,-0x14(%ebp)
54622c:	8b d8                	mov    %eax,%ebx
54622e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
546231:	81 fe ff ff ff 7f    	cmp    $0x7fffffff,%esi
546237:	7c 13                	jl     0x54624c
546239:	7f 05                	jg     0x546240
54623b:	83 fb ff             	cmp    $0xffffffff,%ebx
54623e:	72 0c                	jb     0x54624c
546240:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
546246:	83 48 08 02          	orl    $0x2,0x8(%eax)
54624a:	eb 14                	jmp    0x546260
54624c:	83 c3 01             	add    $0x1,%ebx
54624f:	89 5d e8             	mov    %ebx,-0x18(%ebp)
546252:	83 d6 00             	adc    $0x0,%esi
546255:	89 75 ec             	mov    %esi,-0x14(%ebp)
546258:	eb 06                	jmp    0x546260
54625a:	8b 75 ec             	mov    -0x14(%ebp),%esi
54625d:	8b 5d e8             	mov    -0x18(%ebp),%ebx
546260:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
546266:	8b 48 0c             	mov    0xc(%eax),%ecx
546269:	85 c9                	test   %ecx,%ecx
54626b:	0f 84 97 00 00 00    	je     0x546308
546271:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
546277:	8b 90 c8 00 00 00    	mov    0xc8(%eax),%edx
54627d:	85 d2                	test   %edx,%edx
54627f:	74 1b                	je     0x54629c
546281:	8b 42 04             	mov    0x4(%edx),%eax
546284:	85 c0                	test   %eax,%eax
546286:	74 09                	je     0x546291
546288:	8b d0                	mov    %eax,%edx
54628a:	8b 42 04             	mov    0x4(%edx),%eax
54628d:	85 c0                	test   %eax,%eax
54628f:	75 f7                	jne    0x546288
546291:	8b 42 10             	mov    0x10(%edx),%eax
546294:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
546297:	8d 04 c8             	lea    (%eax,%ecx,8),%eax
54629a:	eb 0c                	jmp    0x5462a8
54629c:	8d 04 89             	lea    (%ecx,%ecx,4),%eax
54629f:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
5462a5:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
5462a8:	50                   	push   %eax
5462a9:	89 85 70 fe ff ff    	mov    %eax,-0x190(%ebp)
5462af:	e8 2c 54 00 00       	call   0x54b6e0
5462b4:	8b 85 70 fe ff ff    	mov    -0x190(%ebp),%eax
5462ba:	83 c4 04             	add    $0x4,%esp
5462bd:	8b 08                	mov    (%eax),%ecx
5462bf:	8b 50 04             	mov    0x4(%eax),%edx
5462c2:	83 f9 ff             	cmp    $0xffffffff,%ecx
5462c5:	75 0c                	jne    0x5462d3
5462c7:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
5462cd:	0f 84 b8 00 00 00    	je     0x54638b
5462d3:	8b bd 84 fe ff ff    	mov    -0x17c(%ebp),%edi
5462d9:	f6 47 08 02          	testb  $0x2,0x8(%edi)
5462dd:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5462e3:	0f 85 a2 00 00 00    	jne    0x54638b
5462e9:	83 c1 01             	add    $0x1,%ecx
5462ec:	83 d2 00             	adc    $0x0,%edx
5462ef:	3b f2                	cmp    %edx,%esi
5462f1:	7f 10                	jg     0x546303
5462f3:	7c 04                	jl     0x5462f9
5462f5:	3b d9                	cmp    %ecx,%ebx
5462f7:	73 0a                	jae    0x546303
5462f9:	8b d9                	mov    %ecx,%ebx
5462fb:	8b f2                	mov    %edx,%esi
5462fd:	89 5d e8             	mov    %ebx,-0x18(%ebp)
546300:	89 75 ec             	mov    %esi,-0x14(%ebp)
546303:	89 18                	mov    %ebx,(%eax)
546305:	89 70 04             	mov    %esi,0x4(%eax)
546308:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
54630e:	f6 40 08 02          	testb  $0x2,0x8(%eax)
546312:	0f 84 83 00 00 00    	je     0x54639b
546318:	c7 85 70 fe ff ff 00 	movl   $0x0,-0x190(%ebp)
54631f:	00 00 00
546322:	8d 45 e8             	lea    -0x18(%ebp),%eax
546325:	50                   	push   %eax
546326:	6a 08                	push   $0x8
546328:	e8 03 59 fa ff       	call   0x4ebc30
54632d:	8b 75 ec             	mov    -0x14(%ebp),%esi
546330:	8d 85 14 fe ff ff    	lea    -0x1ec(%ebp),%eax
546336:	8b 5d e8             	mov    -0x18(%ebp),%ebx
546339:	81 e6 ff ff ff 3f    	and    $0x3fffffff,%esi
54633f:	50                   	push   %eax
546340:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
546346:	83 c3 01             	add    $0x1,%ebx
546349:	6a 00                	push   $0x0
54634b:	83 d6 00             	adc    $0x0,%esi
54634e:	89 5d e8             	mov    %ebx,-0x18(%ebp)
546351:	56                   	push   %esi
546352:	53                   	push   %ebx
546353:	6a 00                	push   $0x0
546355:	ff 70 28             	push   0x28(%eax)
546358:	89 75 ec             	mov    %esi,-0x14(%ebp)
54635b:	e8 60 65 fd ff       	call   0x51c8c0
546360:	83 c4 20             	add    $0x20,%esp
546363:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
546369:	85 c0                	test   %eax,%eax
54636b:	0f 85 8d 2b 00 00    	jne    0x548efe
546371:	39 85 14 fe ff ff    	cmp    %eax,-0x1ec(%ebp)
546377:	75 1c                	jne    0x546395
546379:	8b 85 70 fe ff ff    	mov    -0x190(%ebp),%eax
54637f:	40                   	inc    %eax
546380:	89 85 70 fe ff ff    	mov    %eax,-0x190(%ebp)
546386:	83 f8 64             	cmp    $0x64,%eax
546389:	7c 97                	jl     0x546322
54638b:	b8 0d 00 00 00       	mov    $0xd,%eax
546390:	e9 69 2b 00 00       	jmp    0x548efe
546395:	8b 85 84 fe ff ff    	mov    -0x17c(%ebp),%eax
54639b:	c6 40 03 00          	movb   $0x0,0x3(%eax)
54639f:	c7 40 1c 00 00 00 00 	movl   $0x0,0x1c(%eax)
5463a6:	8b 85 78 fe ff ff    	mov    -0x188(%ebp),%eax
5463ac:	89 18                	mov    %ebx,(%eax)
5463ae:	89 70 04             	mov    %esi,0x4(%eax)
5463b1:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5463b7:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5463bd:	83 c6 14             	add    $0x14,%esi
5463c0:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5463c6:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5463cc:	e9 e3 c4 ff ff       	jmp    0x5428b4
5463d1:	8b 9d 98 fe ff ff    	mov    -0x168(%ebp),%ebx
5463d7:	8b bd 8c fe ff ff    	mov    -0x174(%ebp),%edi
5463dd:	8b 43 08             	mov    0x8(%ebx),%eax
5463e0:	8b 4b 04             	mov    0x4(%ebx),%ecx
5463e3:	8d 14 80             	lea    (%eax,%eax,4),%edx
5463e6:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5463ec:	8b 40 60             	mov    0x60(%eax),%eax
5463ef:	8b 34 88             	mov    (%eax,%ecx,4),%esi
5463f2:	8b cb                	mov    %ebx,%ecx
5463f4:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
5463fa:	80 79 01 fa          	cmpb   $0xfa,0x1(%ecx)
5463fe:	8b 41 0c             	mov    0xc(%ecx),%eax
546401:	8d 04 80             	lea    (%eax,%eax,4),%eax
546404:	8b 1c c3             	mov    (%ebx,%eax,8),%ebx
546407:	89 9d 50 ff ff ff    	mov    %ebx,-0xb0(%ebp)
54640d:	8b 44 c7 04          	mov    0x4(%edi,%eax,8),%eax
546411:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
546417:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
54641d:	89 85 54 ff ff ff    	mov    %eax,-0xac(%ebp)
546423:	75 32                	jne    0x546457
546425:	83 bf f0 00 00 00 00 	cmpl   $0x0,0xf0(%edi)
54642c:	74 29                	je     0x546457
54642e:	0f be 4e 01          	movsbl 0x1(%esi),%ecx
546432:	8b 47 10             	mov    0x10(%edi),%eax
546435:	03 c9                	add    %ecx,%ecx
546437:	8b 0c c8             	mov    (%eax,%ecx,8),%ecx
54643a:	89 8d 88 fe ff ff    	mov    %ecx,-0x178(%ebp)
546440:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
546446:	8b 41 10             	mov    0x10(%ecx),%eax
546449:	89 85 70 fe ff ff    	mov    %eax,-0x190(%ebp)
54644f:	8b 85 78 fe ff ff    	mov    -0x188(%ebp),%eax
546455:	eb 14                	jmp    0x54646b
546457:	c7 85 70 fe ff ff 00 	movl   $0x0,-0x190(%ebp)
54645e:	00 00 00
546461:	c7 85 88 fe ff ff 00 	movl   $0x0,-0x178(%ebp)
546468:	00 00 00
54646b:	f6 41 02 01          	testb  $0x1,0x2(%ecx)
54646f:	74 0f                	je     0x546480
546471:	8b bd 9c fe ff ff    	mov    -0x164(%ebp),%edi
546477:	ff 47 2c             	incl   0x2c(%edi)
54647a:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
546480:	f6 41 02 20          	testb  $0x20,0x2(%ecx)
546484:	74 06                	je     0x54648c
546486:	89 5f 28             	mov    %ebx,0x28(%edi)
546489:	89 47 2c             	mov    %eax,0x2c(%edi)
54648c:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
546492:	0f b7 49 02          	movzwl 0x2(%ecx),%ecx
546496:	8b 44 d3 10          	mov    0x10(%ebx,%edx,8),%eax
54649a:	89 85 58 ff ff ff    	mov    %eax,-0xa8(%ebp)
5464a0:	8b 44 d3 0c          	mov    0xc(%ebx,%edx,8),%eax
5464a4:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
5464aa:	f6 c1 10             	test   $0x10,%cl
5464ad:	74 05                	je     0x5464b4
5464af:	8b 5e 20             	mov    0x20(%esi),%ebx
5464b2:	eb 02                	jmp    0x5464b6
5464b4:	33 db                	xor    %ebx,%ebx
5464b6:	8b 85 8c fe ff ff    	mov    -0x174(%ebp),%eax
5464bc:	bf 00 40 00 00       	mov    $0x4000,%edi
5464c1:	66 85 7c d0 08       	test   %di,0x8(%eax,%edx,8)
5464c6:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5464cc:	74 0b                	je     0x5464d9
5464ce:	8b 04 d0             	mov    (%eax,%edx,8),%eax
5464d1:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
5464d7:	eb 0a                	jmp    0x5464e3
5464d9:	c7 85 68 ff ff ff 00 	movl   $0x0,-0x98(%ebp)
5464e0:	00 00 00
5464e3:	53                   	push   %ebx
5464e4:	83 e1 0a             	and    $0xa,%ecx
5464e7:	c7 85 48 ff ff ff 00 	movl   $0x0,-0xb8(%ebp)
5464ee:	00 00 00
5464f1:	51                   	push   %ecx
5464f2:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
5464f8:	50                   	push   %eax
5464f9:	ff 76 28             	push   0x28(%esi)
5464fc:	e8 6f 57 fd ff       	call   0x51bc70
546501:	83 c4 10             	add    $0x10,%esp
546504:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54650a:	c6 46 03 00          	movb   $0x0,0x3(%esi)