Function at 0x1401f5520
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
test ecx, ecx
je 0x1401f5619
test edx, edx
je 0x1401f5653
mov eax, 0xa1d9b15d
lea rcx, [fcn.1401f5520]
add ecx, ecx
add ecx, 0x3500
mov edx, ecx
not edx
nop dword [rax + rax]
mov r8d, dword [0x14055c484]
mov r9d, dword [0x140510d58]
mov r10d, r9d
xor r10d, 0xa1d9b180
and r9d, 0x21d9b180
lea r9d, [r10 + r9*2]
cmp r8d, r9d
jge 0x1401f55a6
movzx r8d, byte [0x140510c8f]
mov r9d, dword [0x14055c484]
mov r10d, dword [0x140510d58]
add r10d, eax
cmp r9d, r10d
jl 0x1401f55b4
movzx r8d, byte [0x140510c8f]
test edx, ecx
jne 0x1401f5560
jmp 0x1401f5588
cmp r8b, 0xfd
je 0x1401f5891
mov cl, 0xd5
mov edx, 0xa1d9b13c
lea rax, [fcn.1401f5520]
lea r8d, [rax + rax]
add r8d, 0x1bc0
nop word [rax + rax]
mov al, 0x95
lock cmpxchg byte [0x140510c8f], cl
je 0x1401f56d3
mov r9d, dword [0x14055c484]
cmp r9d, 0x5a
mov r9d, dword [0x140510d58]
add r9d, edx
xor r9d, r8d
not r9d
test r9d, r8d
jne 0x1401f55fb
cmp al, 0xfd
jne 0x1401f55e0
jmp 0x1401f5891
test edx, edx
je 0x1401f5693
movzx eax, byte [0x140510c52]
cmp al, 0xa9
je 0x1401f5730
mov cl, 0xf
nop
mov al, 0xed
lock cmpxchg byte [0x140510c52], cl
je 0x1401f56e2
movzx edx, byte [0x140510d5c]
add dl, 0x96
cmp al, dl
jne 0x1401f5630
jmp 0x1401f5730
movzx eax, byte [0x140510c70]
cmp al, 0x3c
je 0x1401f5835
mov cl, 0x4c
nop word cs:[rax + rax]
mov al, 0xf9
lock cmpxchg byte [0x140510c70], cl
je 0x1401f573c
movzx edx, byte [0x140510d5c]
add dl, 0x29
cmp al, dl
jne 0x1401f5670
jmp 0x1401f5835
movzx eax, byte [0x140510c35]
cmp al, 0xe1
je 0x1401f5879
mov cl, 0xaf
nop word cs:[rax + rax]
mov al, 0xfc
lock cmpxchg byte [0x140510c35], cl
je 0x1401f583e
movzx edx, byte [0x140510d5c]
add dl, 0xce
cmp al, dl
jne 0x1401f56b0
jmp 0x1401f5879
xor eax, eax
test al, al
jne 0x1401f58f0
jmp 0x1401f58e0
xor edx, edx
lea rax, [0x140510c40]
lea rcx, [0x14042f6f0]
nop word cs:[rax + rax]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x140510d58]
add edx, r8d
add edx, 0xa1d9b13c
add r8d, 0xa1d9b14d
cmp edx, r8d
jl 0x1401f5700
mov al, 0xa9
xchg byte [0x140510c52], al
lea rax, [0x140510c40]
jmp 0x1401f5880
xor edi, edi
lea rbx, [0x140510c60]
lea r14, [0x14042f710]
mov ebp, 0xa1d9b187
mov r15d, 0xa1d9b16f
lea rsi, [0x1401f5940]
mov r12b, 1
jmp 0x1401f577b
inc edi
cmp edi, 0x10
jge 0x1401f582d
mov eax, dword [0x14055c484]
movsxd r13, edi
cmp eax, 0x5b
jg 0x1401f57b0
nop dword [rax]
movzx eax, byte [r13 + r14]
add byte [r13 + rbx], al
mov eax, dword [0x14055c484]
mov ecx, dword [0x140510d58]
add ecx, ebp
cmp eax, ecx
jl 0x1401f5770
nop dword [rax]
mov ecx, dword [0x140510d58]
add ecx, r15d
call fcn.1403c4b54
mov qword [0x14055c478], rax
mov rcx, rsi
call fcn.1403e5350
movzx edx, byte [r13 + rbx]
movzx ecx, byte [r13 + r14]
shl dl, cl
movzx eax, byte [0x140510d5c]
sub al, dl
add al, 0xed
mul cl
mov edx, eax
shl dl, cl
mov r8d, eax
mov ecx, edx
shl r8b, cl
mov ecx, r8d
shl al, cl
mov edx, eax
mov ecx, r8d
shl dl, cl
sub al, dl
mul dl
mov r8d, edx
sub r8b, al
mov r9d, r8d
mov ecx, edx
shl r9b, cl
sub r8b, r9b
mov eax, r8d
mul r9b
add al, r9b
mov byte [r13 + rbx], al
test r12b, r12b
je 0x1401f57b0
jmp 0x1401f5790
mov al, 0x3c
xchg byte [0x140510c70], al
lea rax, [0x140510c60]
jmp 0x1401f5880
xor edx, edx
lea rax, [0x140510c20]
lea rcx, [0x14042f6d0]
nop
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
xor byte [rdx + rax], r8b
mov r8d, dword [0x140510d58]
add edx, r8d
add edx, 0xa1d9b13c
cmp edx, 0x15
jl 0x1401f5850
mov al, 0xe1
xchg byte [0x140510c35], al
lea rax, [0x140510c20]
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, 0xa1d9b13c
lea rcx, [fcn.1401f5520]
add ecx, ecx
add ecx, 0xb60
mov dl, 1
nop word [rax + rax]
mov r8d, dword [0x140510d58]
add r8d, eax
xor r8d, ecx
not r8d
test r8d, ecx
jne 0x1401f58d1
cmp dword [0x140510d58], 0x5e264ec5
je 0x1401f58d7
test dl, dl
je 0x1401f58b0
jmp 0x1401f58c5
lea rax, [0x140510c80]
jmp 0x1401f5880
cmp dword [0x140510d58], 0x5e264ec5
je 0x1401f58fd
nop dword [rax]
mov eax, dword [0x14055c484]
cmp eax, 0x5c
jge 0x1401f58f0
jmp 0x1401f58e0
xor eax, eax
lea rcx, [0x140510c80]
lea rdx, [0x14042f720]
nop dword [rax]
movzx r8d, byte [rax + rdx]
add byte [rax + rcx], r8b
lea r8d, [rax + 1]
cmp r8d, 0xe
jg 0x1401f5928
inc rax
jmp 0x1401f5910
mov al, 0xfd
xchg byte [0x140510c8f], al
jmp 0x1401f5891