| 
				
			 | 
			
			
				
				@@ -545,8 +545,7 @@ alloc_basemem: 
			 | 
		
		
	
		
			
			| 
				545
			 | 
			
				545
			 | 
			
			
				
				  * Free space allocated with alloc_basemem. 
			 | 
		
		
	
		
			
			| 
				546
			 | 
			
				546
			 | 
			
			
				
				  * 
			 | 
		
		
	
		
			
			| 
				547
			 | 
			
				547
			 | 
			
			
				
				  * Parameters: 
			 | 
		
		
	
		
			
			| 
				548
			 | 
			
				
			 | 
			
			
				
				- *   %ax : .text16 segment address 
			 | 
		
		
	
		
			
			| 
				549
			 | 
			
				
			 | 
			
			
				
				- *   %bx : .data16 segment address 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				548
			 | 
			
			
				
				+ *   none (.text16 segment address is implicit in %cs) 
			 | 
		
		
	
		
			
			| 
				550
			 | 
			
				549
			 | 
			
			
				
				  * Returns: 
			 | 
		
		
	
		
			
			| 
				551
			 | 
			
				550
			 | 
			
			
				
				  *   %ax : 0 if successfully freed 
			 | 
		
		
	
		
			
			| 
				552
			 | 
			
				551
			 | 
			
			
				
				  * Corrupts: 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -559,14 +558,14 @@ alloc_basemem: 
			 | 
		
		
	
		
			
			| 
				559
			 | 
			
				558
			 | 
			
			
				
				 free_basemem: 
			 | 
		
		
	
		
			
			| 
				560
			 | 
			
				559
			 | 
			
			
				
				 	/* Preserve registers */ 
			 | 
		
		
	
		
			
			| 
				561
			 | 
			
				560
			 | 
			
			
				
				 	pushw	%fs 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				561
			 | 
			
			
				
				+	pushw	%ax 
			 | 
		
		
	
		
			
			| 
				562
			 | 
			
				562
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				563
			 | 
			
				563
			 | 
			
			
				
				 	/* Check FBMS counter */ 
			 | 
		
		
	
		
			
			| 
				564
			 | 
			
				
			 | 
			
			
				
				-	pushw	%ax 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				564
			 | 
			
			
				
				+	movw	%cs, %ax 
			 | 
		
		
	
		
			
			| 
				565
			 | 
			
				565
			 | 
			
			
				
				 	shrw	$6, %ax 
			 | 
		
		
	
		
			
			| 
				566
			 | 
			
				566
			 | 
			
			
				
				 	pushw	$0x40 
			 | 
		
		
	
		
			
			| 
				567
			 | 
			
				567
			 | 
			
			
				
				 	popw	%fs 
			 | 
		
		
	
		
			
			| 
				568
			 | 
			
				568
			 | 
			
			
				
				 	cmpw	%ax, %fs:0x13 
			 | 
		
		
	
		
			
			| 
				569
			 | 
			
				
			 | 
			
			
				
				-	popw	%ax 
			 | 
		
		
	
		
			
			| 
				570
			 | 
			
				569
			 | 
			
			
				
				 	jne	1f 
			 | 
		
		
	
		
			
			| 
				571
			 | 
			
				570
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				572
			 | 
			
				571
			 | 
			
			
				
				 	/* Check hooked interrupt count */ 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -574,6 +573,7 @@ free_basemem: 
			 | 
		
		
	
		
			
			| 
				574
			 | 
			
				573
			 | 
			
			
				
				 	jne	1f 
			 | 
		
		
	
		
			
			| 
				575
			 | 
			
				574
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				576
			 | 
			
				575
			 | 
			
			
				
				 	/* OK to free memory */ 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				576
			 | 
			
			
				
				+	movw	%cs, %ax 
			 | 
		
		
	
		
			
			| 
				577
			 | 
			
				577
			 | 
			
			
				
				 	addw	$_text16_memsz_pgh, %ax 
			 | 
		
		
	
		
			
			| 
				578
			 | 
			
				578
			 | 
			
			
				
				 	addw	$_data16_memsz_pgh, %ax 
			 | 
		
		
	
		
			
			| 
				579
			 | 
			
				579
			 | 
			
			
				
				 	shrw	$6, %ax 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -581,6 +581,7 @@ free_basemem: 
			 | 
		
		
	
		
			
			| 
				581
			 | 
			
				581
			 | 
			
			
				
				 	xorw	%ax, %ax 
			 | 
		
		
	
		
			
			| 
				582
			 | 
			
				582
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				583
			 | 
			
				583
			 | 
			
			
				
				 1:	/* Restore registers and return */ 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				584
			 | 
			
			
				
				+	popw	%ax 
			 | 
		
		
	
		
			
			| 
				584
			 | 
			
				585
			 | 
			
			
				
				 	popw	%fs 
			 | 
		
		
	
		
			
			| 
				585
			 | 
			
				586
			 | 
			
			
				
				 	ret 
			 | 
		
		
	
		
			
			| 
				586
			 | 
			
				587
			 | 
			
			
				
				 	.size free_basemem, . - free_basemem 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -872,8 +873,7 @@ close_payload: 
			 | 
		
		
	
		
			
			| 
				872
			 | 
			
				873
			 | 
			
			
				
				  * Uninstall all text and data segments. 
			 | 
		
		
	
		
			
			| 
				873
			 | 
			
				874
			 | 
			
			
				
				  * 
			 | 
		
		
	
		
			
			| 
				874
			 | 
			
				875
			 | 
			
			
				
				  * Parameters: 
			 | 
		
		
	
		
			
			| 
				875
			 | 
			
				
			 | 
			
			
				
				- *   %ax  : .text16 segment address 
			 | 
		
		
	
		
			
			| 
				876
			 | 
			
				
			 | 
			
			
				
				- *   %bx  : .data16 segment address 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				876
			 | 
			
			
				
				+ *   none (.text16 segment address is implicit in %cs) 
			 | 
		
		
	
		
			
			| 
				877
			 | 
			
				877
			 | 
			
			
				
				  * Returns: 
			 | 
		
		
	
		
			
			| 
				878
			 | 
			
				878
			 | 
			
			
				
				  *   none 
			 | 
		
		
	
		
			
			| 
				879
			 | 
			
				879
			 | 
			
			
				
				  * Corrupts: 
			 |