1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
...
; crc = crc_16(merge);
31: (85) call pc+11
caller:
frame1: R6=scalar(id=2,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R7=scalar(id=1,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0
callee:
frame2: R1=scalar() R2=scalar(id=2,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R3=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R4=scalar(id=1,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0
43: frame2: R1=scalar() R2=scalar(id=2,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R3=scalar(smin=0,smax=umax=0xffffffff,var_off=(0x0; 0xffffffff)) R4=scalar(id=1,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R10=fp0
; key = (int) ((crc >> 8) ^ (port >> i * 8 & 0xff)) & 0x00FF;
43: (bf) r3 = r1 ; frame2: R1=scalar(id=3) R3_w=scalar(id=3)
44: (57) r3 &= 255 ; frame2: R3_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))
; key = crc16tab[key];
45: (67) r3 <<= 1 ; frame2: R3_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=510,var_off=(0x0; 0x1fe))
46: (18) r2 = 0xffff8f8b9a03051c ; frame2: R2_w=map_value(map=.rodata,ks=4,vs=524,off=12)
48: (18) r4 = 0xffff8f8b9a03051c ; frame2: R4_w=map_value(map=.rodata,ks=4,vs=524,off=12)
50: (0f) r4 += r3 ; frame2: R3_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=510,var_off=(0x0; 0x1fe)) R4_w=map_value(map=.rodata,ks=4,vs=524,off=12,smin=smin32=0,smax=umax=smax32=umax32=510,var_off=(0x0; 0x1fe))
51: (69) r3 = *(u16 *)(r4 +0) ; frame2: R3_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R4_w=map_value(map=.rodata,ks=4,vs=524,off=12,smin=smin32=0,smax=umax=smax32=umax32=510,var_off=(0x0; 0x1fe))
; key = (int) ((crc >> 8) ^ (port >> i * 8 & 0xff)) & 0x00FF;
52: (bf) r4 = r1 ; frame2: R1=scalar(id=3) R4_w=scalar(id=3)
53: (77) r4 >>= 8 ; frame2: R4_w=scalar(smin=0,smax=umax=0xffffffffffffff,var_off=(0x0; 0xffffffffffffff))
; key = (int) ((crc >> 8) ^ (port >> i * 8 & 0xff)) & 0x00FF;
54: (57) r4 &= 255 ; frame2: R4_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))
55: (bf) r5 = r3 ; frame2: R3_w=scalar(id=4,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff)) R5_w=scalar(id=4,smin=smin32=0,smax=umax=smax32=umax32=0xffff,var_off=(0x0; 0xffff))
56: (77) r5 >>= 8 ; frame2: R5_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))
57: (af) r4 ^= r5 ; frame2: R4_w=scalar() R5_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=255,var_off=(0x0; 0xff))
; crc = (crc << 8) ^ key;
58: (67) r3 <<= 8 ; frame2: R3_w=scalar(smin=smin32=0,smax=umax=smax32=umax32=0xffff00,var_off=(0x0; 0xffff00))
; key = crc16tab[key];
59: (67) r4 <<= 1 ; frame2: R4_w=scalar(smax=0x7ffffffffffffffe,umax=0xfffffffffffffffe,smax32=0x7ffffffe,umax32=0xfffffffe,var_off=(0x0; 0xfffffffffffffffe))
60: (18) r5 = 0xffff8f8b9a03051c ; frame2: R5_w=map_value(map=.rodata,ks=4,vs=524,off=12)
62: (0f) r5 += r4
math between map_value pointer and register with unbounded min value is not allowed
processed 41 insns (limit 1000000) max_states_per_insn 0 total_states 2 peak_states 2 mark_read 1
|