5484ed:	0f 11 04 8a          	movups %xmm0,(%edx,%ecx,4)
5484f1:	66 0f 6e c0          	movd   %eax,%xmm0
5484f5:	66 0f 70 c0 00       	pshufd $0x0,%xmm0,%xmm0
5484fa:	66 0f fe c2          	paddd  %xmm2,%xmm0
5484fe:	66 0f 38 40 c1       	pmulld %xmm1,%xmm0
548503:	66 0f fe c3          	paddd  %xmm3,%xmm0
548507:	66 0f fe c1          	paddd  %xmm1,%xmm0
54850b:	0f 11 44 8a 10       	movups %xmm0,0x10(%edx,%ecx,4)
548510:	83 c1 08             	add    $0x8,%ecx
548513:	3b cb                	cmp    %ebx,%ecx
548515:	7c b9                	jl     0x5484d0
548517:	8b 9d 78 fe ff ff    	mov    -0x188(%ebp),%ebx
54851d:	3b ce                	cmp    %esi,%ecx
54851f:	7d 1a                	jge    0x54853b
548521:	8d 41 01             	lea    0x1(%ecx),%eax
548524:	8d 04 80             	lea    (%eax,%eax,4),%eax
548527:	8d 04 c3             	lea    (%ebx,%eax,8),%eax
54852a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
548530:	89 04 8a             	mov    %eax,(%edx,%ecx,4)
548533:	41                   	inc    %ecx
548534:	83 c0 28             	add    $0x28,%eax
548537:	3b ce                	cmp    %esi,%ecx
548539:	7c f5                	jl     0x548530
54853b:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
548541:	8b 9d 5c fe ff ff    	mov    -0x1a4(%ebp),%ebx
548547:	52                   	push   %edx
548548:	56                   	push   %esi
548549:	ff 70 10             	push   0x10(%eax)
54854c:	8b b5 88 fe ff ff    	mov    -0x178(%ebp),%esi
548552:	ff b5 70 fe ff ff    	push   -0x190(%ebp)
548558:	8b 43 20             	mov    0x20(%ebx),%eax
54855b:	56                   	push   %esi
54855c:	ff d0                	call   *%eax
54855e:	ff b5 48 fe ff ff    	push   -0x1b8(%ebp)
548564:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54856a:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
548570:	e8 ab 62 00 00       	call   0x54e820
548575:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
54857b:	83 c4 1c             	add    $0x1c,%esp
54857e:	85 c0                	test   %eax,%eax
548580:	0f 85 78 09 00 00    	jne    0x548efe
548586:	8b 43 28             	mov    0x28(%ebx),%eax
548589:	56                   	push   %esi
54858a:	ff d0                	call   *%eax
54858c:	8b 8d 40 fe ff ff    	mov    -0x1c0(%ebp),%ecx
548592:	83 c4 04             	add    $0x4,%esp
548595:	c6 41 02 00          	movb   $0x0,0x2(%ecx)
548599:	85 c0                	test   %eax,%eax
54859b:	0f 84 c5 a5 ff ff    	je     0x542b66
5485a1:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5485a7:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5485ad:	e9 70 a3 ff ff       	jmp    0x542922
5485b2:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5485b8:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5485be:	8b 4a 04             	mov    0x4(%edx),%ecx
5485c1:	8b 40 60             	mov    0x60(%eax),%eax
5485c4:	8b 1c 88             	mov    (%eax,%ecx,4),%ebx
5485c7:	8b 42 0c             	mov    0xc(%edx),%eax
5485ca:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
5485d0:	80 7b 02 00          	cmpb   $0x0,0x2(%ebx)
5485d4:	8d 04 80             	lea    (%eax,%eax,4),%eax
5485d7:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
5485da:	74 29                	je     0x548605
5485dc:	56                   	push   %esi
5485dd:	e8 6e 34 00 00       	call   0x54ba50
5485e2:	83 c4 04             	add    $0x4,%esp
5485e5:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5485eb:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5485f1:	83 c6 14             	add    $0x14,%esi
5485f4:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5485fa:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
548600:	e9 af a2 ff ff       	jmp    0x5428b4
548605:	f6 42 02 01          	testb  $0x1,0x2(%edx)
548609:	0f 57 c0             	xorps  %xmm0,%xmm0
54860c:	8b 43 28             	mov    0x28(%ebx),%eax
54860f:	8b 00                	mov    (%eax),%eax
548611:	89 85 70 fe ff ff    	mov    %eax,-0x190(%ebp)
548617:	8b 00                	mov    (%eax),%eax
548619:	0f 11 85 18 ff ff ff 	movups %xmm0,-0xe8(%ebp)
548620:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
548626:	0f 11 85 28 ff ff ff 	movups %xmm0,-0xd8(%ebp)
54862d:	89 b5 18 ff ff ff    	mov    %esi,-0xe8(%ebp)
548633:	74 1c                	je     0x548651
548635:	56                   	push   %esi
548636:	e8 15 34 00 00       	call   0x54ba50
54863b:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
548641:	83 c4 04             	add    $0x4,%esp
548644:	b8 01 40 00 00       	mov    $0x4001,%eax
548649:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
54864f:	eb 10                	jmp    0x548661
548651:	66 8b 46 08          	mov    0x8(%esi),%ax
548655:	b9 40 3e 00 00       	mov    $0x3e40,%ecx
54865a:	66 23 c1             	and    %cx,%ax
54865d:	66 83 c8 01          	or     $0x1,%ax
548661:	66 89 46 08          	mov    %ax,0x8(%esi)
548665:	8d 85 18 ff ff ff    	lea    -0xe8(%ebp),%eax
54866b:	ff 72 08             	push   0x8(%edx)
54866e:	50                   	push   %eax
54866f:	8b 85 78 fe ff ff    	mov    -0x188(%ebp),%eax
548675:	ff 73 28             	push   0x28(%ebx)
548678:	8b 40 2c             	mov    0x2c(%eax),%eax
54867b:	ff d0                	call   *%eax
54867d:	ff b5 70 fe ff ff    	push   -0x190(%ebp)
548683:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
548689:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
54868f:	e8 8c 61 00 00       	call   0x54e820
548694:	83 c4 14             	add    $0x14,%esp
548697:	83 bd 2c ff ff ff 00 	cmpl   $0x0,-0xd4(%ebp)
54869e:	7e 26                	jle    0x5486c6
5486a0:	56                   	push   %esi
5486a1:	e8 9a 9f f9 ff       	call   0x4e2640
5486a6:	50                   	push   %eax
5486a7:	68 04 d0 6a 00       	push   $0x6ad004
5486ac:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
5486b2:	e8 f9 a0 ff ff       	call   0x5427b0
5486b7:	8b 85 2c ff ff ff    	mov    -0xd4(%ebp),%eax
5486bd:	83 c4 10             	add    $0x10,%esp
5486c0:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5486c6:	0f b6 85 60 fe ff ff 	movzbl -0x1a0(%ebp),%eax
5486cd:	50                   	push   %eax
5486ce:	56                   	push   %esi
5486cf:	e8 ec 97 ff ff       	call   0x541ec0
5486d4:	56                   	push   %esi
5486d5:	e8 36 37 00 00       	call   0x54be10
5486da:	83 c4 0c             	add    $0xc,%esp
5486dd:	85 c0                	test   %eax,%eax
5486df:	0f 85 6b f7 ff ff    	jne    0x547e50
5486e5:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
5486eb:	e9 19 b2 ff ff       	jmp    0x543909
5486f0:	8b 9d 98 fe ff ff    	mov    -0x168(%ebp),%ebx
5486f6:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5486fc:	8b 4b 04             	mov    0x4(%ebx),%ecx
5486ff:	8b 40 60             	mov    0x60(%eax),%eax
548702:	8b 1c 88             	mov    (%eax,%ecx,4),%ebx
548705:	80 7b 02 00          	cmpb   $0x0,0x2(%ebx)
548709:	0f 85 57 a4 ff ff    	jne    0x542b66
54870f:	8b 43 28             	mov    0x28(%ebx),%eax
548712:	50                   	push   %eax
548713:	8b 30                	mov    (%eax),%esi
548715:	8b 0e                	mov    (%esi),%ecx
548717:	89 8d 78 fe ff ff    	mov    %ecx,-0x188(%ebp)
54871d:	8b 41 24             	mov    0x24(%ecx),%eax
548720:	ff d0                	call   *%eax
548722:	56                   	push   %esi
548723:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
548729:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54872f:	e8 ec 60 00 00       	call   0x54e820
548734:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
54873a:	83 c4 0c             	add    $0xc,%esp
54873d:	85 c0                	test   %eax,%eax
54873f:	0f 85 b9 07 00 00    	jne    0x548efe
548745:	8b 85 78 fe ff ff    	mov    -0x188(%ebp),%eax
54874b:	ff 73 28             	push   0x28(%ebx)
54874e:	8b 40 28             	mov    0x28(%eax),%eax
548751:	ff d0                	call   *%eax
548753:	83 c4 04             	add    $0x4,%esp
548756:	85 c0                	test   %eax,%eax
548758:	0f 85 a1 c7 ff ff    	jne    0x544eff
54875e:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548764:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54876a:	8b 76 08             	mov    0x8(%esi),%esi
54876d:	8b 95 64 fe ff ff    	mov    -0x19c(%ebp),%edx
548773:	4e                   	dec    %esi
548774:	8d 34 b6             	lea    (%esi,%esi,4),%esi
548777:	8d 34 b2             	lea    (%edx,%esi,4),%esi
54877a:	89 b5 98 fe ff ff    	mov    %esi,-0x168(%ebp)
548780:	e9 86 c7 ff ff       	jmp    0x544f0b
548785:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54878b:	8b 5f 20             	mov    0x20(%edi),%ebx
54878e:	81 4f 20 00 00 00 04 	orl    $0x4000000,0x20(%edi)
548795:	81 e3 00 00 00 04    	and    $0x4000000,%ebx
54879b:	8b 47 24             	mov    0x24(%edi),%eax
54879e:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
5487a4:	89 47 24             	mov    %eax,0x24(%edi)
5487a7:	8b 42 10             	mov    0x10(%edx),%eax
5487aa:	6a 01                	push   $0x1
5487ac:	8b 70 08             	mov    0x8(%eax),%esi
5487af:	8b 42 04             	mov    0x4(%edx),%eax
5487b2:	8d 04 80             	lea    (%eax,%eax,4),%eax
5487b5:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
5487b8:	50                   	push   %eax
5487b9:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
5487bf:	e8 fc 96 ff ff       	call   0x541ec0
5487c4:	83 c4 08             	add    $0x8,%esp
5487c7:	85 c0                	test   %eax,%eax
5487c9:	0f 85 2f 07 00 00    	jne    0x548efe
5487cf:	8b 8d 78 fe ff ff    	mov    -0x188(%ebp),%ecx
5487d5:	8b 06                	mov    (%esi),%eax
5487d7:	ff 71 10             	push   0x10(%ecx)
5487da:	8b 40 4c             	mov    0x4c(%eax),%eax
5487dd:	56                   	push   %esi
5487de:	ff d0                	call   *%eax
5487e0:	83 c4 08             	add    $0x8,%esp
5487e3:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5487e9:	85 db                	test   %ebx,%ebx
5487eb:	75 0d                	jne    0x5487fa
5487ed:	8b 47 24             	mov    0x24(%edi),%eax
5487f0:	81 67 20 ff ff ff fb 	andl   $0xfbffffff,0x20(%edi)
5487f7:	89 47 24             	mov    %eax,0x24(%edi)
5487fa:	56                   	push   %esi
5487fb:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
548801:	e8 1a 60 00 00       	call   0x54e820
548806:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54880c:	83 c4 08             	add    $0x8,%esp
54880f:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
548815:	83 a1 98 00 00 00 fc 	andl   $0xfffffffc,0x98(%ecx)
54881c:	e9 ee b0 ff ff       	jmp    0x54390f
548821:	80 7f 51 00          	cmpb   $0x0,0x51(%edi)
548825:	0f 85 af 07 00 00    	jne    0x548fda
54882b:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
548831:	8b 42 10             	mov    0x10(%edx),%eax
548834:	8b 58 08             	mov    0x8(%eax),%ebx
548837:	85 db                	test   %ebx,%ebx
548839:	0f 84 02 08 00 00    	je     0x549041
54883f:	8b 03                	mov    (%ebx),%eax
548841:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
548847:	85 c0                	test   %eax,%eax
548849:	0f 84 f2 07 00 00    	je     0x549041
54884f:	83 78 34 00          	cmpl   $0x0,0x34(%eax)
548853:	8b 52 08             	mov    0x8(%edx),%edx
548856:	0f 84 05 b0 ff ff    	je     0x543861
54885c:	8a 47 56             	mov    0x56(%edi),%al
54885f:	8b 71 5c             	mov    0x5c(%ecx),%esi
548862:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
548868:	88 85 53 fe ff ff    	mov    %al,-0x1ad(%ebp)
54886e:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
548874:	8b 40 0c             	mov    0xc(%eax),%eax
548877:	8d 04 80             	lea    (%eax,%eax,4),%eax
54887a:	8d 0c c1             	lea    (%ecx,%eax,8),%ecx
54887d:	33 c0                	xor    %eax,%eax
54887f:	85 d2                	test   %edx,%edx
548881:	7e 0b                	jle    0x54888e
548883:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
548886:	40                   	inc    %eax
548887:	83 c1 28             	add    $0x28,%ecx
54888a:	3b c2                	cmp    %edx,%eax
54888c:	7c f5                	jl     0x548883
54888e:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
548894:	8a 40 02             	mov    0x2(%eax),%al
548897:	88 47 56             	mov    %al,0x56(%edi)
54889a:	8d 45 d4             	lea    -0x2c(%ebp),%eax
54889d:	50                   	push   %eax
54889e:	8b 85 78 fe ff ff    	mov    -0x188(%ebp),%eax
5488a4:	56                   	push   %esi
5488a5:	52                   	push   %edx
5488a6:	53                   	push   %ebx
5488a7:	8b 40 34             	mov    0x34(%eax),%eax
5488aa:	ff d0                	call   *%eax
5488ac:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5488b2:	8a 85 53 fe ff ff    	mov    -0x1ad(%ebp),%al
5488b8:	53                   	push   %ebx
5488b9:	ff b5 9c fe ff ff    	push   -0x164(%ebp)
5488bf:	88 47 56             	mov    %al,0x56(%edi)
5488c2:	e8 59 5f 00 00       	call   0x54e820
5488c7:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
5488cd:	83 c4 18             	add    $0x18,%esp
5488d0:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
5488d6:	85 c0                	test   %eax,%eax
5488d8:	75 17                	jne    0x5488f1
5488da:	39 41 04             	cmp    %eax,0x4(%ecx)
5488dd:	74 12                	je     0x5488f1
5488df:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5488e2:	89 47 28             	mov    %eax,0x28(%edi)
5488e5:	8b 45 d8             	mov    -0x28(%ebp),%eax
5488e8:	89 47 2c             	mov    %eax,0x2c(%edi)
5488eb:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
5488f1:	3c 13                	cmp    $0x13,%al
5488f3:	75 58                	jne    0x54894d
5488f5:	8b 41 10             	mov    0x10(%ecx),%eax
5488f8:	80 78 10 00          	cmpb   $0x0,0x10(%eax)
5488fc:	74 4f                	je     0x54894d
5488fe:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
548904:	0f b7 40 02          	movzwl 0x2(%eax),%eax
548908:	83 f8 04             	cmp    $0x4,%eax
54890b:	75 28                	jne    0x548935
54890d:	33 c9                	xor    %ecx,%ecx
54890f:	89 8d 94 fe ff ff    	mov    %ecx,-0x16c(%ebp)
548915:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54891b:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548921:	83 c6 14             	add    $0x14,%esi
548924:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54892a:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
548930:	e9 7f 9f ff ff       	jmp    0x5428b4
548935:	83 f8 05             	cmp    $0x5,%eax
548938:	75 05                	jne    0x54893f
54893a:	b8 02 00 00 00       	mov    $0x2,%eax
54893f:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548945:	88 81 92 00 00 00    	mov    %al,0x92(%ecx)
54894b:	eb 09                	jmp    0x548956
54894d:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548953:	ff 41 2c             	incl   0x2c(%ecx)
548956:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
54895c:	85 c0                	test   %eax,%eax
54895e:	0f 85 9a 05 00 00    	jne    0x548efe
548964:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54896a:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
548970:	83 c6 14             	add    $0x14,%esi
548973:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
548979:	e9 36 9f ff ff       	jmp    0x5428b4
54897e:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
548984:	51                   	push   %ecx
548985:	e8 06 37 fc ff       	call   0x50c090
54898a:	8b 8d 98 fe ff ff    	mov    -0x168(%ebp),%ecx
548990:	83 c4 08             	add    $0x8,%esp
548993:	8b 51 04             	mov    0x4(%ecx),%edx
548996:	8b 4f 10             	mov    0x10(%edi),%ecx
548999:	c1 e2 04             	shl    $0x4,%edx
54899c:	8b 4c 0a 04          	mov    0x4(%edx,%ecx,1),%ecx
5489a0:	8b 49 04             	mov    0x4(%ecx),%ecx
5489a3:	8b 49 2c             	mov    0x2c(%ecx),%ecx
5489a6:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
5489ac:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
5489b3:	89 08                	mov    %ecx,(%eax)
5489b5:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5489bb:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5489c1:	83 c6 14             	add    $0x14,%esi
5489c4:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5489ca:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5489d0:	e9 df 9e ff ff       	jmp    0x5428b4
5489d5:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
5489db:	51                   	push   %ecx
5489dc:	e8 af 36 fc ff       	call   0x50c090
5489e1:	8b 4f 10             	mov    0x10(%edi),%ecx
5489e4:	8b d8                	mov    %eax,%ebx
5489e6:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5489ec:	83 c4 08             	add    $0x8,%esp
5489ef:	8b 50 04             	mov    0x4(%eax),%edx
5489f2:	03 d2                	add    %edx,%edx
5489f4:	8b 74 d1 04          	mov    0x4(%ecx,%edx,8),%esi
5489f8:	33 c9                	xor    %ecx,%ecx
5489fa:	8b 50 0c             	mov    0xc(%eax),%edx
5489fd:	85 d2                	test   %edx,%edx
5489ff:	74 11                	je     0x548a12
548a01:	8b 46 04             	mov    0x4(%esi),%eax
548a04:	8b 48 2c             	mov    0x2c(%eax),%ecx
548a07:	81 e1 ff ff ff 7f    	and    $0x7fffffff,%ecx
548a0d:	3b ca                	cmp    %edx,%ecx
548a0f:	0f 42 ca             	cmovb  %edx,%ecx
548a12:	51                   	push   %ecx
548a13:	56                   	push   %esi
548a14:	e8 47 3e fd ff       	call   0x51c860
548a19:	99                   	cltd
548a1a:	83 c4 08             	add    $0x8,%esp
548a1d:	89 03                	mov    %eax,(%ebx)
548a1f:	89 53 04             	mov    %edx,0x4(%ebx)
548a22:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
548a28:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
548a2e:	83 c6 14             	add    $0x14,%esi
548a31:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
548a37:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx