Function at 0x14017bb90
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov esi, r9d
test ecx, ecx
je 0x14017bc26
mov eax, esi
xor eax, 0x3d33a6a4
mov ecx, edx
mov edx, eax
mov r8d, 0xa4250953
call fcn.1400a8350
test al, 1
je 0x14017bc69
movzx eax, byte [0x1404e0661]
cmp al, 0x69
je 0x14017bd64
mov edi, esi
xor edi, 0xa67ad8d5
lea rbx, [rsp + 0x40]
mov ebp, esi
xor ebp, 0x349ef69c
nop dword [rax]
mov rcx, rbx
mov edx, edi
mov r8d, 0x5faef25e
call fcn.14017d950
cmp byte [rsp + 0x41], 0
jne 0x14017bce9
movzx ecx, byte [rsp + 0x40]
mov edx, ebp
mov r8d, 0x5bc59d71
call fcn.14017d070
test al, 1
je 0x14017bbf0
jmp 0x14017bd64
test edx, edx
je 0x14017bcb9
movzx eax, byte [0x1404e0726]
movzx ecx, byte [0x1404e1360]
add cl, 0x9d
cmp al, cl
je 0x14017be29
mov cl, 0xc9
nop dword [rax]
mov al, 0x89
lock cmpxchg byte [0x1404e0726], cl
je 0x14017bdd5
cmp al, 0xb0
jne 0x14017bc50
jmp 0x14017be29
mov eax, esi
not eax
and eax, 0x648450b9
mov ecx, esi
xor ecx, 0x9b7baf46
or ecx, eax
not ecx
or ecx, eax
mov edx, 0x9029e361
call fcn.14017bfe0
test al, 1
jne 0x14017bdc9
mov cl, 0x4a
nop word cs:[rax + rax]
mov al, 0x99
lock cmpxchg byte [0x1404e07fe], cl
je 0x14017bd70
cmp al, 0xbc
jne 0x14017bca0
jmp 0x14017bdc9
movzx eax, byte [0x1404e06b4]
cmp al, 0x85
je 0x14017bee3
mov cl, 0x48
nop word [rax + rax]
mov al, 0x91
lock cmpxchg byte [0x1404e06b4], cl
je 0x14017be35
cmp al, 0x85
jne 0x14017bcd0
jmp 0x14017bee3
xor eax, eax
lea r14, [0x1404e0630]
xor esi, 0xd27e2e0b
lea rdi, [rsp + 0x3f]
mov ebp, 0x5cbb318d
nop word cs:[rax + rax]
movsxd rbx, eax
movzx edx, byte [rbx + r14]
mov dword [rsp + 0x20], 0x13d87f27
mov ecx, ebx
mov r8, rdi
mov r9d, esi
call fcn.14017ccf0
movzx eax, byte [rsp + 0x3f]
mov byte [rbx + r14], al
mov eax, dword [0x1404e1364]
add eax, ebp
mov ecx, eax
xor ecx, 0x7ae8b7fe
and eax, 0x7ae8b7fe
lea eax, [rcx + rax*2]
add eax, ebx
cmp eax, 0x31
jl 0x14017bd10
movzx eax, byte [0x1404e1360]
add al, 0x56
xchg byte [0x1404e0661], al
lea rax, [0x1404e0630]
jmp 0x14017beea
xor eax, eax
lea rcx, [0x1404e07f0]
lea rdx, [0x140404480]
xor r8d, r8d
sub r8b, byte [rax + rcx]
movzx r9d, byte [rax + rdx]
xor r10d, r10d
sub r10b, r9b
mov r9d, r8d
xor r9b, r10b
and r10b, r8b
add r10b, r10b
add r10b, r9b
neg r10b
mov byte [rax + rcx], r10b
lea r8d, [rax + 1]
cmp r8d, 0xd
jg 0x14017bdb7
inc rax
jmp 0x14017bd80
xor esi, 0xba5a2d31
mov ecx, esi
mov edx, 0xcaba8078
call fcn.14017cdf0
lea rax, [0x1404e07f0]
jmp 0x14017beea
xor edi, edi
lea r14, [0x1404e0720]
xor esi, 0xef3c3592
lea rbx, [rsp + 0x3e]
nop dword [rax]
movzx edx, byte [rdi + r14]
mov dword [rsp + 0x20], 0xda3ed79d
mov rcx, rdi
mov r8, rbx
mov r9d, esi
call fcn.14017db70
movzx eax, byte [rsp + 0x3e]
mov byte [rdi + r14], al
lea eax, [rdi + 1]
cmp eax, 5
jg 0x14017be21
inc rdi
jmp 0x14017bdf0
mov al, 0xb0
xchg byte [0x1404e0726], al
lea rax, [0x1404e0720]
jmp 0x14017beea
xor edi, edi
mov eax, esi
not eax
mov ecx, eax
and ecx, 0x9b9c6bf7
mov ebx, esi
and ebx, 0x64639408
or ebx, ecx
lea r14, [rsp + 0x3c]
lea r12, [0x140404350]
and eax, 0x7b48d566
mov ebp, esi
and ebp, 0x84b72a99
or ebp, eax
lea r13, [rsp + 0x50]
lea r15, [rsp + 0x3d]
nop word cs:[rax + rax]
mov ecx, edi
mov rdx, r14
mov r8d, ebx
mov r9d, 0xa51cdcf
call fcn.14017d8e0
movzx edx, byte [rsp + 0x3c]
lea rcx, [r12 + rdi]
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], r13
mov dword [rsp + 0x30], 0xf468402f
mov r8d, edi
mov r9, r15
call fcn.14017daf0
movzx eax, byte [rsp + 0x3d]
mov rcx, qword [rsp + 0x50]
mov byte [rcx], al
lea eax, [rdi + 1]
cmp eax, 3
jg 0x14017bed1
inc rdi
jmp 0x14017be80
xor esi, 0xe02ec42
mov ecx, esi
mov edx, 0x7e3c0dce
call fcn.14017da70
lea rax, [0x1404e06b0]
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret