Function at 0x1404159f0
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
mov r8d, dword [rsp + 0x38]
mov r9d, r8d
not r9d
mov eax, r9d
and eax, 0x94c507f6
mov r10d, r8d
xor r10d, 0x6b3af809
or r10d, eax
not r10d
or r10d, eax
add r10d, dword [0x14066c240]
cmp ecx, r10d
jne 0x140415a99
test edx, edx
je 0x140415b09
movzx eax, byte [0x14066c103]
mov ecx, r8d
not cl
mov edx, r8d
and dl, 0x29
mov r10d, ecx
and r10b, 0xd6
or r10b, dl
mov edx, r8d
xor dl, 0xd6
and cl, 0x29
or cl, dl
not cl
or cl, r10b
not cl
mov edx, r8d
xor dl, 0x29
and dl, r8b
or dl, cl
add dl, byte [0x14066c244]
cmp al, dl
je 0x140415bb6
mov cl, 0x21
nop word cs:[rax + rax]
mov al, 4
lock cmpxchg byte [0x14066c103], cl
je 0x140415b39
cmp al, 0x84
jne 0x140415a80
jmp 0x140415bb6
mov eax, r8d
xor eax, 0x94c507f6
add eax, dword [0x14066c240]
cmp edx, eax
jne 0x140415ad9
movzx eax, byte [0x14066c1a2]
cmp al, 0x11
je 0x140415c59
mov cl, 0x6c
nop dword [rax]
mov al, 0x5c
lock cmpxchg byte [0x14066c1a2], cl
je 0x140415bc2
cmp al, 0x11
jne 0x140415ac0
jmp 0x140415c59
movzx eax, byte [0x14066c133]
cmp al, 0xa7
je 0x140415c6d
mov cl, 0xfc
nop word [rax + rax]
mov al, 0x64
lock cmpxchg byte [0x14066c133], cl
je 0x140415c08
cmp al, 0xa7
jne 0x140415af0
jmp 0x140415c6d
movzx eax, byte [0x14066c01b]
cmp al, 0xd2
je 0x140415ce6
mov cl, 0xbc
nop word [rax + rax]
mov al, 0x28
lock cmpxchg byte [0x14066c01b], cl
je 0x140415c76
cmp al, 0xd2
jne 0x140415b20
jmp 0x140415ce6
xor eax, eax
lea rcx, [0x14066c100]
lea rdx, [0x1405575d0]
xor r8d, 0x6b3af80e
and r9d, 0x94c507f1
or r8d, r9d
not r8d
or r8d, r9d
mov r9d, r8d
not r9d
nop word cs:[rax + rax]
cdqe
movzx r10d, byte [rax + rdx]
add byte [rax + rcx], r10b
mov r10d, dword [0x14066c240]
mov r11d, r10d
not r11d
mov esi, r9d
and esi, r10d
mov edi, r8d
and edi, r11d
or edi, esi
xor r10d, r8d
and r11d, r9d
or r11d, r10d
not r11d
lea r10d, [rdi + r11*2]
add eax, r10d
cmp eax, 3
jl 0x140415b70
mov al, 0x84
xchg byte [0x14066c103], al
lea rax, [0x14066c100]
jmp 0x140415ced
xor eax, eax
lea rcx, [0x14066c1a0]
lea rdx, [0x140557670]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
mov r9d, r8d
xor r9b, r8b
not r9b
and r9b, byte [rax + rcx]
xor r9b, r8b
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 1
jg 0x140415c51
inc rax
jmp 0x140415be0
xor eax, eax
lea rcx, [0x14066c110]
lea rdx, [0x1405575e0]
xor r8d, 0x94c50713
nop
movzx r9d, byte [rax + rdx]
mov r10d, r9d
xor r10b, r9b
not r10b
and r10b, byte [rax + rcx]
xor r10b, r9b
mov byte [rax + rcx], r10b
lea r9d, [rax + 1]
mov r10d, dword [0x14066c240]
add r10d, r8d
cmp r9d, r10d
jge 0x140415c65
inc rax
jmp 0x140415c20
mov al, 0x11
xchg byte [0x14066c1a2], al
lea rax, [0x14066c1a0]
jmp 0x140415ced
mov al, 0xa7
xchg byte [0x14066c133], al
lea rax, [0x14066c110]
jmp 0x140415ced
xor edx, edx
lea rax, [0x14066c010]
lea rcx, [0x140557500]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
not r8b
mov r10d, r8d
xor r10b, r9b
mov r11d, r10d
not r11b
and r11b, r9b
and r10b, r8b
or r10b, r9b
not r10b
or r10b, r11b
mov byte [rdx + rax], r10b
mov r8d, edx
xor r8d, 0x97b4e7d0
and edx, 0x17b4e7d0
lea edx, [r8 + rdx*2]
add edx, 0x684b1831
cmp edx, 0xb
jl 0x140415c90
mov al, 0xd2
xchg byte [0x14066c01b], al
lea rax, [0x14066c010]
pop rdi
pop rsi
ret