Function at 0x140106c90
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
test ecx, ecx
je 0x140106d04
test edx, edx
je 0x140106d6c
mov ecx, esi
xor ecx, 0x96dec0de
mov edx, 0xbbad4b9f
call fcn.140108bb0
test al, 1
jne 0x140106e87
xor esi, 0x73cb8693
lea rdi, [rsp + 0x2f]
nop word cs:[rax + rax]
mov rcx, rdi
mov edx, esi
mov r8d, 0x4ab1265
call fcn.140108290
test al, 1
jne 0x140106e50
cmp byte [rsp + 0x2f], 0x84
jne 0x140106ce0
jmp 0x140106e87
test edx, edx
je 0x140106dc5
movzx eax, byte [0x1405284c8]
cmp al, 0x2e
je 0x140106f98
mov bpl, 0x3d
mov edi, esi
xor edi, 0x77e9f377
lea rbx, [rsp + 0x2a]
nop dword [rax + rax]
mov al, 0xf0
lock cmpxchg byte [0x1405284c8], bpl
sete r14b
sete dl
mov dword [rsp + 0x20], 0x7c68c6a
mov ecx, eax
mov r8, rbx
mov r9d, edi
call fcn.140108280
test r14b, r14b
jne 0x140106e93
cmp byte [rsp + 0x2a], 0x2e
jne 0x140106d30
jmp 0x140106f98
movzx eax, byte [0x140528505]
cmp al, 0x8e
je 0x140106fa9
mov ebp, 0x73690fc1
lea rdi, [rsp + 0x40]
lea rbx, [rsp + 0x2c]
nop word [rax + rax]
mov r8d, dword [0x140534170]
add r8d, ebp
xor r8d, esi
mov rcx, rdi
mov rdx, rbx
mov r9d, 0x205bcfee
call fcn.140108c00
cmp byte [rsp + 0x41], 0
jne 0x140106f0e
cmp byte [rsp + 0x2c], 0x8e
jne 0x140106d90
jmp 0x140106fa9
movzx eax, byte [0x1405285c5]
cmp al, 0x87
je 0x140107010
mov edi, esi
xor edi, 0x5de20fac
lea rbx, [rsp + 0x30]
mov ebp, esi
xor ebp, 0x6715ca82
lea r14, [rsp + 0x29]
xor esi, 0xcb8ef7b6
nop word cs:[rax + rax]
mov rcx, rbx
mov edx, edi
mov r8d, 0x316ec13c
call fcn.140109020
movzx ecx, byte [rsp + 0x30]
movzx edx, byte [rsp + 0x31]
mov dword [rsp + 0x20], 0x8c5d2994
mov r8, r14
mov r9d, ebp
call fcn.140108d60
test al, 1
jne 0x140106fb2
movzx ecx, byte [rsp + 0x29]
mov edx, esi
mov r8d, 0x64662989
call fcn.140108270
test al, 1
je 0x140106e00
jmp 0x140107010
xor edx, edx
lea rax, [0x140528670]
lea rcx, [0x14045f120]
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, 3
jl 0x140106e60
mov al, 0x84
xchg byte [0x140528673], al
lea rax, [0x140528670]
jmp 0x140107017
mov edi, 1
mov ebx, esi
not ebx
mov eax, ebx
and eax, 0x43d579da
mov ebp, esi
and ebp, 0xbc2a8625
or ebp, eax
lea r14, [rsp + 0x2b]
lea r12, [0x14045ef90]
lea r13, [0x1405284c0]
mov eax, esi
and eax, 0x6e71db37
and ebx, 0x918e24c8
or ebx, eax
nop
lea eax, [rdi - 1]
movsxd r15, eax
mov rcx, r15
mov rdx, r14
mov r8d, ebp
mov r9d, 0x2b7dc20e
call fcn.140108f30
movzx eax, byte [r15 + r12]
add al, byte [rsp + 0x2b]
mov byte [r15 + r13], al
mov ecx, edi
mov edx, ebx
mov r8d, 0x53685200
call fcn.140108250
test al, 1
jne 0x140106f79
inc edi
jmp 0x140106ed0
xor edi, edi
lea r12, [0x1405284f0]
mov ebx, esi
xor ebx, 0x9b232e86
lea r14, [rsp + 0x2d]
xor esi, 0xffdfea1f
lea r15, [rsp + 0x2e]
nop
movzx ebp, byte [rdi + r12]
mov rcx, rdi
mov rdx, r14
mov r8d, ebx
mov r9d, 0x51ceebdc
call fcn.140108350
movzx edx, byte [rsp + 0x2d]
mov dword [rsp + 0x20], 0xeb0f7ec5
mov ecx, ebp
mov r8, r15
mov r9d, esi
call fcn.140108830
movzx eax, byte [rsp + 0x2e]
mov byte [rdi + r12], al
lea eax, [rdi + 1]
cmp eax, 0x14
jg 0x140106fa1
inc rdi
jmp 0x140106f30
mov eax, 0x1d33d97
add eax, dword [0x140534170]
mov ecx, eax
xor ecx, eax
not ecx
and ecx, esi
xor ecx, eax
mov edx, 0x9dd7b32f
call fcn.140108d70
lea rax, [0x1405284c0]
jmp 0x140107017
mov al, 0x8e
xchg byte [0x140528505], al
lea rax, [0x1405284f0]
jmp 0x140107017
xor r8d, r8d
lea rax, [0x1405285b0]
lea rcx, [0x14045f070]
mov edx, 0x2ea84e2
nop dword [rax + rax]
movsxd r8, r8d
movzx r9d, byte [r8 + rcx]
add byte [r8 + rax], r9b
add r8d, 0xc8ab6529
mov r9d, r8d
xor r9d, 1
and r8d, 1
lea r8d, [r9 + r8*2]
add r8d, 0x37549ad7
mov r9d, dword [0x140534170]
add r9d, edx
cmp r8d, r9d
jl 0x140106fd0
mov al, 0x87
xchg byte [0x1405285c5], al
lea rax, [0x1405285b0]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret