Oil passes $104 in Asia on Middle East tensions