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
  |