I palindrome the source code, you palindrome the input! This is a rip-off of a rip-off of a  rip-off of a rip-off of a rip-off. Go upvote those!
Your task, if you accept it, is to write a program/function that outputs/returns its input/args. The tricky part is that if I make your source code palindrome via duplicating reversed source code after the original code, the output must be returned &quot;palindromize&quot;.
The source code will be only duplicated once.
Examples
Let's say your source code is ABC and the input is xyz. If i run ABC the output must be xyz. But if i run ABCCBA instead, the output must be xyzzyx.
Put it in a table:
Input: &quot;xyz&quot;
code ABC =&gt; &quot;xyz&quot;
code ABCCBA =&gt; &quot;xyzzyx&quot; (aware that it isn't &quot;xyzyx&quot;)

Details
Your code before processing should return the input.
Your code after processing should return the input with reversed input following no matter what input is.
The process:
Your code, no matter what, will be followed with a reversed code after it. Even if it's already palindrome by itself.
Multiline code:
Multiline code will be treated as single line code but with \n(newline)
Rules

Input can be taken in any convenient format.
Output can be in any convenient format as well. As long as it follow the input-reversed input order.
Standard Loopholes are forbidden.

Scoring
This is code-golf so the answer with the fewest amount of bytes wins.
Haskell, Full program, 39 bytes
iddi=(++)&lt;*&gt;reverse;main=interact--
 id

Try it online!
Mirrored

iddi=(++)&lt;*&gt;reverse;main=interact--
 iddi 
--tcaretni=niam;esrever&gt;*&lt;)++(=iddi

Try it online!
Very simple approach for a full program.  We have two &quot;lines&quot; (separated by ; rather than an actual line break) of boilerplate ending in -- and then the function id.  When the program is reversed id gets changed to iddi, which we have defined to do the intended operation.
Haskell, Function, 20 bytes
f x=x--x esrever++ 


Try it online!
Mirrored
f x=x--x esrever++ 

 ++reverse x--x=x f

Try it online!
This one is also a pretty simple approach.  We have a function f x=x and   a payload hidden in a comment.  When the code is revealed the payload extends our function with ++reverse x.
Haskell, Function, No Comments, 95 bytes

i=id
ko 'a' b=i id b
ko u m=i reverse m
u=flip ko
k s=&quot;ab&quot;&gt;&gt;=s
yf i=k&lt;$&gt;u
erehw l=l
fy=i erehw 

Try it online!
Mirrored
i=id
ko 'a' b=i id b
ko u m=i reverse m
u=flip ko
k s=&quot;ab&quot;&gt;&gt;=s
yf i=k&lt;$&gt;u
erehw l=l
fy=i erehw  where i=yf
l=l where
u&gt;$&lt;k=i fy
s=&gt;&gt;&quot;ba&quot;=s k
ok pilf=u
m esrever i=m u ok
b di i=b 'a' ok
di=i

Try it online!
The relevant function is fy. This one is likely not optimal.  I will explain it when I shorten it down a bit.