Hunter0x7c7
2022-08-11 b8230139fb40edea387617b6accd8371e37eda58
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "textflag.h"
 
// func xorfwd(x []byte)
TEXT ·xorfwd(SB),NOSPLIT,$0
  MOVQ x+0(FP), SI  // x[i]
  MOVQ x_len+8(FP), CX  // x.len
  MOVQ x+0(FP), DI
  ADDQ $4, DI       // x[i+4]
  SUBQ $4, CX
xorfwdloop:
  MOVL (SI), AX
  XORL AX, (DI)
  ADDQ $4, SI
  ADDQ $4, DI
  SUBQ $4, CX
 
  CMPL CX, $0
  JE xorfwddone
 
  JMP xorfwdloop
xorfwddone:        
  RET
 
// func xorbkd(x []byte)
TEXT ·xorbkd(SB),NOSPLIT,$0
  MOVQ x+0(FP), SI
  MOVQ x_len+8(FP), CX  // x.len
  MOVQ x+0(FP), DI
  ADDQ CX, SI       // x[-8]
  SUBQ $8, SI
  ADDQ CX, DI       // x[-4]
  SUBQ $4, DI
  SUBQ $4, CX
xorbkdloop:
  MOVL (SI), AX
  XORL AX, (DI)
  SUBQ $4, SI
  SUBQ $4, DI
  SUBQ $4, CX
 
  CMPL CX, $0
  JE xorbkddone
  
  JMP xorbkdloop
 
xorbkddone:        
  RET