End the tabs versus space war End the tabs versus space war

So, there has been a great deal of debate of whether to use tabs or spaces to indent/format code. Can you help the university settle the dispute, by going to an incredibly crazy unique method of formatting.

Your job is to write a full program or function which expands all tabs into four spaces. And then replaces a run of n leading spaces with "/(n - two stars here)/". You will receive input over multiple lines in any reasonable format (single string array of strings for each new line. Columnar array etc.) 


Sample input shamelessly stolen. Note that since tabs get automagically expanded to four spaces on SE I represent it as the "^" character, but you must handle tabs (codepoint 0x09) as well. All "^" characters represent a tabulation.

Calculate the value 256 and test if it's zero
If the interpreter errors on overflow this is where it'll happen
++++++++[&gt;++++++++&lt;-]&gt;[&lt;++++&gt;-]
+&lt;[&gt;-&lt;
    Not zero so multiply by 256 again to get 65536
    [&gt;++++&lt;-]&gt;[&lt;++++++++&gt;-]&lt;[&gt;++++++++&lt;-]
    +&gt;[&gt;
        # Print "32"
        ++++++++++[&gt;+++++&lt;-]&gt;+.-.[-]&lt;
    &lt;[-]&lt;-&gt;] &lt;[&gt;&gt;
        # Print "16"
        +++++++[&gt;+++++++&lt;-]&gt;.+++++.[-]&lt;
&lt;&lt;-]] &gt;[&gt;
    # Print "8"
    ++++++++[&gt;+++++++&lt;-]&gt;.[-]&lt;
&lt;-]&lt;
# Print " bit cells\n"
+++++++++++[&gt;+++&gt;+++++++++&gt;+++++++++&gt;+&lt;&lt;&lt;&lt;-]&gt;-.&gt;-.+++++++.+++++++++++.&lt;.
&gt;&gt;.++.+++++++..&lt;-.&gt;&gt;-
Clean up used cells.
[[-]&lt;]l
^this is preceded by a tab
^^two tabs
^^^three tabs etcetera! 


Sample output

Calculate the value 256 and test if it's zero
If the interpreter errors on overflow this is where it'll happen
++++++++[&gt;++++++++&lt;-]&gt;[&lt;++++&gt;-]
+&lt;[&gt;-&lt;
/**/Not zero so multiply by 256 again to get 65536
/**/[&gt;++++&lt;-]&gt;[&lt;++++++++&gt;-]&lt;[&gt;++++++++&lt;-]
/**/+&gt;[&gt;
/******/# Print "32"
/******/++++++++++[&gt;+++++&lt;-]&gt;+.-.[-]&lt;
/**/&lt;[-]&lt;-&gt;] &lt;[&gt;&gt;
/******/# Print "16"
/******/+++++++[&gt;+++++++&lt;-]&gt;.+++++.[-]&lt;
&lt;&lt;-]] &gt;[&gt;
/**/# Print "8"
/**/++++++++[&gt;+++++++&lt;-]&gt;.[-]&lt;
&lt;-]&lt;
# Print " bit cells\n"
+++++++++++[&gt;+++&gt;+++++++++&gt;+++++++++&gt;+&lt;&lt;&lt;&lt;-]&gt;-.&gt;-.+++++++.+++++++++++.&lt;.
&gt;&gt;.++.+++++++..&lt;-.&gt;&gt;-
Clean up used cells.
[[-]&lt;]l
/**/this is preceded by a tab
/******/two tabs
/**********/three tabs etcetera! 




Because the university needs space to download both Vim and Emacs, you are allowed very little storage for your code. Therefore this is code-golf and the shortest code wins. You may assume that input is well formed and lines with less than four spaces (after replacement of tabs) may result in undefined behavior.

Disclaimer

This "excellent" formatting strategy came courtesy of Geobits, and is reproduced with his permission. No programmers were harmed during the production of this challenge.
Vim, 37, 34, 33, 32 bytes

:%s/\t/    /g|%norm ^hr/hv0r*r/


Try it online!

Note that this requires a trailing carriage return (enter) in vim, although not in the online interpreter.

This uses the V interpreter because it's backwards compatible. A very straightforward solution. 

Here's a gif that lets you see the solution happen in real time. This uses a slightly older version, and I added some extra keystrokes to make it run slower so you can see what happens:



And here is the explanation of how it works:

:%s/\t/    /g           "Replace every tab with 4 spaces
|                       "AND
%norm                   "On every line:
      ^                 "  Move to the first non-whitespace char
       h                "  Move one character to the left. If there is none, the command will end here.
         r/             "  Replace it with a slash
           h            "  Move to the left
            v0          "  Visually select everything until the first column
              r*        "  Replace this selection with asterisks
                r/      "  Replace the first character with a slash