Function at 0x1401d6f40
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rbx
mov r8d, dword [rsp + 0x38]
test ecx, ecx
je 0x1401d6fa5
mov eax, r8d
xor eax, 0xe9a82195
add eax, dword [0x140516608]
cmp edx, eax
jne 0x1401d6ff9
movzx eax, byte [0x140516583]
mov ecx, r8d
xor cl, 0x67
add cl, byte [0x14051660c]
cmp al, cl
je 0x1401d70d3
mov cl, 0x15
nop
mov al, 0xdd
lock cmpxchg byte [0x140516583], cl
je 0x1401d7069
mov edx, r8d
xor dl, 0x67
add dl, byte [0x14051660c]
cmp al, dl
jne 0x1401d6f80
jmp 0x1401d70d3
mov eax, dword [0x140516608]
mov ecx, r8d
xor ecx, 0xe9a82195
mov r9d, ecx
xor r9d, eax
and ecx, eax
lea eax, [r9 + rcx*2]
cmp edx, eax
jne 0x1401d7039
movzx eax, byte [0x140516495]
cmp al, 0xe9
je 0x1401d722f
mov cl, 0x3a
nop word cs:[rax + rax]
mov al, 0x64
lock cmpxchg byte [0x140516495], cl
je 0x1401d7142
cmp al, 0xe9
jne 0x1401d6fe0
jmp 0x1401d722f
movzx eax, byte [0x1405163c2]
xor r8b, 0x17
add r8b, byte [0x14051660c]
cmp al, r8b
je 0x1401d7136
mov cl, 0xc9
nop word cs:[rax + rax]
mov al, 0xeb
lock cmpxchg byte [0x1405163c2], cl
je 0x1401d70df
cmp al, 0x87
jne 0x1401d7020
jmp 0x1401d7136
movzx eax, byte [0x140516430]
cmp al, 0xc5
je 0x1401d721e
mov cl, 0x89
nop word [rax + rax]
mov al, 0xa3
lock cmpxchg byte [0x140516430], cl
je 0x1401d71a9
cmp al, 0xc5
jne 0x1401d7050
jmp 0x1401d721e
xor eax, eax
lea rcx, [0x140516580]
lea rdx, [0x14042ebb0]
xor r8d, 0xe9a82194
cdqe
movzx r9d, byte [rax + rcx]
movzx r10d, byte [rax + rdx]
mov r11d, r10d
not r11b
mov ebx, r9d
and bl, r11b
xor r11b, r9b
not r9b
mov esi, r9d
xor sil, r10b
or bl, sil
not bl
and r9b, r10b
or r9b, r11b
not r9b
or r9b, bl
mov byte [rax + rcx], r9b
mov r9d, dword [0x140516608]
add r9d, r8d
add eax, r9d
cmp eax, 3
jl 0x1401d7080
mov al, 0xb7
xchg byte [0x140516583], al
lea rax, [0x140516580]
jmp 0x1401d7236
xor edx, edx
lea rax, [0x1405163c0]
lea rcx, [0x14042ea20]
nop
movsxd rdx, edx
xor r8d, r8d
sub r8b, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
xor r10d, r10d
sub r10b, r9b
mov r9d, r8d
xor r9b, r10b
and r10b, r8b
add r10b, r10b
add r10b, r9b
neg r10b
mov byte [rdx + rax], r10b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 2
jl 0x1401d70f0
mov al, 0x87
xchg byte [0x1405163c2], al
lea rax, [0x1405163c0]
jmp 0x1401d7236
xor eax, eax
lea rcx, [0x140516480]
lea rdx, [0x14042ead0]
mov r9d, r8d
not r9d
and r9d, 0xe9a821f8
xor r8d, 0x1657de07
or r8d, r9d
not r8d
or r8d, r9d
nop
movzx r9d, byte [rax + rcx]
movzx r10d, byte [rax + rdx]
mov r11d, r9d
xor r11b, r10b
and r9b, r10b
add r9b, r9b
add r9b, r11b
mov byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x140516608]
add r10d, r8d
cmp r9d, r10d
jge 0x1401d7227
inc rax
jmp 0x1401d7170
xor edx, edx
lea rax, [0x140516420]
lea rcx, [0x14042ea80]
nop dword [rax]
movsxd rdx, edx
movzx r9d, byte [rdx + rax]
movzx r10d, byte [rdx + rcx]
mov r11d, r10d
xor r11b, r10b
not r11b
and r11b, r9b
xor r11b, r10b
and r9b, r10b
add r9b, r9b
add r9b, r11b
mov byte [rdx + rax], r9b
mov r9d, edx
xor r9d, 1
and edx, 1
lea edx, [r9 + rdx*2]
cmp edx, 0x10
jl 0x1401d71c0
mov eax, r8d
not al
and al, 0x55
xor r8b, 0xaa
or r8b, al
not r8b
or r8b, al
add r8b, byte [0x14051660c]
xchg byte [0x140516430], r8b
lea rax, [0x140516420]
jmp 0x1401d7236
mov al, 0xe9
xchg byte [0x140516495], al
lea rax, [0x140516480]
pop rbx
pop rsi
ret