Function at 0x1401f0730
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 0x1401f0799
mov eax, dword [0x1404eb1a0]
mov ecx, eax
xor ecx, 0xc645e0c6
and eax, 0x4645e0c6
lea eax, [rcx + rax*2]
cmp edx, eax
jne 0x1401f0804
movzx eax, byte [0x1404ea2fd]
cmp al, 0xa8
je 0x1401f08e9
mov cl, 0x9e
nop word cs:[rax + rax]
mov al, 0xe7
lock cmpxchg byte [0x1404ea2fd], cl
je 0x1401f0869
cmp al, 0xa8
jne 0x1401f0780
jmp 0x1401f08e9
test edx, edx
je 0x1401f0839
mov eax, dword [0x1404eb1a0]
mov ecx, eax
xor ecx, 0xbbcdf5b5
and eax, 0x3bcdf5b5
lea ecx, [rcx + rax*2]
not ecx
mov eax, esi
and eax, ecx
or ecx, esi
not ecx
or ecx, eax
mov edx, 0xe4e2c2cf
call fcn.1401f5c50
test al, 1
jne 0x1401f0a45
nop word cs:[rax + rax]
movzx ecx, byte [0x1404eb190]
lea eax, [rcx + 0x34]
add cl, 0x4f
lock cmpxchg byte [0x1404ea27d], cl
je 0x1401f09b2
cmp al, 0x82
jne 0x1401f07e0
jmp 0x1401f0a45
movzx eax, byte [0x1404ea0b2]
movzx ecx, byte [0x1404eb190]
add cl, 0x5e
cmp al, cl
je 0x1401f09a6
mov cl, 0x58
nop
mov al, 0xdb
lock cmpxchg byte [0x1404ea0b2], cl
je 0x1401f08f5
cmp al, 0x72
jne 0x1401f0820
jmp 0x1401f09a6
movzx eax, byte [0x1404e9ee1]
cmp al, 0xdf
je 0x1401f0ae5
mov cl, 0xef
nop word [rax + rax]
mov al, 0x27
lock cmpxchg byte [0x1404e9ee1], cl
je 0x1401f0a51
cmp al, 0xdf
jne 0x1401f0850
jmp 0x1401f0ae5
xor eax, eax
lea r15, [0x1404ea2f0]
mov edi, esi
xor edi, 0x7a0d6ff1
lea rbx, [rsp + 0x40]
xor esi, 0xf9713676
nop word cs:[rax + rax]
movsxd r14, eax
movzx ebp, byte [r14 + r15]
mov ecx, r14d
mov rdx, rbx
mov r8d, edi
mov r9d, 0xe687777e
call fcn.140110d50
mov rcx, qword [rsp + 0x40]
mov rdx, rbx
mov r8d, esi
mov r9d, 0x5e754ac1
call fcn.1401f5460
mov rax, qword [rsp + 0x40]
xor bpl, byte [rax]
mov byte [r14 + r15], bpl
mov eax, dword [0x1404eb1a0]
add eax, r14d
add eax, 0xc645e0c7
cmp eax, 0xd
jl 0x1401f0890
mov al, 0xa8
xchg byte [0x1404ea2fd], al
lea rax, [0x1404ea2f0]
jmp 0x1401f0aec
mov edi, 1
mov r14d, 0xac294761
mov r15d, esi
not r15d
lea rbx, [rsp + 0x40]
lea r12, [0x1404ea0b0]
lea r13, [0x1404077b0]
nop dword [rax]
lea ebp, [rdi - 1]
mov r8d, dword [0x1404eb1a0]
add r8d, r14d
mov eax, r15d
and eax, r8d
xor r8d, r15d
not r8d
and r8d, esi
or r8d, eax
mov ecx, ebp
mov rdx, rbx
mov r9d, 0xb1899d24
call fcn.140110d50
mov rax, qword [rsp + 0x40]
movsxd rcx, ebp
movzx edx, byte [rcx + r13]
mov r8d, edx
xor r8b, dl
not r8b
and r8b, byte [rax + r12]
xor r8b, dl
mov byte [rcx + r12], r8b
mov eax, dword [0x1404eb1a0]
mov edx, 0xd681a517
sub edx, eax
add eax, 0x297e5ae8
and eax, r15d
and edx, esi
or edx, eax
mov ecx, edi
mov r8d, 0x902acc0d
call fcn.1401f4750
test al, 1
jne 0x1401f099e
inc edi
jmp 0x1401f0920
mov al, 0x72
xchg byte [0x1404ea0b2], al
lea rax, [0x1404ea0b0]
jmp 0x1401f0aec
xor edi, edi
lea r14, [0x1404ea270]
lea r15, [0x140407960]
lea rbx, [rsp + 0x40]
nop word [rax + rax]
movzx ebp, byte [rdi + r14]
add bpl, byte [rdi + r15]
mov eax, dword [0x1404eb1a0]
mov ecx, eax
xor ecx, 0x78b309b9
and eax, 0x78b309b9
lea eax, [rcx + rax*2]
mov r8d, eax
xor r8d, eax
not r8d
and r8d, esi
xor r8d, eax
mov rcx, rdi
mov rdx, rbx
mov r9d, 0x6e09689d
call fcn.1401f5400
mov rax, qword [rsp + 0x40]
mov byte [rax], bpl
lea eax, [rdi + 1]
cmp eax, 0xc
jg 0x1401f0a24
inc rdi
jmp 0x1401f09d0
mov eax, esi
not eax
xor esi, 0x2807f155
and eax, 0xd7f80eaa
or esi, eax
not esi
or esi, eax
mov ecx, esi
mov edx, 0xad61eab0
call fcn.1401f4ae0
lea rax, [0x1404ea270]
jmp 0x1401f0aec
xor edi, edi
lea r14, [0x1404e9ea0]
lea r15, [0x1404075a0]
xor esi, 0xb0a7d380
lea r12, [rsp + 0x40]
lea rbx, [rsp + 0x3f]
nop word cs:[rax + rax]
movzx edx, byte [rdi + r14]
lea rcx, [r15 + rdi]
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], r12
mov dword [rsp + 0x30], 0x99f30d2a
mov r8d, edi
mov r9, rbx
call fcn.1401c10b0
movzx eax, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
mov byte [rcx + r14], al
lea eax, [rdi + 1]
mov ecx, dword [0x1404eb1a0]
mov edx, ecx
xor edx, 0xc645e107
and ecx, 0x4645e107
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jge 0x1401f0ad6
inc rdi
jmp 0x1401f0a80
movzx eax, byte [0x1404eb190]
add al, 0xcb
xchg byte [0x1404e9ee1], al
lea rax, [0x1404e9ea0]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret