I fixed it it had to do with the stack pointer 
Code:
.include "tn2313def.inc"
.def devTmp = R16
.def cmdTmp = R17
.def mask = R18
.def temp = R19
.def d1 = R20
.def d2 = R21
.def d3 = R22
.def sPulse = R23
.def MyIr = R24
.def d4 = R25
.org 0x0000
RESET:
ldi R26,RAMEND ; Initial Stack Pointer to SRAM END address (RAMEND)
out SPL,R26 ; Stack Pointer (SP) = RAMEND
ldi sPulse, 0x0C ;12 * (200us) = 2.4mS
ldi d1, 0x00
ldi d2, 0x00
ldi d3, 0x00
ldi cmdTmp,0x00
ldi devTmp,0x00
ldi temp,0x01
ldi mask,0b11111110
out DDRB,mask ; port B all outputs
out PORTB,temp ; initialize port B
MainLoop:
rcall Delay100mS
clr d1
clr d2
clr d3
clr cmdTmp
rcall GetSirc
sbi PORTB,1
cpi cmdTmp,0x06
brne DoneM
cbi PORTB,1
DoneM:
rjmp MainLoop
try2:
sbi PORTB,1
rjmp MainLoop
GetSirc:
rcall WaitLow
GetStart:
inc d3
rcall Delay200uS
SBIC PINB,0
rjmp GetStart ;Pin still low add more
cpi d3,11 ;The pin is now high
brlo GetSirc ;if the count is less than 11 bad start
cpi d3,13 ;if the count is equal to or geater than 14 bad start
brsh GetSirc
ldi d3, 0x00 ;If it made it here the start pulse was ok
ldi d4, 0x07
GetSeven:
dec d4
lsr cmdTmp
repeatS:
rcall WaitLow
inc d3
rcall Delay200uS
SBIC PINB,0
rjmp repeatS ;If pin still low repeat
cpi d3,0x05
brlo DoneOring
ori cmdTmp,$40
DoneOring:
cpi d4, 0x00 ;Check if collected 7 bits
brne GetSeven
ldi d3, 0x00
ldi d4, 0x05
GetFive:
dec d4
lsr devTmp
repeatF:
rcall WaitLow
inc d3
rcall Delay200uS
SBIC PINB,0
rjmp repeatF ;If pin still low repeat
cpi d3,0x05
brlo DoneOring2
ori devTmp,$10
DoneOring2:
cpi d4, 0x00 ;Check if collected 7 bits
brne GetFive
ldi d3, 0x00
ldi d4, 0x00
ret
Delay200uS: ;delay 202us @ 8mhz
ldi d1, $06
L2:
ldi d2, $59
L3:
dec d2
brne L3
dec d1
brne L2
ret
WaitLow:
SBIS PINB,0
rjmp WaitLow
ret
; =============================
; delay loop generator
; 800000 cycles: (100mS)
; -----------------------------
; delaying 799995 cycles:
Delay100mS:
ldi d1, $5F
WGLOOP0: ldi d2, $17
WGLOOP1: ldi d3, $79
WGLOOP2: dec d3
brne WGLOOP2
dec d2
brne WGLOOP1
dec d1
brne WGLOOP0
; -----------------------------
; delaying 3 cycles:
ldi d1, $01
WGLOOP3: dec d1
brne WGLOOP3
; -----------------------------
; delaying 2 cycles:
nop
nop
; =============================
ret
I got it to work when i press button 7 aka 0x06 . I chose a nice number to test. The issue is it works 1 time. Like when i press the wrong number or button it should turn off the LED but no luck