Function at 0x140107c70
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov esi, r9d
test ecx, ecx
je 0x140107ce4
test edx, edx
je 0x140107d29
movzx ecx, byte [0x1404d557d]
mov edx, esi
xor edx, 0x5821ef2b
mov r8d, 0x638dea14
call fcn.1401083e0
test al, 1
jne 0x140107f16
nop word cs:[rax + rax]
movzx ecx, byte [0x1404d5764]
lea eax, [rcx + 0x18]
add cl, 0x50
lock cmpxchg byte [0x1404d557d], cl
je 0x140107e80
cmp al, 0x4a
jne 0x140107cc0
jmp 0x140107f16
test edx, edx
je 0x140107d8b
movzx eax, byte [0x1404d5592]
movzx ecx, byte [0x1404d5764]
add cl, 0xd6
cmp al, cl
je 0x140107fc9
mov cl, 0xb1
nop word [rax + rax]
mov al, 0x78
lock cmpxchg byte [0x1404d5592], cl
je 0x140107f22
cmp al, 0xb4
jne 0x140107d10
jmp 0x140107fc9
movzx eax, byte [0x1404d54e3]
movzx ecx, byte [0x1404d5764]
add cl, 2
cmp al, cl
je 0x140107fda
xor esi, 0xf475dd0d
lea rdi, [rsp + 0x30]
lea rbx, [rsp + 0x2f]
nop word cs:[rax + rax]
mov rcx, rdi
mov rdx, rbx
mov r8d, esi
mov r9d, 0x73cf9a07
call fcn.140108350
cmp byte [rsp + 0x31], 0
jne 0x140107f87
cmp byte [rsp + 0x2f], 0xe0
jne 0x140107d60
jmp 0x140107fda
movzx eax, byte [0x1404d5560]
nop word cs:[rax + rax]
cmp al, 0x48
je 0x140107e74
movzx ecx, byte [0x1404d5764]
lea eax, [rcx + 0x6e]
add cl, 3
lock cmpxchg byte [0x1404d5560], cl
jne 0x140107da0
xor ebp, ebp
mov r12d, esi
not r12d
lea rdi, [rsp + 0x30]
lea r13, [0x140401350]
lea r15, [0x1404d5550]
mov eax, r12d
and eax, 0x865ab8b5
mov ebx, esi
and ebx, 0x79a5474a
or ebx, eax
nop dword [rax]
movsxd r14, ebp
mov eax, dword [0x1404d5760]
mov ecx, 0xfbae57e3
add eax, ecx
mov r8d, r12d
xor r8d, esi
and r8d, eax
xor r8d, esi
mov rcx, r14
mov rdx, rdi
mov r9d, 0x1367c960
call fcn.140108240
mov rax, qword [rsp + 0x30]
movzx eax, byte [rax]
add al, byte [r14 + r13]
mov byte [r14 + r15], al
add r14d, 0x95260123
mov eax, r14d
xor eax, 0x6ad9fede
and r14d, 0x6ad9fede
lea ebp, [rax + r14*2]
mov ecx, ebp
mov edx, ebx
mov r8d, 0x5c90c3e6
call fcn.140108250
test al, 1
je 0x140107df0
movzx eax, byte [0x1404d5764]
mov ecx, eax
xor cl, 0x26
and al, 0x26
add al, al
add al, cl
add al, 0x44
xchg byte [0x1404d5560], al
lea rax, [0x1404d5550]
jmp 0x140107fe1
mov r12d, 1
mov edi, esi
xor edi, 0x3c293a3c
lea r14, [rsp + 0x30]
mov ebp, esi
xor ebp, 0xdbc00a56
mov ebx, 0xe4c761e7
lea r15d, [r12 - 1]
mov dword [rsp + 0x20], 0xbbeed650
mov ecx, r15d
lea rdx, [rsp + 0x2f]
mov r8, r14
mov r9d, edi
call fcn.1401083c0
movzx r13d, byte [rsp + 0x2f]
mov rax, qword [rsp + 0x30]
lea rcx, [0x140401360]
add r13b, byte [rax + rcx]
mov ecx, r15d
mov rdx, r14
mov r8d, ebp
mov r9d, 0xc981ebb
call fcn.140108300
mov rax, qword [rsp + 0x30]
mov byte [rax], r13b
mov eax, dword [0x1404d5760]
add eax, ebx
cmp r12d, eax
jge 0x140107f04
inc r12d
jmp 0x140107ea0
xor esi, 0xa8c31501
mov ecx, esi
mov edx, 0x3faaedc4
call fcn.140108410
lea rax, [0x1404d5570]
jmp 0x140107fe1
xor eax, eax
lea rcx, [0x1404d5580]
lea rdx, [0x140401370]
nop word cs:[rax + rax]
movzx r8d, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
mov r10d, r8d
not r10b
mov r11d, r10d
and r11b, r9b
mov ebx, r8d
xor r8b, r9b
not r9b
and bl, r9b
or bl, r11b
and r9b, r10b
or r9b, r8b
not r9b
add r9b, r9b
add r9b, bl
mov byte [rax + rcx], r9b
lea r8d, [rax + 1]
cmp r8d, 0x11
jg 0x140107fc1
inc rax
jmp 0x140107f40
xor eax, eax
lea rcx, [0x1404d54c0]
lea rdx, [0x1404012c0]
mov r8d, 0xe4c761fd
nop dword [rax]
movzx r9d, byte [rax + rdx]
add byte [rax + rcx], r9b
lea r9d, [rax + 1]
mov r10d, dword [0x1404d5760]
add r10d, r8d
cmp r9d, r10d
jge 0x140107fd2
inc rax
jmp 0x140107fa0
mov al, 0xb4
xchg byte [0x1404d5592], al
lea rax, [0x1404d5580]
jmp 0x140107fe1
mov al, pe_nt_image_headers64
xchg byte [0x1404d54e3], al
lea rax, [0x1404d54c0]
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret