51542f:	3b f3                	cmp    %ebx,%esi
515431:	77 08                	ja     0x51543b
515433:	3b d1                	cmp    %ecx,%edx
515435:	0f 83 44 01 00 00    	jae    0x51557f
51543b:	8b 54 24 14          	mov    0x14(%esp),%edx
51543f:	8d 5a ff             	lea    -0x1(%edx),%ebx
515442:	03 df                	add    %edi,%ebx
515444:	3b f3                	cmp    %ebx,%esi
515446:	77 0a                	ja     0x515452
515448:	39 54 24 2c          	cmp    %edx,0x2c(%esp)
51544c:	0f 83 c6 00 00 00    	jae    0x515518
515452:	3b cb                	cmp    %ebx,%ecx
515454:	77 0a                	ja     0x515460
515456:	39 54 24 34          	cmp    %edx,0x34(%esp)
51545a:	0f 83 b8 00 00 00    	jae    0x515518
515460:	8b df                	mov    %edi,%ebx
515462:	83 e3 c0             	and    $0xffffffc0,%ebx
515465:	89 5c 24 2c          	mov    %ebx,0x2c(%esp)
515469:	8d 59 20             	lea    0x20(%ecx),%ebx
51546c:	8b 7c 24 2c          	mov    0x2c(%esp),%edi
515470:	89 5c 24 34          	mov    %ebx,0x34(%esp)
515474:	8d 58 50             	lea    0x50(%eax),%ebx
515477:	8b c1                	mov    %ecx,%eax
515479:	2b c6                	sub    %esi,%eax
51547b:	89 44 24 38          	mov    %eax,0x38(%esp)
51547f:	8b c2                	mov    %edx,%eax
515481:	2b c1                	sub    %ecx,%eax
515483:	8b 4c 24 34          	mov    0x34(%esp),%ecx
515487:	8b f0                	mov    %eax,%esi
515489:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
515490:	0f 10 43 f0          	movups -0x10(%ebx),%xmm0
515494:	8b 44 24 38          	mov    0x38(%esp),%eax
515498:	8d 49 40             	lea    0x40(%ecx),%ecx
51549b:	0f 10 14 2a          	movups (%edx,%ebp,1),%xmm2
51549f:	03 c3                	add    %ebx,%eax
5154a1:	0f 11 53 f0          	movups %xmm2,-0x10(%ebx)
5154a5:	0f 28 ca             	movaps %xmm2,%xmm1
5154a8:	0f 10 14 30          	movups (%eax,%esi,1),%xmm2
5154ac:	66 0f ef c8          	pxor   %xmm0,%xmm1
5154b0:	0f 10 03             	movups (%ebx),%xmm0
5154b3:	0f 11 49 a0          	movups %xmm1,-0x60(%ecx)
5154b7:	0f 11 13             	movups %xmm2,(%ebx)
5154ba:	0f 28 ca             	movaps %xmm2,%xmm1
5154bd:	0f 10 54 0e c0       	movups -0x40(%esi,%ecx,1),%xmm2
5154c2:	66 0f ef c8          	pxor   %xmm0,%xmm1
5154c6:	0f 10 43 10          	movups 0x10(%ebx),%xmm0
5154ca:	0f 11 08             	movups %xmm1,(%eax)
5154cd:	0f 11 53 10          	movups %xmm2,0x10(%ebx)
5154d1:	0f 28 ca             	movaps %xmm2,%xmm1
5154d4:	0f 10 54 2a 30       	movups 0x30(%edx,%ebp,1),%xmm2
5154d9:	83 c5 40             	add    $0x40,%ebp
5154dc:	66 0f ef c8          	pxor   %xmm0,%xmm1
5154e0:	8b c5                	mov    %ebp,%eax
5154e2:	0f 10 43 20          	movups 0x20(%ebx),%xmm0
5154e6:	0f 11 49 c0          	movups %xmm1,-0x40(%ecx)
5154ea:	0f 28 ca             	movaps %xmm2,%xmm1
5154ed:	66 0f ef c8          	pxor   %xmm0,%xmm1
5154f1:	0f 11 53 20          	movups %xmm2,0x20(%ebx)
5154f5:	83 c3 40             	add    $0x40,%ebx
5154f8:	0f 11 49 d0          	movups %xmm1,-0x30(%ecx)
5154fc:	3b ef                	cmp    %edi,%ebp
5154fe:	72 90                	jb     0x515490
515500:	8b 7c 24 3c          	mov    0x3c(%esp),%edi
515504:	8b 74 24 20          	mov    0x20(%esp),%esi
515508:	8b 5c 24 24          	mov    0x24(%esp),%ebx
51550c:	8b 4c 24 18          	mov    0x18(%esp),%ecx
515510:	3b c7                	cmp    %edi,%eax
515512:	73 44                	jae    0x515558
515514:	8b 44 24 10          	mov    0x10(%esp),%eax
515518:	8d 58 40             	lea    0x40(%eax),%ebx
51551b:	89 7c 24 38          	mov    %edi,0x38(%esp)
51551f:	8b c1                	mov    %ecx,%eax
515521:	2b d1                	sub    %ecx,%edx
515523:	2b c6                	sub    %esi,%eax
515525:	89 54 24 20          	mov    %edx,0x20(%esp)
515529:	03 dd                	add    %ebp,%ebx
51552b:	89 44 24 3c          	mov    %eax,0x3c(%esp)
51552f:	8b f7                	mov    %edi,%esi
515531:	2b f5                	sub    %ebp,%esi
515533:	8b ea                	mov    %edx,%ebp
515535:	8d 0c 03             	lea    (%ebx,%eax,1),%ecx
515538:	8a 03                	mov    (%ebx),%al
51553a:	8a 14 29             	mov    (%ecx,%ebp,1),%dl
51553d:	8d 5b 01             	lea    0x1(%ebx),%ebx
515540:	32 c2                	xor    %dl,%al
515542:	88 53 ff             	mov    %dl,-0x1(%ebx)
515545:	88 01                	mov    %al,(%ecx)
515547:	8b 44 24 3c          	mov    0x3c(%esp),%eax
51554b:	83 ee 01             	sub    $0x1,%esi
51554e:	75 e5                	jne    0x515535
515550:	8b 6c 24 38          	mov    0x38(%esp),%ebp
515554:	8b 5c 24 24          	mov    0x24(%esp),%ebx
515558:	8b 7c 24 10          	mov    0x10(%esp),%edi
51555c:	8b f5                	mov    %ebp,%esi
51555e:	f7 de                	neg    %esi
515560:	83 e6 0f             	and    $0xf,%esi
515563:	56                   	push   %esi
515564:	8d 47 40             	lea    0x40(%edi),%eax
515567:	03 c5                	add    %ebp,%eax
515569:	6a 00                	push   $0x0
51556b:	50                   	push   %eax
51556c:	e8 ff d6 0b 00       	call   0x5d2c70
515571:	8d 04 2e             	lea    (%esi,%ebp,1),%eax
515574:	8d 48 20             	lea    0x20(%eax),%ecx
515577:	8d 14 38             	lea    (%eax,%edi,1),%edx
51557a:	e9 eb 00 00 00       	jmp    0x51566a
51557f:	8b 54 24 14          	mov    0x14(%esp),%edx
515583:	eb 93                	jmp    0x515518
515585:	6a 40                	push   $0x40
515587:	68 68 12 63 00       	push   $0x631268
51558c:	50                   	push   %eax
51558d:	c7 44 24 54 40 00 00 	movl   $0x40,0x54(%esp)
515594:	00
515595:	e8 26 3b f0 ff       	call   0x4190c0
51559a:	ff 74 24 24          	push   0x24(%esp)
51559e:	8d 83 d0 00 00 00    	lea    0xd0(%ebx),%eax
5155a4:	50                   	push   %eax
5155a5:	e8 46 dd 01 00       	call   0x5332f0
5155aa:	6a 10                	push   $0x10
5155ac:	8d 83 94 00 00 00    	lea    0x94(%ebx),%eax
5155b2:	c7 43 20 01 00 00 00 	movl   $0x1,0x20(%ebx)
5155b9:	50                   	push   %eax
5155ba:	8d 83 d0 00 00 00    	lea    0xd0(%ebx),%eax
5155c0:	c7 43 70 00 00 00 00 	movl   $0x0,0x70(%ebx)
5155c7:	50                   	push   %eax
5155c8:	e8 f3 dd 01 00       	call   0x5333c0
5155cd:	8b 44 24 50          	mov    0x50(%esp),%eax
5155d1:	83 c4 28             	add    $0x28,%esp
5155d4:	c7 83 a8 00 00 00 0d 	movl   $0xd,0xa8(%ebx)
5155db:	00 00 00
5155de:	c7 83 ac 00 00 00 00 	movl   $0x0,0xac(%ebx)
5155e5:	00 00 00
5155e8:	89 bb b0 00 00 00    	mov    %edi,0xb0(%ebx)
5155ee:	c7 83 b4 00 00 00 00 	movl   $0x0,0xb4(%ebx)
5155f5:	00 00 00
5155f8:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
5155fc:	89 74 24 1c          	mov    %esi,0x1c(%esp)
515600:	74 20                	je     0x515622
515602:	8d 43 20             	lea    0x20(%ebx),%eax
515605:	50                   	push   %eax
515606:	53                   	push   %ebx
515607:	57                   	push   %edi
515608:	ff 74 24 20          	push   0x20(%esp)
51560c:	55                   	push   %ebp
51560d:	e8 ae 3a f0 ff       	call   0x4190c0
515612:	57                   	push   %edi
515613:	8d 83 d0 00 00 00    	lea    0xd0(%ebx),%eax
515619:	55                   	push   %ebp
51561a:	50                   	push   %eax
51561b:	e8 a0 dd 01 00       	call   0x5333c0
515620:	eb 1f                	jmp    0x515641
515622:	8b 74 24 14          	mov    0x14(%esp),%esi
515626:	8d 83 d0 00 00 00    	lea    0xd0(%ebx),%eax
51562c:	57                   	push   %edi
51562d:	56                   	push   %esi
51562e:	50                   	push   %eax
51562f:	e8 8c dd 01 00       	call   0x5333c0
515634:	8d 43 20             	lea    0x20(%ebx),%eax
515637:	50                   	push   %eax
515638:	53                   	push   %ebx
515639:	57                   	push   %edi
51563a:	56                   	push   %esi
51563b:	55                   	push   %ebp
51563c:	e8 7f 3a f0 ff       	call   0x4190c0
515641:	83 c4 20             	add    $0x20,%esp
515644:	8b c7                	mov    %edi,%eax
515646:	f7 d8                	neg    %eax
515648:	83 e0 0f             	and    $0xf,%eax
51564b:	50                   	push   %eax
51564c:	8d 83 d0 00 00 00    	lea    0xd0(%ebx),%eax
515652:	68 68 12 63 00       	push   $0x631268
515657:	50                   	push   %eax
515658:	e8 63 dd 01 00       	call   0x5333c0
51565d:	8b ef                	mov    %edi,%ebp
51565f:	b9 10 00 00 00       	mov    $0x10,%ecx
515664:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
515668:	8b d7                	mov    %edi,%edx
51566a:	8b 74 24 20          	mov    0x20(%esp),%esi
51566e:	83 c4 0c             	add    $0xc,%esp
515671:	0f 10 83 a8 00 00 00 	movups 0xa8(%ebx),%xmm0
515678:	03 f5                	add    %ebp,%esi
51567a:	89 74 24 20          	mov    %esi,0x20(%esp)
51567e:	8b 74 24 18          	mov    0x18(%esp),%esi
515682:	51                   	push   %ecx
515683:	ff 74 24 20          	push   0x20(%esp)
515687:	03 f5                	add    %ebp,%esi
515689:	8d ab d0 00 00 00    	lea    0xd0(%ebx),%ebp
51568f:	55                   	push   %ebp
515690:	0f 11 42 40          	movups %xmm0,0x40(%edx)
515694:	e8 27 dd 01 00       	call   0x5333c0
515699:	ff 74 24 4c          	push   0x4c(%esp)
51569d:	57                   	push   %edi
51569e:	e8 3d c3 ee ff       	call   0x4019e0
5156a3:	8b 4c 24 3c          	mov    0x3c(%esp),%ecx
5156a7:	8d 83 84 00 00 00    	lea    0x84(%ebx),%eax
5156ad:	83 79 08 00          	cmpl   $0x0,0x8(%ecx)
5156b1:	0f 44 44 24 30       	cmove  0x30(%esp),%eax
5156b6:	50                   	push   %eax
5156b7:	55                   	push   %ebp
5156b8:	e8 b3 db 01 00       	call   0x533270
5156bd:	8b 44 24 44          	mov    0x44(%esp),%eax
5156c1:	83 c4 1c             	add    $0x1c,%esp
5156c4:	c7 83 c8 00 00 00 ff 	movl   $0xffffffff,0xc8(%ebx)
5156cb:	ff ff ff
5156ce:	83 78 08 00          	cmpl   $0x0,0x8(%eax)
5156d2:	74 27                	je     0x5156fb
5156d4:	0f 10 83 84 00 00 00 	movups 0x84(%ebx),%xmm0
5156db:	0f 11 06             	movups %xmm0,(%esi)
5156de:	8b 44 24 44          	mov    0x44(%esp),%eax
5156e2:	8b 8c 24 e8 00 00 00 	mov    0xe8(%esp),%ecx
5156e9:	5e                   	pop    %esi
5156ea:	5f                   	pop    %edi
5156eb:	5d                   	pop    %ebp
5156ec:	5b                   	pop    %ebx
5156ed:	33 cc                	xor    %esp,%ecx
5156ef:	e8 32 c3 0b 00       	call   0x5d1a26
5156f4:	81 c4 dc 00 00 00    	add    $0xdc,%esp
5156fa:	c3                   	ret
5156fb:	6a 10                	push   $0x10
5156fd:	ff 74 24 24          	push   0x24(%esp)
515701:	ff 74 24 24          	push   0x24(%esp)
515705:	e8 46 c3 ee ff       	call   0x401a50
51570a:	83 c4 0c             	add    $0xc,%esp
51570d:	85 c0                	test   %eax,%eax
51570f:	74 cd                	je     0x5156de
515711:	8b 4c 24 44          	mov    0x44(%esp),%ecx
515715:	2b f1                	sub    %ecx,%esi
515717:	83 c6 10             	add    $0x10,%esi
51571a:	8d 41 f0             	lea    -0x10(%ecx),%eax
51571d:	50                   	push   %eax
51571e:	6a 00                	push   $0x0
515720:	56                   	push   %esi
515721:	e8 4a d5 0b 00       	call   0x5d2c70
515726:	83 c4 0c             	add    $0xc,%esp
515729:	83 c8 ff             	or     $0xffffffff,%eax
51572c:	eb b4                	jmp    0x5156e2
51572e:	cc                   	int3
51572f:	cc                   	int3
515730:	ff 74 24 04          	push   0x4(%esp)
515734:	e8 97 a9 fd ff       	call   0x4f00d0
515739:	50                   	push   %eax
51573a:	ff 74 24 10          	push   0x10(%esp)
51573e:	e8 3d e5 02 00       	call   0x543c80
515743:	83 c4 0c             	add    $0xc,%esp
515746:	b8 01 00 00 00       	mov    $0x1,%eax
51574b:	c3                   	ret
51574c:	cc                   	int3
51574d:	cc                   	int3
51574e:	cc                   	int3
51574f:	cc                   	int3
515750:	53                   	push   %ebx
515751:	8b 5c 24 10          	mov    0x10(%esp),%ebx
515755:	55                   	push   %ebp
515756:	8b 6c 24 10          	mov    0x10(%esp),%ebp
51575a:	56                   	push   %esi
51575b:	8b 74 24 1c          	mov    0x1c(%esp),%esi
51575f:	57                   	push   %edi
515760:	8b 7c 24 14          	mov    0x14(%esp),%edi
515764:	81 fe 00 00 00 40    	cmp    $0x40000000,%esi
51576a:	72 4f                	jb     0x5157bb
51576c:	8b c6                	mov    %esi,%eax
51576e:	c1 e8 1e             	shr    $0x1e,%eax
515771:	89 44 24 20          	mov    %eax,0x20(%esp)
515775:	57                   	push   %edi
515776:	e8 d5 1a fd ff       	call   0x4e7250
51577b:	83 c4 04             	add    $0x4,%esp
51577e:	50                   	push   %eax
51577f:	57                   	push   %edi
515780:	e8 9b a9 fd ff       	call   0x4f0120
515785:	83 c4 04             	add    $0x4,%esp
515788:	50                   	push   %eax
515789:	57                   	push   %edi
51578a:	e8 41 a9 fd ff       	call   0x4f00d0
51578f:	83 c4 04             	add    $0x4,%esp
515792:	50                   	push   %eax
515793:	68 00 00 00 40       	push   $0x40000000
515798:	55                   	push   %ebp
515799:	53                   	push   %ebx
51579a:	e8 a1 ef 02 00       	call   0x544740
51579f:	83 c4 18             	add    $0x18,%esp
5157a2:	81 ee 00 00 00 40    	sub    $0x40000000,%esi
5157a8:	81 c3 00 00 00 40    	add    $0x40000000,%ebx
5157ae:	81 c5 00 00 00 40    	add    $0x40000000,%ebp
5157b4:	83 6c 24 20 01       	subl   $0x1,0x20(%esp)
5157b9:	75 ba                	jne    0x515775
5157bb:	85 f6                	test   %esi,%esi
5157bd:	74 29                	je     0x5157e8
5157bf:	57                   	push   %edi
5157c0:	e8 8b 1a fd ff       	call   0x4e7250
5157c5:	83 c4 04             	add    $0x4,%esp
5157c8:	50                   	push   %eax
5157c9:	57                   	push   %edi
5157ca:	e8 51 a9 fd ff       	call   0x4f0120
5157cf:	83 c4 04             	add    $0x4,%esp
5157d2:	50                   	push   %eax
5157d3:	57                   	push   %edi
5157d4:	e8 f7 a8 fd ff       	call   0x4f00d0
5157d9:	83 c4 04             	add    $0x4,%esp
5157dc:	50                   	push   %eax
5157dd:	56                   	push   %esi
5157de:	55                   	push   %ebp
5157df:	53                   	push   %ebx
5157e0:	e8 5b ef 02 00       	call   0x544740
5157e5:	83 c4 18             	add    $0x18,%esp
5157e8:	5f                   	pop    %edi
5157e9:	5e                   	pop    %esi
5157ea:	5d                   	pop    %ebp
5157eb:	b8 01 00 00 00       	mov    $0x1,%eax
5157f0:	5b                   	pop    %ebx
5157f1:	c3                   	ret
5157f2:	cc                   	int3
5157f3:	cc                   	int3
5157f4:	cc                   	int3
5157f5:	cc                   	int3
5157f6:	cc                   	int3
5157f7:	cc                   	int3
5157f8:	cc                   	int3
5157f9:	cc                   	int3
5157fa:	cc                   	int3
5157fb:	cc                   	int3
5157fc:	cc                   	int3
5157fd:	cc                   	int3
5157fe:	cc                   	int3
5157ff:	cc                   	int3
515800:	57                   	push   %edi
515801:	8b 7c 24 14          	mov    0x14(%esp),%edi
515805:	85 ff                	test   %edi,%edi
515807:	74 7f                	je     0x515888
515809:	53                   	push   %ebx
51580a:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
51580e:	b8 00 00 00 40       	mov    $0x40000000,%eax
515813:	55                   	push   %ebp
515814:	8b 6c 24 18          	mov    0x18(%esp),%ebp
515818:	3b f8                	cmp    %eax,%edi
51581a:	56                   	push   %esi
51581b:	8b f7                	mov    %edi,%esi
51581d:	0f 43 f0             	cmovae %eax,%esi
515820:	3b fe                	cmp    %esi,%edi
515822:	72 5a                	jb     0x51587e
515824:	53                   	push   %ebx
515825:	e8 16 a9 fd ff       	call   0x4f0140
51582a:	53                   	push   %ebx
51582b:	89 44 24 28          	mov    %eax,0x28(%esp)
51582f:	e8 1c 1a fd ff       	call   0x4e7250
515834:	83 c4 08             	add    $0x8,%esp
515837:	50                   	push   %eax
515838:	8d 44 24 24          	lea    0x24(%esp),%eax
51583c:	50                   	push   %eax
51583d:	53                   	push   %ebx
51583e:	e8 dd a8 fd ff       	call   0x4f0120