En el primer caso estas pasando como parametro a la funcion1 un numero con todos los bits a 0, excepto los que ocupan las posiciones var1 y var2, que estaran a 1. En el caso que pones como ejemplo, el numero que pasas es 100000100, o sea, 260 en decimal.
En el segundo caso, la instruccion PORTB &= ~(0x01 << var1); te pone a 0 el pin de PORTB que ocupe la posicion var1.
Por el contrario, La instruccion PORTB |= 0x01 << var1; te pone a 1 dicho pin.
Despues de ver la respuesta del primer caso, el ultimo es facil ¿no?