Brain-Flak, 158 154 148 140 138138 126 bytes
(({}<>)(((([()()()]<>)){}<>)<([{}()()()]({}))>)(([{}]){})>{((()()()){}){}(<{}>)}{}))([()]{()(<{}>)}{})(({<{}>{}((<>))}{}){}<{}>{<({}[()])><>({})<>}{})
Explanation
This code is pretty simple. We make copies of the top two items on the stack, we subtract 6 from one and 9 from the other. We then take the not
of the two values. We and
those values, multiply the result by 12. Multiply the inputs and subtract the two results.