Function at 0x1401c7950
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
test ecx, ecx
je 0x1401c7a2b
test edx, edx
je 0x1401c7abf
movzx eax, byte [0x1404e5b8f]
cmp al, 0xdd
je 0x1401c7d85
mov cl, 0xf8
lea rdx, [fcn.1401c7950]
lea eax, [rdx + rdx]
add eax, 0x4800
mov r8d, eax
not r8d
and r8d, eax
jmp 0x1401c7998
cmp al, 0xdd
je 0x1401c7d85
mov al, 0x43
lock cmpxchg byte [0x1404e5b8f], cl
je 0x1401c7bdd
nop dword [rax + rax]
mov r9d, dword [0x140531cbc]
cmp r9d, 0x1c
jg 0x1401c79de
mov r9d, dword [0x1404e660c]
mov r10d, r9d
xor r10d, 0x2409cd57
and r9d, 0x2409cd57
lea r9d, [r10 + r9*2]
cmp r8d, r9d
je 0x1401c7990
mov r9d, dword [0x1404e660c]
lea r10d, [r9 + 0x2409cd58]
lea r11d, [rdx + rdx]
add r11d, 0x23c0
mov esi, r11d
not esi
mov edi, 0xdbf632a7
sub edi, r9d
and edi, esi
xor r11d, r10d
or r11d, edi
not r11d
mov r10d, r9d
xor r10d, 0x2409cd57
and r9d, 0x2409cd57
lea r9d, [r10 + r9*2]
cmp r11d, r9d
jne 0x1401c79b0
jmp 0x1401c79bd
movzx eax, byte [0x1404e5ad5]
cmp al, 0x39
je 0x1401c7d00
mov cl, pe_nt_image_headers64
xor edx, edx
mov r8d, 0x2409cd8b
nop word cs:[rax + rax]
mov eax, dword [0x140531cb8]
mov r9d, eax
not r9d
imul r9d, eax
test r9b, 1
jne 0x1401c7a78
mov al, 0xd6
lock cmpxchg byte [0x1404e5ad5], cl
sete r9b
test dl, dl
je 0x1401c7aa0
mov al, 0xd6
lock cmpxchg byte [0x1404e5ad5], cl
mov eax, dword [0x140531cbc]
mov r9d, dword [0x1404e660c]
add r9d, r8d
cmp eax, r9d
jge 0x1401c7a50
jmp 0x1401c7a66
test r9b, r9b
jne 0x1401c7c5b
movzx r9d, byte [0x1404e6608]
add r9b, 0xb
cmp al, r9b
jne 0x1401c7a50
jmp 0x1401c7d00
movzx eax, byte [0x1404e5b42]
cmp al, 0xeb
je 0x1401c7cf7
mov ecx, 0x2409cd8e
mov dl, 0x24
nop word cs:[rax + rax]
mov eax, dword [0x140531cbc]
mov r8d, dword [0x1404e660c]
add r8d, ecx
cmp eax, r8d
jge 0x1401c7b23
nop word cs:[rax + rax]
mov al, 0xdc
lock cmpxchg byte [0x1404e5b42], dl
sete r8b
mov r9d, dword [0x140531cb8]
lea r10d, [r9 - 1]
imul r10d, r9d
test r10b, 1
je 0x1401c7b30
mov al, 0xdc
lock cmpxchg byte [0x1404e5b42], dl
jmp 0x1401c7b00
test r8b, r8b
jne 0x1401c7b40
cmp al, 0xeb
jne 0x1401c7ae0
jmp 0x1401c7cf7
mov eax, dword [0x140531cbc]
cmp eax, 0x30
jg 0x1401c7b40
xor r8d, r8d
lea r9, [0x1404e5b40]
lea r10, [0x140405b50]
jmp 0x1401c7b6d
inc r8d
cmp r8d, 2
jge 0x1401c7cd7
mov eax, dword [0x140531cbc]
movsxd r11, r8d
cmp eax, 0x32
jg 0x1401c7ba0
nop dword [rax + rax]
movzx eax, byte [r11 + r10]
add byte [r11 + r9], al
mov eax, dword [0x140531cbc]
cmp eax, 0x27
jl 0x1401c7b60
nop word cs:[rax + rax]
movzx ecx, byte [r11 + r9]
movzx edx, byte [r11 + r10]
mov eax, ecx
sub al, dl
mul dl
mov edx, eax
sub cl, al
mov eax, ecx
mul dl
mov ecx, edx
shl al, cl
mov ecx, eax
xor cl, dl
and al, dl
add al, al
add al, cl
mov byte [r11 + r9], al
mov eax, dword [0x140531cb8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401c7ba0
jmp 0x1401c7b80
xor edx, edx
lea rax, [0x1404e5b80]
lea rcx, [0x140405b80]
nop dword [rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
not r9b
mov r10d, r9d
or r10b, r8b
not r10b
and r9b, r8b
or r9b, r10b
mov byte [rdx + rax], r9b
add edx, 0x91b6536c
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
mov r8d, edx
xor r8d, 0x6e49ac94
and edx, 0x6e49ac94
lea edx, [r8 + rdx*2]
cmp edx, 0xf
jl 0x1401c7bf0
mov eax, dword [0x140531cb8]
mov ecx, eax
not ecx
imul ecx, eax
test cl, 1
jne 0x1401c7d70
jmp 0x1401c7d3e
xor eax, eax
mov cl, 1
nop
mov edx, dword [0x140531cbc]
cmp edx, 0x60
jg 0x1401c7c6f
test al, al
je 0x1401c7c75
test cl, cl
je 0x1401c7c60
jmp 0x1401c7c6b
xor eax, eax
lea rcx, [0x1404e5ad0]
lea rdx, [0x140405af0]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
add r8b, 0x86
mov r10d, r8d
xor r10b, r9b
and r8b, r9b
add r8b, r8b
add r8b, r10b
add r8b, 0x7a
mov byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 4
jg 0x1401c7cc4
inc rax
jmp 0x1401c7c90
mov eax, dword [0x140531cb8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401c7d10
jmp 0x1401c7d0a
movzx eax, byte [0x1404e6608]
mov ecx, eax
xor cl, 0xbd
and al, 0x3d
add al, al
mov edx, ecx
xor dl, al
and al, cl
add al, al
add al, dl
xchg byte [0x1404e5b42], al
lea rax, [0x1404e5b40]
jmp 0x1401c7d07
lea rax, [0x1404e5ad0]
pop rdi
pop rsi
ret
mov al, 1
test al, al
jne 0x1401c7d34
mov eax, 0x2409cd8e
nop word cs:[rax + rax]
mov ecx, dword [0x140531cbc]
mov edx, dword [0x1404e660c]
add edx, eax
cmp ecx, edx
jge 0x1401c7d20
jmp 0x1401c7d0a
mov al, 0x39
xchg byte [0x1404e5ad5], al
jmp 0x1401c7d00
mov eax, dword [0x1404e660c]
lea ecx, [rax + 0x2409cd58]
lea rdx, [fcn.1401c7950]
add edx, edx
add edx, 0x4580
and edx, ecx
add eax, 0x2409cd57
cmp edx, eax
je 0x1401c7d7d
nop word cs:[rax + rax]
mov eax, dword [0x140531cbc]
cmp eax, 0x50
jge 0x1401c7d70
jmp 0x1401c7d3e
mov al, 0xdd
xchg byte [0x1404e5b8f], al
lea rax, [0x1404e5b80]
jmp 0x1401c7d07