Function at 0x1403f19c0
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 r15d, r9d
test ecx, ecx
je 0x1403f1a09
test edx, edx
je 0x1403f1a5f
movzx eax, byte [0x1405bb44d]
cmp al, 0x34
je 0x1403f1c29
mov cl, 0x14
mov al, 2
lock cmpxchg byte [0x1405bb44d], cl
je 0x1403f1b61
cmp al, 0x34
jne 0x1403f19f0
jmp 0x1403f1c29
test edx, edx
je 0x1403f1abc
movzx eax, byte [0x1405bb41f]
cmp al, 0xb2
je 0x1403f1d12
mov cl, 0x5d
nop word cs:[rax + rax]
mov al, 0x68
lock cmpxchg byte [0x1405bb41f], cl
je 0x1403f1c35
movzx edx, byte [0x1405bc3bc]
mov r8d, edx
xor r8b, 0x5e
and dl, 0x5e
add dl, dl
add dl, r8b
cmp al, dl
jne 0x1403f1a30
jmp 0x1403f1d12
movzx eax, byte [0x1405bae47]
cmp al, 0xd6
je 0x1403f1d23
lea rdi, [rsp + 0x40]
nop word cs:[rax + rax]
mov r8d, dword [0x1405bc3b8]
lea eax, [r8 + 0x7d3be204]
mov edx, eax
xor edx, eax
not edx
and edx, r15d
xor edx, eax
add r8d, 0xf986d6d8
mov rcx, rdi
call fcn.1403f82b0
test al, 1
jne 0x1403f1c90
cmp byte [rsp + 0x40], 0xd6
jne 0x1403f1a80
jmp 0x1403f1d23
movzx eax, byte [0x1405bb100]
nop word cs:[rax + rax]
cmp al, 0xe8
je 0x1403f1d34
movzx ecx, byte [0x1405bc3bc]
lea eax, [rcx - 0x66]
mov edx, ecx
xor dl, 0xc6
and cl, 0x46
add cl, cl
add cl, dl
lock cmpxchg byte [0x1405bb100], cl
jne 0x1403f1ad0
xor edi, edi
xor r15d, 0xdcecbedf
lea rbx, [rsp + 0x40]
lea rsi, [0x1404b0d80]
lea r14, [0x1405bb0f0]
nop word cs:[rax + rax]
mov rcx, rdi
mov rdx, rbx
mov r8d, r15d
mov r9d, 0x561cdd2
call fcn.1403f7ed0
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax]
movzx ecx, byte [rdi + rsi]
xor cl, al
mov edx, ecx
not dl
and dl, al
add dl, dl
add dl, cl
mov byte [rdi + r14], dl
lea eax, [rdi + 1]
cmp eax, 0xf
jg 0x1403f1d2c
inc rdi
jmp 0x1403f1b20
xor r14d, r14d
mov edi, r15d
xor edi, 0xb4f971b3
lea rbx, [rsp + 0x40]
lea r13, [0x1405bb440]
mov r12d, 0xe0c2fc80
mov esi, r15d
not esi
mov eax, esi
and eax, 0x9c517f7
mov ebp, r15d
and ebp, 0xf63ae808
or ebp, eax
nop word cs:[rax + rax]
movsxd r14, r14d
mov eax, dword [0x1405bc3b8]
mov ecx, 0xd65aa8c7
add eax, ecx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edi
mov rcx, r14
mov edx, r14d
lea r8, [rsp + 0x3f]
mov r9, rbx
call fcn.1403f7770
movzx eax, byte [rsp + 0x3f]
mov rcx, qword [rsp + 0x40]
add al, byte [rcx]
mov byte [r14 + r13], al
mov eax, dword [0x1405bc3b8]
add eax, r12d
mov r8d, esi
xor r8d, r15d
and r8d, eax
xor r8d, r15d
mov ecx, r14d
mov rdx, rbx
mov r9d, 0xc03ec109
call fcn.1401472f0
mov r14d, dword [rsp + 0x40]
mov ecx, r14d
mov edx, ebp
mov r8d, 0xcd79e72f
call fcn.1403f8370
test al, 1
je 0x1403f1ba0
movzx eax, byte [0x1405bc3bc]
add al, 0xe0
xchg byte [0x1405bb44d], al
lea rax, [0x1405bb440]
jmp 0x1403f1d3b
xor edi, edi
lea rsi, [0x1405bb410]
xor r15d, 0xa97ed7ed
lea rbx, [rsp + 0x40]
nop word [rax + rax]
movzx ebp, byte [rdi + rsi]
mov ecx, edi
mov rdx, rbx
mov r8d, r15d
mov r9d, 0xd3fa407a
call fcn.1403f75e0
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax]
not bpl
mov ecx, ebp
and cl, al
or bpl, al
not bpl
or bpl, cl
mov byte [rdi + rsi], bpl
lea eax, [rdi + 1]
cmp eax, 0xe
jg 0x1403f1d03
inc rdi
jmp 0x1403f1c50
xor edi, edi
xor r15d, 0xd725e7d5
lea rbx, [rsp + 0x40]
lea rsi, [0x1404b0af0]
lea r14, [0x1405bae40]
nop dword [rax]
mov ecx, edi
mov rdx, rbx
mov r8d, r15d
mov r9d, 0x12023ca1
call fcn.1403f75a0
mov rax, qword [rsp + 0x40]
movzx eax, byte [rax]
movzx ecx, byte [rdi + rsi]
mov edx, ecx
not dl
mov r8d, eax
and r8b, dl
xor dl, al
not al
mov r9d, eax
xor r9b, cl
or r8b, r9b
not r8b
and al, cl
or al, dl
not al
or al, r8b
mov byte [rdi + r14], al
lea eax, [rdi + 1]
cmp eax, 6
jg 0x1403f1d1b
inc rdi
jmp 0x1403f1cb0
movzx eax, byte [0x1405bc3bc]
add al, 0x5e
xchg byte [0x1405bb41f], al
lea rax, [0x1405bb410]
jmp 0x1403f1d3b
mov al, 0xd6
xchg byte [0x1405bae47], al
lea rax, [0x1405bae40]
jmp 0x1403f1d3b
mov al, 0xe8
xchg byte [0x1405bb100], al
lea rax, [0x1405bb0f0]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret