5432c2:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
5432c5:	56                   	push   %esi
5432c6:	89 b5 84 fe ff ff    	mov    %esi,-0x17c(%ebp)
5432cc:	e8 6f 86 fc ff       	call   0x50b940
5432d1:	0f b7 d8             	movzwl %ax,%ebx
5432d4:	8b 47 08             	mov    0x8(%edi),%eax
5432d7:	8b bd 8c fe ff ff    	mov    -0x174(%ebp),%edi
5432dd:	8d 04 80             	lea    (%eax,%eax,4),%eax
5432e0:	8d 04 c7             	lea    (%edi,%eax,8),%eax
5432e3:	50                   	push   %eax
5432e4:	89 85 88 fe ff ff    	mov    %eax,-0x178(%ebp)
5432ea:	e8 51 86 fc ff       	call   0x50b940
5432ef:	0f b7 c8             	movzwl %ax,%ecx
5432f2:	83 c4 08             	add    $0x8,%esp
5432f5:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5432fb:	22 cb                	and    %bl,%cl
5432fd:	8b 40 0c             	mov    0xc(%eax),%eax
543300:	8d 04 80             	lea    (%eax,%eax,4),%eax
543303:	8d 04 c7             	lea    (%edi,%eax,8),%eax
543306:	89 85 5c fe ff ff    	mov    %eax,-0x1a4(%ebp)
54330c:	8b 85 88 fe ff ff    	mov    -0x178(%ebp),%eax
543312:	66 8b 40 08          	mov    0x8(%eax),%ax
543316:	66 0b 46 08          	or     0x8(%esi),%ax
54331a:	0f b7 c0             	movzwl %ax,%eax
54331d:	f6 c1 04             	test   $0x4,%cl
543320:	0f 84 2a 01 00 00    	je     0x543450
543326:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
54332c:	8b 9d 88 fe ff ff    	mov    -0x178(%ebp),%ebx
543332:	8b 0e                	mov    (%esi),%ecx
543334:	8b 56 04             	mov    0x4(%esi),%edx
543337:	0f b6 00             	movzbl (%eax),%eax
54333a:	8b 33                	mov    (%ebx),%esi
54333c:	83 c0 97             	add    $0xffffff97,%eax
54333f:	8b 7b 04             	mov    0x4(%ebx),%edi
543342:	89 b5 24 fe ff ff    	mov    %esi,-0x1dc(%ebp)
543348:	89 bd 28 fe ff ff    	mov    %edi,-0x1d8(%ebp)
54334e:	83 f8 03             	cmp    $0x3,%eax
543351:	0f 87 83 00 00 00    	ja     0x5433da
543357:	ff 24 85 fc 96 54 00 	jmp    *0x5496fc(,%eax,4)
54335e:	52                   	push   %edx
54335f:	51                   	push   %ecx
543360:	8d 85 24 fe ff ff    	lea    -0x1dc(%ebp),%eax
543366:	50                   	push   %eax
543367:	e8 d4 49 fd ff       	call   0x517d40
54336c:	83 c4 0c             	add    $0xc,%esp
54336f:	85 c0                	test   %eax,%eax
543371:	0f 84 8e 00 00 00    	je     0x543405
543377:	8b b5 84 fe ff ff    	mov    -0x17c(%ebp),%esi
54337d:	e9 06 01 00 00       	jmp    0x543488
543382:	52                   	push   %edx
543383:	51                   	push   %ecx
543384:	8d 85 24 fe ff ff    	lea    -0x1dc(%ebp),%eax
54338a:	50                   	push   %eax
54338b:	e8 20 a9 ff ff       	call   0x53dcb0
543390:	83 c4 0c             	add    $0xc,%esp
543393:	85 c0                	test   %eax,%eax
543395:	75 e0                	jne    0x543377
543397:	eb 6c                	jmp    0x543405
543399:	52                   	push   %edx
54339a:	51                   	push   %ecx
54339b:	8d 85 24 fe ff ff    	lea    -0x1dc(%ebp),%eax
5433a1:	50                   	push   %eax
5433a2:	e8 f9 e0 fe ff       	call   0x5314a0
5433a7:	83 c4 0c             	add    $0xc,%esp
5433aa:	85 c0                	test   %eax,%eax
5433ac:	75 c9                	jne    0x543377
5433ae:	eb 55                	jmp    0x543405
5433b0:	8b c1                	mov    %ecx,%eax
5433b2:	0b c2                	or     %edx,%eax
5433b4:	0f 84 9a 00 00 00    	je     0x543454
5433ba:	8b c1                	mov    %ecx,%eax
5433bc:	23 c2                	and    %edx,%eax
5433be:	83 f8 ff             	cmp    $0xffffffff,%eax
5433c1:	75 0c                	jne    0x5433cf
5433c3:	85 f6                	test   %esi,%esi
5433c5:	75 08                	jne    0x5433cf
5433c7:	81 ff 00 00 00 80    	cmp    $0x80000000,%edi
5433cd:	74 a8                	je     0x543377
5433cf:	52                   	push   %edx
5433d0:	51                   	push   %ecx
5433d1:	57                   	push   %edi
5433d2:	56                   	push   %esi
5433d3:	e8 68 e7 09 00       	call   0x5e1b40
5433d8:	eb 1f                	jmp    0x5433f9
5433da:	8b c1                	mov    %ecx,%eax
5433dc:	0b c2                	or     %edx,%eax
5433de:	74 74                	je     0x543454
5433e0:	8b c1                	mov    %ecx,%eax
5433e2:	23 c2                	and    %edx,%eax
5433e4:	83 f8 ff             	cmp    $0xffffffff,%eax
5433e7:	75 07                	jne    0x5433f0
5433e9:	b9 01 00 00 00       	mov    $0x1,%ecx
5433ee:	33 d2                	xor    %edx,%edx
5433f0:	52                   	push   %edx
5433f1:	51                   	push   %ecx
5433f2:	57                   	push   %edi
5433f3:	56                   	push   %esi
5433f4:	e8 d7 ed 09 00       	call   0x5e21d0
5433f9:	89 95 28 fe ff ff    	mov    %edx,-0x1d8(%ebp)
5433ff:	89 85 24 fe ff ff    	mov    %eax,-0x1dc(%ebp)
543405:	8b 8d 5c fe ff ff    	mov    -0x1a4(%ebp),%ecx
54340b:	ba 40 3e 00 00       	mov    $0x3e40,%edx
543410:	8b 85 24 fe ff ff    	mov    -0x1dc(%ebp),%eax
543416:	89 01                	mov    %eax,(%ecx)
543418:	8b 85 28 fe ff ff    	mov    -0x1d8(%ebp),%eax
54341e:	89 41 04             	mov    %eax,0x4(%ecx)
543421:	66 8b 41 08          	mov    0x8(%ecx),%ax
543425:	66 23 c2             	and    %dx,%ax
543428:	66 83 c8 04          	or     $0x4,%ax
54342c:	66 89 41 08          	mov    %ax,0x8(%ecx)
543430:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
543436:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54343c:	83 c6 14             	add    $0x14,%esi
54343f:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
543445:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
54344b:	e9 64 f4 ff ff       	jmp    0x5428b4
543450:	a8 01                	test   $0x1,%al
543452:	74 2e                	je     0x543482
543454:	ff b5 5c fe ff ff    	push   -0x1a4(%ebp)
54345a:	e8 f1 85 00 00       	call   0x54ba50
54345f:	83 c4 04             	add    $0x4,%esp
543462:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
543468:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54346e:	83 c6 14             	add    $0x14,%esi
543471:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
543477:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
54347d:	e9 32 f4 ff ff       	jmp    0x5428b4
543482:	8b 9d 88 fe ff ff    	mov    -0x178(%ebp),%ebx
543488:	56                   	push   %esi
543489:	e8 42 90 00 00       	call   0x54c4d0
54348e:	dd 9d 74 fe ff ff    	fstpl  -0x18c(%ebp)
543494:	53                   	push   %ebx
543495:	e8 36 90 00 00       	call   0x54c4d0
54349a:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5434a0:	83 c4 08             	add    $0x8,%esp
5434a3:	dd 9d 6c fe ff ff    	fstpl  -0x194(%ebp)
5434a9:	0f b6 00             	movzbl (%eax),%eax
5434ac:	83 c0 97             	add    $0xffffff97,%eax
5434af:	83 f8 03             	cmp    $0x3,%eax
5434b2:	77 6a                	ja     0x54351e
5434b4:	ff 24 85 0c 97 54 00 	jmp    *0x54970c(,%eax,4)
5434bb:	f2 0f 10 85 6c fe ff 	movsd  -0x194(%ebp),%xmm0
5434c2:	ff
5434c3:	f2 0f 58 85 74 fe ff 	addsd  -0x18c(%ebp),%xmm0
5434ca:	ff
5434cb:	e9 99 00 00 00       	jmp    0x543569
5434d0:	f2 0f 10 85 6c fe ff 	movsd  -0x194(%ebp),%xmm0
5434d7:	ff
5434d8:	f2 0f 5c 85 74 fe ff 	subsd  -0x18c(%ebp),%xmm0
5434df:	ff
5434e0:	e9 84 00 00 00       	jmp    0x543569
5434e5:	f2 0f 10 85 6c fe ff 	movsd  -0x194(%ebp),%xmm0
5434ec:	ff
5434ed:	f2 0f 59 85 74 fe ff 	mulsd  -0x18c(%ebp),%xmm0
5434f4:	ff
5434f5:	eb 72                	jmp    0x543569
5434f7:	f2 0f 10 8d 74 fe ff 	movsd  -0x18c(%ebp),%xmm1
5434fe:	ff
5434ff:	0f 57 c0             	xorps  %xmm0,%xmm0
543502:	66 0f 2e c8          	ucomisd %xmm0,%xmm1
543506:	9f                   	lahf
543507:	f6 c4 44             	test   $0x44,%ah
54350a:	0f 8b 44 ff ff ff    	jnp    0x543454
543510:	f2 0f 10 85 6c fe ff 	movsd  -0x194(%ebp),%xmm0
543517:	ff
543518:	f2 0f 5e c1          	divsd  %xmm1,%xmm0
54351c:	eb 4b                	jmp    0x543569
54351e:	56                   	push   %esi
54351f:	e8 7c 71 00 00       	call   0x54a6a0
543524:	53                   	push   %ebx
543525:	8b f0                	mov    %eax,%esi
543527:	8b fa                	mov    %edx,%edi
543529:	e8 72 71 00 00       	call   0x54a6a0
54352e:	8b c8                	mov    %eax,%ecx
543530:	89 95 28 fe ff ff    	mov    %edx,-0x1d8(%ebp)
543536:	8b c6                	mov    %esi,%eax
543538:	89 8d 24 fe ff ff    	mov    %ecx,-0x1dc(%ebp)
54353e:	83 c4 08             	add    $0x8,%esp
543541:	0b c7                	or     %edi,%eax
543543:	0f 84 0b ff ff ff    	je     0x543454
543549:	8b c6                	mov    %esi,%eax
54354b:	23 c7                	and    %edi,%eax
54354d:	83 f8 ff             	cmp    $0xffffffff,%eax
543550:	75 07                	jne    0x543559
543552:	be 01 00 00 00       	mov    $0x1,%esi
543557:	33 ff                	xor    %edi,%edi
543559:	57                   	push   %edi
54355a:	56                   	push   %esi
54355b:	52                   	push   %edx
54355c:	51                   	push   %ecx
54355d:	e8 6e ec 09 00       	call   0x5e21d0
543562:	8b c8                	mov    %eax,%ecx
543564:	e8 37 e3 09 00       	call   0x5e18a0
543569:	83 ec 08             	sub    $0x8,%esp
54356c:	f2 0f 11 04 24       	movsd  %xmm0,(%esp)
543571:	e8 ca c3 fe ff       	call   0x52f940
543576:	83 c4 08             	add    $0x8,%esp
543579:	85 c0                	test   %eax,%eax
54357b:	0f 85 d3 fe ff ff    	jne    0x543454
543581:	8b 8d 5c fe ff ff    	mov    -0x1a4(%ebp),%ecx
543587:	ba 40 3e 00 00       	mov    $0x3e40,%edx
54358c:	66 8b 41 08          	mov    0x8(%ecx),%ax
543590:	66 23 c2             	and    %dx,%ax
543593:	f2 0f 11 01          	movsd  %xmm0,(%ecx)
543597:	66 83 c8 08          	or     $0x8,%ax
54359b:	66 89 41 08          	mov    %ax,0x8(%ecx)
54359f:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5435a5:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5435ab:	83 c6 14             	add    $0x14,%esi
5435ae:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5435b4:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5435ba:	e9 f5 f2 ff ff       	jmp    0x5428b4
5435bf:	8b 46 04             	mov    0x4(%esi),%eax
5435c2:	85 c0                	test   %eax,%eax
5435c4:	0f 84 a8 f5 ff ff    	je     0x542b72
5435ca:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
5435d0:	8d 04 80             	lea    (%eax,%eax,4),%eax
5435d3:	6a 00                	push   $0x0
5435d5:	6a 00                	push   $0x0
5435d7:	8d 04 c1             	lea    (%ecx,%eax,8),%eax
5435da:	50                   	push   %eax
5435db:	e8 30 84 00 00       	call   0x54ba10
5435e0:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5435e6:	83 c4 0c             	add    $0xc,%esp
5435e9:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5435ef:	83 c6 14             	add    $0x14,%esi
5435f2:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5435f8:	e9 b7 f2 ff ff       	jmp    0x5428b4
5435fd:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
543603:	8b bd 8c fe ff ff    	mov    -0x174(%ebp),%edi
543609:	8b 42 04             	mov    0x4(%edx),%eax
54360c:	8d 04 80             	lea    (%eax,%eax,4),%eax
54360f:	8d 1c c7             	lea    (%edi,%eax,8),%ebx
543612:	8b 42 08             	mov    0x8(%edx),%eax
543615:	8d 04 80             	lea    (%eax,%eax,4),%eax
543618:	8d 0c c7             	lea    (%edi,%eax,8),%ecx
54361b:	8b 42 0c             	mov    0xc(%edx),%eax
54361e:	8d 04 80             	lea    (%eax,%eax,4),%eax
543621:	8d 14 c7             	lea    (%edi,%eax,8),%edx
543624:	8a 41 08             	mov    0x8(%ecx),%al
543627:	0a 43 08             	or     0x8(%ebx),%al
54362a:	89 95 70 fe ff ff    	mov    %edx,-0x190(%ebp)
543630:	a8 01                	test   $0x1,%al
543632:	74 29                	je     0x54365d
543634:	52                   	push   %edx
543635:	e8 16 84 00 00       	call   0x54ba50
54363a:	83 c4 04             	add    $0x4,%esp
54363d:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
543643:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
543649:	83 c6 14             	add    $0x14,%esi
54364c:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
543652:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
543658:	e9 57 f2 ff ff       	jmp    0x5428b4
54365d:	51                   	push   %ecx
54365e:	e8 3d 70 00 00       	call   0x54a6a0
543663:	8b f8                	mov    %eax,%edi
543665:	8b f2                	mov    %edx,%esi
543667:	53                   	push   %ebx
543668:	89 bd d4 fd ff ff    	mov    %edi,-0x22c(%ebp)
54366e:	89 b5 d8 fd ff ff    	mov    %esi,-0x228(%ebp)
543674:	e8 27 70 00 00       	call   0x54a6a0
543679:	8b d8                	mov    %eax,%ebx
54367b:	83 c4 08             	add    $0x8,%esp
54367e:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
543684:	8a 08                	mov    (%eax),%cl
543686:	80 f9 65             	cmp    $0x65,%cl
543689:	75 09                	jne    0x543694
54368b:	23 fb                	and    %ebx,%edi
54368d:	23 f2                	and    %edx,%esi
54368f:	e9 9e 00 00 00       	jmp    0x543732
543694:	80 f9 66             	cmp    $0x66,%cl
543697:	75 09                	jne    0x5436a2
543699:	0b fb                	or     %ebx,%edi
54369b:	0b f2                	or     %edx,%esi
54369d:	e9 90 00 00 00       	jmp    0x543732
5436a2:	8b c3                	mov    %ebx,%eax
5436a4:	0b c2                	or     %edx,%eax
5436a6:	0f 84 86 00 00 00    	je     0x543732
5436ac:	85 d2                	test   %edx,%edx
5436ae:	7f 2a                	jg     0x5436da
5436b0:	7c 04                	jl     0x5436b6
5436b2:	85 db                	test   %ebx,%ebx
5436b4:	73 19                	jae    0x5436cf
5436b6:	b0 cf                	mov    $0xcf,%al
5436b8:	2a c1                	sub    %cl,%al
5436ba:	8a c8                	mov    %al,%cl
5436bc:	83 fa ff             	cmp    $0xffffffff,%edx
5436bf:	7c 19                	jl     0x5436da
5436c1:	7f 05                	jg     0x5436c8
5436c3:	83 fb c0             	cmp    $0xffffffc0,%ebx
5436c6:	76 12                	jbe    0x5436da
5436c8:	f7 db                	neg    %ebx
5436ca:	83 d2 00             	adc    $0x0,%edx
5436cd:	f7 da                	neg    %edx
5436cf:	85 d2                	test   %edx,%edx
5436d1:	7c 36                	jl     0x543709
5436d3:	7f 05                	jg     0x5436da
5436d5:	83 fb 40             	cmp    $0x40,%ebx
5436d8:	72 2f                	jb     0x543709
5436da:	85 f6                	test   %esi,%esi
5436dc:	7f 12                	jg     0x5436f0
5436de:	7c 04                	jl     0x5436e4
5436e0:	85 ff                	test   %edi,%edi
5436e2:	73 0c                	jae    0x5436f0
5436e4:	80 f9 67             	cmp    $0x67,%cl
5436e7:	74 07                	je     0x5436f0
5436e9:	83 cf ff             	or     $0xffffffff,%edi
5436ec:	0b f7                	or     %edi,%esi
5436ee:	eb 42                	jmp    0x543732
5436f0:	0f 57 c0             	xorps  %xmm0,%xmm0
5436f3:	66 0f 13 85 74 fe ff 	movlpd %xmm0,-0x18c(%ebp)
5436fa:	ff
5436fb:	8b b5 78 fe ff ff    	mov    -0x188(%ebp),%esi
543701:	8b bd 74 fe ff ff    	mov    -0x18c(%ebp),%edi
543707:	eb 29                	jmp    0x543732
543709:	f3 0f 7e 8d d4 fd ff 	movq   -0x22c(%ebp),%xmm1
543710:	ff
543711:	66 0f 6e c3          	movd   %ebx,%xmm0
543715:	80 f9 67             	cmp    $0x67,%cl
543718:	75 57                	jne    0x543771
54371a:	66 0f f3 c8          	psllq  %xmm0,%xmm1
54371e:	66 0f d6 8d 74 fe ff 	movq   %xmm1,-0x18c(%ebp)
543725:	ff
543726:	8b bd 74 fe ff ff    	mov    -0x18c(%ebp),%edi
54372c:	8b b5 78 fe ff ff    	mov    -0x188(%ebp),%esi
543732:	8b 8d 70 fe ff ff    	mov    -0x190(%ebp),%ecx
543738:	ba 40 3e 00 00       	mov    $0x3e40,%edx
54373d:	66 8b 41 08          	mov    0x8(%ecx),%ax
543741:	66 23 c2             	and    %dx,%ax
543744:	89 39                	mov    %edi,(%ecx)
543746:	66 83 c8 04          	or     $0x4,%ax
54374a:	89 71 04             	mov    %esi,0x4(%ecx)
54374d:	66 89 41 08          	mov    %ax,0x8(%ecx)
543751:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
543757:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54375d:	83 c6 14             	add    $0x14,%esi
543760:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
543766:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
54376c:	e9 43 f1 ff ff       	jmp    0x5428b4
543771:	66 0f d3 c8          	psrlq  %xmm0,%xmm1
543775:	66 0f d6 8d 74 fe ff 	movq   %xmm1,-0x18c(%ebp)
54377c:	ff
54377d:	85 f6                	test   %esi,%esi
54377f:	7f a5                	jg     0x543726
543781:	7c 04                	jl     0x543787
543783:	85 ff                	test   %edi,%edi
543785:	73 9f                	jae    0x543726
543787:	b9 40 00 00 00       	mov    $0x40,%ecx
54378c:	83 c8 ff             	or     $0xffffffff,%eax
54378f:	2b cb                	sub    %ebx,%ecx