code: def _mul32(ins):
      
      op1, op2 = tuple(ins.quad[2:])
      if _int_ops(op1, op2):
          op1, op2 = _int_ops(op1, op2)
          output = _32bit_oper(op1)
  
          if op2 == 1:
              output.append('push de')
              output.append('push hl')
              return output  # A * 1 = Nothing
  
          if op2 == 0:
              output.append('ld hl, 0')
              output.append('push hl')
              output.append('push hl')
              return output
  
      output = _32bit_oper(op1, op2)
      output.append('call __MUL32')  # Inmmediate
      output.append('push de')
      output.append('push hl')
      REQUIRES.add('mul32.asm')
      return output
docs: Multiplies two last 32bit values on top of the stack and
      and returns the value on top of the stack
  
      Optimizations done:
  
          * If any operand is 1, do nothing
          * If any operand is 0, push 0