Function at 0x14017af90
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
test ecx, ecx
je 0x14017afe9
mov ecx, edx
mov edx, 0xe8b77ba
mov r8d, 0x3e6bcc49
call fcn.1400a8350
test al, 1
je 0x14017b03b
movzx eax, byte [0x1404e0719]
cmp al, 0xd9
je 0x14017b13d
mov cl, 0x42
nop dword [rax]
mov al, 0xfe
lock cmpxchg byte [0x1404e0719], cl
je 0x14017b0d3
cmp al, 0xd9
jne 0x14017afd0
jmp 0x14017b13d
test edx, edx
je 0x14017b07b
movzx eax, byte [0x1404e0684]
movzx ecx, byte [0x1404e1360]
add cl, 0x48
cmp al, cl
je 0x14017b256
mov bl, 0x4f
nop dword [rax]
mov al, 0x8c
lock cmpxchg byte [0x1404e0684], bl
je 0x14017b205
mov ecx, eax
mov edx, 0x78ece874
mov r8d, 0x555ef2ec
call fcn.14017db50
test al, 1
je 0x14017b010
jmp 0x14017b256
movzx eax, byte [0x1404e06a4]
cmp al, 0xf1
je 0x14017b1f9
mov bl, 0xb8
nop dword [rax]
mov al, 0x96
lock cmpxchg byte [0x1404e06a4], bl
je 0x14017b149
mov ecx, eax
mov edx, 0x6a9d0d1a
mov r8d, 0xae7e2996
call fcn.14017d240
test al, 1
je 0x14017b050
jmp 0x14017b1f9
lea rcx, [rsp + 0x40]
mov edx, 0x688e06a3
mov r8d, 0xf7d61a18
call fcn.14017d740
movzx ecx, byte [rsp + 0x40]
mov edx, 0x6f436633
mov r8d, 0xd870c06e
call fcn.14017db60
test al, 1
jne 0x14017b276
mov cl, 0xd2
nop
mov al, 0xcd
lock cmpxchg byte [0x1404e084f], cl
je 0x14017b262
movzx edx, byte [0x1404e1360]
add dl, 9
cmp al, dl
jne 0x14017b0b0
jmp 0x14017b276
xor eax, eax
lea rbx, [0x1404e0710]
lea r14, [0x1404043b0]
lea rsi, [rsp + 0x40]
nop dword [rax + rax]
movsxd rdi, eax
movzx ebp, byte [rdi + rbx]
xor bpl, byte [rdi + r14]
mov r9d, dword [0x1404e1364]
lea r8d, [r9 - 0x649a5a4b]
add r9d, 0x70ebd439
mov rcx, rdi
mov rdx, rsi
call fcn.14017dba0
mov rax, qword [rsp + 0x40]
mov byte [rax], bpl
mov eax, dword [0x1404e1364]
add eax, edi
add eax, 0xd7a3e98b
cmp eax, 9
jl 0x14017b0f0
mov al, 0xd9
xchg byte [0x1404e0719], al
lea rax, [0x1404e0710]
jmp 0x14017b2e6
mov ecx, 0x1febfc07
mov edx, 0x8d0c905a
call fcn.140089a60
nop dword [rax + rax]
mov ecx, 0xeb793947
mov edx, 0x364d5787
call fcn.140089a60
mov eax, dword [0x1405319f8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14017b160
xor eax, eax
lea rcx, [0x1404e06a0]
lea rdx, [0x140404340]
movzx r8d, byte [rax + rdx]
xor byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 3
jg 0x14017b1a8
inc rax
jmp 0x14017b190
lea rsi, [rsp + 0x40]
nop dword [rax]
mov ecx, 0x7f13f01e
mov edx, 0xdfa339b7
call fcn.14017c000
test al, 1
je 0x14017b1d4
mov eax, dword [0x1405319f8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14017b1f1
mov rcx, rsi
mov edx, 0x1b458fbd
mov r8d, 0xefcb128f
call fcn.140132e40
cmp qword [rsp + 0x40], 0
jne 0x14017b1b0
jmp 0x14017b1c3
mov al, 0xf1
xchg byte [0x1404e06a4], al
lea rax, [0x1404e06a0]
jmp 0x14017b2e6
xor eax, eax
lea rdi, [0x1404e0680]
lea rbx, [0x140404320]
lea rsi, [rsp + 0x40]
nop word [rax + rax]
movsxd rcx, eax
movzx edx, byte [rcx + rdi]
add dl, byte [rcx + rbx]
mov dword [rsp + 0x28], 0x947653c5
mov dword [rsp + 0x20], 0x2ff50705
mov r8d, ecx
mov r9, rsi
call fcn.14017da00
mov eax, dword [rsp + 0x40]
cmp eax, 4
jl 0x14017b220
mov al, 0x5b
xchg byte [0x1404e0684], al
lea rax, [0x1404e0680]
jmp 0x14017b2e6
mov eax, dword [0x1405319fc]
cmp eax, 0x18
jg 0x14017b300
jmp 0x14017b2f5
xor esi, esi
nop dword [rax + rax]
mov eax, dword [0x1405319fc]
mov ecx, dword [0x1404e1364]
mov edx, ecx
xor edx, 0xd7a3e9b3
and ecx, 0x57a3e9b3
lea ecx, [rdx + rcx*2]
cmp eax, ecx
jge 0x14017b2a6
test sil, sil
je 0x14017b2df
mov ecx, dword [0x1405319f8]
lea eax, [rcx - 1]
imul eax, ecx
mov r8d, dword [0x1404e1364]
lea ecx, [r8 - 0x285c1674]
xor edx, edx
div ecx
mov ecx, edx
lea edx, [r8 - 0x319009f7]
add r8d, 0xabe317f1
call fcn.1400a8350
test al, 1
je 0x14017b280
jmp 0x14017b2a1
lea rax, [0x1404e0840]
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov al, 1
test al, al
jne 0x14017b30b
nop dword [rax + rax]
cmp byte [0x140531659], 0
jne 0x14017b300
jmp 0x14017b2f5
xor eax, eax
lea r15, [0x1404e0840]
lea r12, [0x1404044d0]
lea rsi, [rsp + 0x4c]
lea rdi, [rsp + 0x3f]
lea rbx, [rsp + 0x40]
jmp 0x14017b33f
mov eax, dword [rsp + 0x4c]
test byte [rsp + 0x3f], 1
jne 0x14017b420
mov ecx, dword [0x1405319fc]
movsxd r14, eax
cmp ecx, 0x23
jg 0x14017b3a5
nop dword [rax]
movzx eax, byte [r14 + r15]
movzx ecx, byte [r14 + r12]
mov edx, eax
not dl
mov r8d, edx
xor r8b, cl
not cl
mov r9d, eax
and r9b, cl
or r9b, r8b
not r9b
xor cl, dl
and cl, al
or cl, r9b
mov byte [r14 + r15], cl
mov dword [rsp + 0x28], 0xe46923b5
mov dword [rsp + 0x20], 0x4c2da4ab
mov ecx, r14d
mov rdx, rsi
mov r8, rdi
mov r9, rbx
call fcn.14017da20
test byte [rsp + 0x40], 1
je 0x14017b330
movzx edx, byte [r14 + r15]
mov dword [rsp + 0x28], 0x29193f73
mov dword [rsp + 0x20], 0x1f07046f
mov ecx, r14d
mov r8, rsi
mov r9, rbx
call fcn.14017dc30
movzx ecx, byte [rsp + 0x4c]
movzx edx, byte [rsp + 0x40]
add dl, cl
neg dl
mov eax, edx
xor al, 0x55
and dl, 0x55
add dl, dl
add dl, al
mov eax, edx
xor al, cl
and dl, cl
add dl, dl
add dl, al
add dl, 0xab
mov eax, edx
sub al, cl
mul cl
mov ecx, eax
shl dl, cl
mov ecx, edx
neg cl
mov r8d, ecx
xor r8b, al
and cl, al
add cl, cl
mov eax, r8d
xor al, cl
and cl, r8b
add cl, cl
add cl, al
xor cl, dl
mov byte [r14 + r15], cl
jmp 0x14017b350
mov eax, dword [0x1405319f8]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x14017b420
mov al, 0x1c
xchg byte [0x1404e084f], al
jmp 0x14017b276