Function at 0x201f7980
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov esi, r9d
mov edi, dword [rsp + 0xb0]
test ecx, ecx
je 0x201f79e9
test edx, edx
je 0x201f7a49
movzx ecx, byte [0x2055accd]
mov edx, esi
xor edx, 0xc23ff600
mov r8d, edi
xor r8d, 0x1603c5ed
call fcn.201f7070
test al, 1
jne 0x201f7b5a
mov cl, 0x22
nop
mov al, 0x2d
lock cmpxchg byte [0x2055accd], cl
je 0x201f7ab9
cmp al, 0xda
jne 0x201f79d0
jmp 0x201f7b5a
test edx, edx
je 0x201f7a79
movzx eax, byte [0x2055af51]
movzx ecx, byte [0x2055b324]
mov edx, edi
xor dl, 0xbd
mov r8d, edi
xor r8b, 0x42
mov r9d, r8d
and r9b, cl
not cl
and dl, cl
or dl, r9b
and cl, r8b
or cl, dl
not cl
add cl, cl
add cl, dl
cmp al, cl
je 0x201f7c9e
mov cl, 0x6f
nop dword [rax]
mov al, 0xd9
lock cmpxchg byte [0x2055af51], cl
je 0x201f7b66
cmp al, 0x2e
jne 0x201f7a30
jmp 0x201f7c9e
movzx eax, byte [0x2055a874]
cmp al, 0x25
je 0x201f7c8a
mov cl, 0xe6
nop word [rax + rax]
mov al, 0xf5
lock cmpxchg byte [0x2055a874], cl
je 0x201f7c26
cmp al, 0x25
jne 0x201f7a60
jmp 0x201f7c8a
xor esi, 0x726a9ed3
xor edi, 0xe06ebb32
mov ecx, esi
mov edx, edi
call fcn.201f7e50
test al, 1
jne 0x201f7d1f
mov cl, 0xaa
nop dword [rax + rax]
mov al, 0xe6
lock cmpxchg byte [0x2055aa87], cl
je 0x201f7caa
cmp al, 0xf3
jne 0x201f7aa0
jmp 0x201f7d1f
xor ebx, ebx
mov ebp, esi
xor ebp, 0x33a6c34
mov eax, edi
not eax
mov ecx, edi
xor ecx, 0x96ea9d75
and ecx, eax
and eax, 0xa8021daf
mov r14d, edi
and r14d, 0x57fde250
or r14d, eax
lea r15, [rsp + 0x40]
xor esi, 0x5528d512
and edi, 0x6915628a
or edi, ecx
lea r13, [0x2055acc0]
nop dword [rax]
mov ecx, ebx
mov rdx, r15
mov r8d, ebp
mov r9d, r14d
call fcn.201f70c0
movzx r12d, byte [rsp + 0x40]
mov ecx, ebx
mov rdx, r15
mov r8d, esi
mov r9d, edi
call fcn.20135500
mov rax, qword [rsp + 0x40]
lea rcx, [0x20475500]
movzx eax, byte [rax + rcx]
mov ecx, eax
xor cl, al
not cl
and cl, r12b
xor cl, al
mov byte [rbx + r13], cl
lea eax, [rbx + 1]
cmp eax, 0xc
jg 0x201f7b52
inc rbx
jmp 0x201f7b00
mov al, 0xda
xchg byte [0x2055accd], al
lea rax, [0x2055acc0]
jmp 0x201f7d26
xor ebx, ebx
mov eax, esi
not eax
mov ebp, esi
xor ebp, 0x5102a5ee
mov ecx, eax
and ecx, 0xaefd5a11
or ebp, ecx
not ebp
or ebp, ecx
mov ecx, edi
not ecx
mov r14d, edi
xor r14d, 0x5de302ba
mov edx, edi
and edx, r14d
and r14d, ecx
or r14d, edx
lea r15, [rsp + 0x40]
and eax, 0x33c38922
and esi, 0xcc3c76dd
or esi, eax
mov eax, ecx
and eax, 0x4c07c07
and ecx, 0xfb3f83f8
and edi, 0x4c07c07
or edi, ecx
or edi, eax
not edi
or edi, eax
lea r12, [rsp + 0x3f]
lea r13, [0x2055af40]
nop word cs:[rax + rax]
mov rcx, rbx
mov rdx, r15
mov r8d, ebp
mov r9d, r14d
call fcn.201f6a90
movzx edx, byte [rsp + 0x40]
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], esi
mov ecx, ebx
mov r8, r12
mov r9, r15
call fcn.201f70f0
movzx eax, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
mov byte [rcx + r13], al
lea eax, [rbx + 1]
cmp eax, 0x10
jg 0x201f7c96
inc rbx
jmp 0x201f7be0
xor edx, edx
lea rax, [0x2055a830]
lea rcx, [0x20475090]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
not r8b
not r9b
mov r10d, r8d
xor r10b, r9b
or r9b, r8b
and r9b, r10b
mov byte [rdx + rax], r9b
add edx, 0xee2aa551
mov r8d, edx
xor r8d, 1
and edx, 1
lea edx, [r8 + rdx*2]
add edx, 0x11d55aaf
cmp edx, 0x44
jl 0x201f7c40
mov al, 0x25
xchg byte [0x2055a874], al
lea rax, [0x2055a830]
jmp 0x201f7d26
mov al, 0x2e
xchg byte [0x2055af51], al
lea rax, [0x2055af40]
jmp 0x201f7d26
xor edx, edx
lea rax, [0x2055aa50]
lea rcx, [0x204752b0]
nop word [rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rax]
movzx r9d, byte [rdx + rcx]
mov r10d, r9d
xor r10b, r9b
not r10b
and r10b, r8b
xor r10b, r9b
and r8b, r9b
add r8b, r8b
add r8b, r10b
mov byte [rdx + rax], r8b
mov r8d, edx
xor r8d, 1
mov r9d, edx
and r9d, 1
xor edx, 0xb7874794
and r8d, 0x37874795
lea edx, [rdx + r8*2]
lea edx, [rdx + r9*2]
add edx, 0x4878b86b
cmp edx, 0x37
jl 0x201f7cc0
mov al, 0xf3
xchg byte [0x2055aa87], al
lea rax, [0x2055aa50]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret