Function at 0x1401d6970
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
push rbx
test ecx, ecx
je 0x1401d699e
mov eax, dword [0x1405647d8]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0xf1b0882c
add eax, dword [0x140516608]
cmp ecx, eax
jne 0x1401d6c80
jmp 0x1401d6c6e
mov eax, dword [0x140516608]
mov ecx, eax
xor ecx, 0xf1b0882c
and eax, 0x71b0882c
lea eax, [rcx + rax*2]
cmp edx, eax
jne 0x1401d6a18
xor eax, eax
mov ecx, 0xf1b0882d
lea rdx, [fcn.1401d6970]
lea r8d, [rdx + rdx]
add r8d, 0x3160
mov r9d, r8d
not r9d
mov r10b, 1
nop word [rax + rax]
test al, al
jne 0x1401d6a0a
movzx edx, byte [0x140516412]
mov r11d, dword [0x140516608]
add r11d, ecx
mov esi, r8d
xor esi, r11d
not r11d
and r11d, r9d
or r11d, esi
cmp r11d, 0xffffffff
je 0x1401d6a45
movzx edx, byte [0x140516412]
test r10b, r10b
je 0x1401d69e0
jmp 0x1401d69e4
movzx eax, byte [0x1405163d2]
cmp al, 0x4c
je 0x1401d6bc7
mov cl, 0xbb
nop dword [rax]
mov al, 0x49
lock cmpxchg byte [0x1405163d2], cl
je 0x1401d6a9c
cmp al, 0x4c
jne 0x1401d6a30
jmp 0x1401d6bc7
movzx eax, byte [0x14051660c]
mov ecx, eax
xor cl, 0x14
and al, 0x14
add al, al
mov r8d, ecx
xor r8b, al
and al, cl
add al, al
add al, r8b
cmp dl, al
je 0x1401d6c63
mov cl, 0xfe
xor edx, edx
nop
mov al, 0xf3
lock cmpxchg byte [0x140516412], cl
je 0x1401d6b7d
test dl, dl
test dl, dl
jne 0x1401d6a82
movzx r8d, byte [0x14051660c]
add r8b, 0x14
cmp al, r8b
jne 0x1401d6a70
jmp 0x1401d6c63
xor r8d, r8d
lea r9, [0x1405163d0]
lea r10, [0x14042ea30]
jmp 0x1401d6ac8
mov eax, r8d
xor eax, 1
and r8d, 1
lea r8d, [rax + r8*2]
cmp r8d, 2
jge 0x1401d6bbf
mov eax, dword [0x1405647d8]
mov ecx, dword [0x140516608]
add ecx, eax
mov edx, 0xf1d860e7
sub edx, ecx
imul edx, eax
movsxd r11, r8d
test dl, 1
jne 0x1401d6b15
nop dword [rax + rax]
movzx eax, byte [r11 + r9]
movzx ecx, byte [r11 + r10]
not cl
mov edx, ecx
or dl, al
not dl
and cl, al
or cl, dl
mov byte [r11 + r9], cl
mov eax, dword [0x1405647dc]
cmp eax, 0x37
jle 0x1401d6ab0
movzx eax, byte [r11 + r9]
movzx ecx, byte [r11 + r10]
mov ebx, eax
shl bl, cl
sub bl, al
add al, byte [0x14051660c]
add al, 0x27
mov edx, ebx
mov ecx, eax
shl dl, cl
neg bl
mov eax, ebx
xor al, dl
and bl, dl
add bl, bl
mov ecx, eax
xor cl, bl
and bl, al
add bl, bl
add bl, cl
mov eax, ebx
mov ecx, edx
shl al, cl
mov edx, ebx
mov ecx, eax
shl dl, cl
mov eax, ebx
sub al, dl
mul dl
mov ecx, ebx
not cl
mov edx, eax
not dl
mov esi, ecx
xor sil, dl
and sil, cl
xor dl, bl
and cl, al
or cl, dl
not cl
or cl, sil
mov byte [r11 + r9], cl
jmp 0x1401d6af0
mov eax, 0xf1b08841
mov cl, 1
nop word cs:[rax + rax]
mov edx, dword [0x1405647dc]
mov r8d, dword [0x140516608]
add r8d, eax
cmp edx, r8d
jge 0x1401d6bb9
mov edx, dword [0x1405647d8]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1401d6bd3
test cl, cl
je 0x1401d6b90
jmp 0x1401d6ba5
mov al, 0x4c
xchg byte [0x1405163d2], al
lea rax, [0x1405163d0]
jmp 0x1401d6c6a
xor eax, eax
lea rcx, [0x140516400]
lea rdx, [0x14042ea60]
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, 0x11
jg 0x1401d6c20
inc rax
jmp 0x1401d6bf0
mov eax, dword [0x1405647d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x1401d6c4a
mov al, 0xed
xchg byte [0x140516412], al
mov eax, dword [0x1405647d8]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x1401d6c20
mov al, 0xed
xchg byte [0x140516412], al
mov eax, dword [0x1405647d8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401d6c31
lea rax, [0x140516400]
pop rbx
pop rdi
pop rsi
ret
mov eax, dword [0x1405647dc]
cmp eax, 0x10
jl 0x1401d6c8d
nop dword [rax]
mov eax, dword [0x1405647dc]
cmp eax, 0x55
jge 0x1401d6c80
jmp 0x1401d6c6e
test edx, edx
je 0x1401d6ce7
movzx eax, byte [0x140516510]
movzx ecx, byte [0x14051660c]
add cl, 0x8e
cmp al, cl
je 0x1401d6ea0
nop word [rax + rax]
movzx ecx, byte [0x14051660c]
mov edx, ecx
xor dl, 0x5c
mov eax, ecx
and al, 0x5c
add al, al
add al, dl
mov edx, ecx
xor dl, 0x42
and cl, 0x42
add cl, cl
add cl, dl
lock cmpxchg byte [0x140516510], cl
je 0x1401d6e63
cmp al, 0x67
jne 0x1401d6cb0
jmp 0x1401d6ea0
movzx eax, byte [0x1405164a9]
cmp al, 0x3d
je 0x1401d6e57
xor ecx, ecx
mov dl, 0x1c
mov r8d, 0xf1b0882d
lea r9, [fcn.1401d6970]
lea r10d, [r9 + r9]
add r10d, 0x4dc0
not r10d
jmp 0x1401d6d28
cmp al, 0x3d
je 0x1401d6e57
test cl, cl
jne 0x1401d6d50
nop dword [rax]
mov al, 0x9b
lock cmpxchg byte [0x1405164a9], dl
sete r11b
mov esi, dword [0x1405647d8]
lea edi, [rsi - 1]
imul edi, esi
test dil, 1
je 0x1401d6d90
mov al, 0x9b
lock cmpxchg byte [0x1405164a9], dl
mov eax, dword [0x140516608]
lea r11d, [r9 + r9]
add r11d, 0x3140
mov esi, 0xe4f77d2
sub esi, eax
add eax, 0xf1b0882d
xor eax, r11d
not r11d
and esi, r11d
or eax, esi
cmp eax, 0xffffffff
jne 0x1401d6d50
jmp 0x1401d6d30
test r11b, r11b
jne 0x1401d6de0
test cl, cl
jne 0x1401d6dc0
nop dword [rax]
mov r11d, dword [0x1405647d8]
lea esi, [r11 - 1]
imul esi, r11d
test sil, 1
je 0x1401d6d20
nop dword [rax]
mov r11d, dword [0x140516608]
add r11d, r8d
not r11d
mov esi, r10d
xor esi, r11d
and esi, r10d
or esi, r11d
cmp esi, 0xffffffff
jne 0x1401d6dc0
jmp 0x1401d6da0
mov eax, dword [0x1405647dc]
cmp eax, 0x1a
jle 0x1401d6dfb
nop dword [rax + rax]
mov eax, dword [0x1405647dc]
cmp eax, 0x17
jge 0x1401d6de0
mov eax, dword [0x1405647dc]
cmp eax, 0x49
jg 0x1401d6df0
xor edx, edx
lea rax, [0x1405164a0]
lea rcx, [0x14042eaf0]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
cmp edx, 9
jl 0x1401d6e20
movzx eax, byte [0x14051660c]
mov ecx, eax
xor cl, 0x64
and al, 0x64
add al, al
add al, cl
xchg byte [0x1405164a9], al
lea rax, [0x1405164a0]
jmp 0x1401d6c6a
xor eax, eax
lea rcx, [0x140516500]
lea rdx, [0x14042eb40]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xf
jg 0x1401d6e98
inc rax
jmp 0x1401d6e80
mov al, 0x67
xchg byte [0x140516510], al
lea rax, [0x140516500]
jmp 0x1401d6c6a