Function at 0x1401f8620
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
test ecx, ecx
je 0x1401f8712
mov ecx, edx
mov edx, 0xfc838ed8
mov r8d, 0x2224558d
call fcn.1400a9630
test al, 1
je 0x1401f8784
movzx eax, byte [0x140511053]
cmp al, 0x1b
je 0x1401f8b4e
mov dil, 0x53
xor ebp, ebp
lea rsi, [rsp + 0x38]
jmp 0x1401f867a
add al, 0x74
cmp bl, al
je 0x1401f8b4e
mov al, 0x93
lock cmpxchg byte [0x140511053], dil
mov ebx, eax
sete dl
mov ecx, eax
mov r8d, 0xb61b6a7
mov r9d, 0xe000aff2
call fcn.140126520
test al, 1
jne 0x1401f87bd
nop word cs:[rax + rax]
test bpl, bpl
jne 0x1401f86cd
movzx eax, byte [0x1405112c0]
mov ecx, dword [0x14055c4a4]
lea edx, [rcx - 1]
imul edx, ecx
test dl, 1
je 0x1401f8670
mov ecx, ebx
mov edx, 0x2cf63d5e
mov r8d, 0x34f6ea26
call fcn.140088af0
mov ecx, dword [0x14055c4a4]
mov edx, ecx
sub edx, dword [0x1405112b0]
add edx, 0x1d510280
mov dword [rsp + 0x20], 0x7012fafc
mov r8, rsi
mov r9d, 0x6c62bede
call fcn.1401f9210
cmp dword [rsp + 0x38], 0
jne 0x1401f86b0
jmp 0x1401f86b5
xor eax, eax
nop word cs:[rax + rax]
mov ecx, dword [0x14055c4a8]
cmp ecx, 0x58
jg 0x1401f872f
test al, al
je 0x1401f873c
mov ecx, dword [0x14055c4a8]
cmp ecx, 0x4c
jge 0x1401f8720
jmp 0x1401f872b
test edx, edx
je 0x1401f87a9
movzx eax, byte [0x140510f32]
movzx ecx, byte [0x1405112c0]
add cl, 0x76
cmp al, cl
je 0x1401f89b9
nop dword [rax]
movzx ecx, byte [0x1405112c0]
lea eax, [rcx + 6]
add cl, 0x9e
lock cmpxchg byte [0x140510f32], cl
je 0x1401f889e
cmp al, 0x1d
jne 0x1401f8760
jmp 0x1401f89b9
lea rcx, [rsp + 0x38]
mov edx, 0xf01a6048
mov r8d, 0x6536b8a7
call fcn.1401f94d0
cmp dword [rsp + 0x38], 0x4c
jle 0x1401f8b57
jmp 0x1401f8b7a
mov eax, dword [0x14055c4a8]
cmp eax, 0x4a
jle 0x1401f89c5
jmp 0x1401f89d2
xor esi, esi
lea rdi, [rsp + 0x44]
lea rbx, [rsp + 0x38]
lea r14, [0x140511050]
mov dword [rsp + 0x20], 0x45a8f94f
mov ecx, esi
mov rdx, rdi
mov r8, rbx
mov r9d, 0x5206764a
call fcn.1401f94e0
movzx eax, byte [rsp + 0x44]
mov rcx, qword [rsp + 0x38]
xor al, byte [rcx]
mov byte [rsi + r14], al
lea eax, [rsi + 1]
cmp eax, 2
jg 0x1401f8808
inc rsi
jmp 0x1401f87d0
mov ecx, 0x9d6869de
mov edx, 0xd9608287
call fcn.1401f9510
jmp 0x1401f8836
mov ecx, dword [0x14055c4a8]
mov edx, 0x5670f8f1
mov r8d, 0x982a465d
call fcn.1401f9570
test al, 1
je 0x1401f8820
mov eax, dword [0x14055c4a8]
cmp eax, 0x5a
jge 0x1401f8820
lea rcx, [rsp + 0x38]
mov edx, 0xe72fe0a5
mov r8d, 0x396ba37b
call fcn.1401f9530
nop word [rax + rax]
mov eax, dword [0x14055c4a4]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x1401f8860
mov ecx, 0x41ac29a9
mov edx, 0x95fc1f16
call fcn.140088af0
mov eax, dword [0x14055c4a8]
mov ecx, 0xe2aefd8f
add ecx, dword [0x1405112b0]
cmp eax, ecx
jl 0x1401f8b20
jmp 0x1401f8b44
xor ebx, ebx
mov ebp, 0xe2aefd81
lea rsi, [rsp + 0x38]
lea r14, [0x14042f9f0]
lea r15, [0x140510f30]
jmp 0x1401f88cb
inc ebx
cmp ebx, 2
jge 0x1401f89b1
mov ecx, dword [0x14055c4a4]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x1405112b0]
add ecx, ebp
xor edx, edx
div ecx
movsxd rdi, ebx
test edx, edx
jne 0x1401f8940
nop word [rax + rax]
mov ecx, edi
mov rdx, rsi
mov r8d, 0x1e3b7b19
mov r9d, 0xc883c1fb
call fcn.1401f9680
mov rax, qword [rsp + 0x38]
movzx ecx, byte [rax]
movzx edx, byte [rdi + r14]
mov dword [rsp + 0x20], 0x3efbdc0f
mov r8, rsi
mov r9d, 0x475038d1
call fcn.1400aae90
movzx eax, byte [rsp + 0x38]
mov byte [rdi + r15], al
mov eax, dword [0x14055c4a8]
cmp eax, 0x3b
jl 0x1401f88c0
nop dword [rax]
movzx eax, byte [rdi + r15]
movzx ecx, byte [rdi + r14]
shl al, cl
mov edx, ecx
xor dl, cl
not dl
and dl, al
xor dl, cl
mov byte [rdi + r15], dl
mov eax, dword [0x1405112b0]
mov edx, eax
sub edx, ebx
lea ecx, [rdx + rdx]
add ecx, 0xc55dfb02
mov r8d, edx
add r8d, 0xe2aefd81
mov edx, r8d
shl edx, cl
sub r8d, edx
lea ecx, [rax + r8]
add ecx, 0xe2aefd7f
lea r9d, [rax - 0x24acd3c]
add eax, 0x283673cb
mov dword [rsp + 0x20], eax
mov r8, rsi
call fcn.14014fd00
mov eax, dword [0x14055c4a8]
cmp eax, 0xc
jge 0x1401f8940
jmp 0x1401f88f0
mov al, 0x1d
xchg byte [0x140510f32], al
lea rax, [0x140510f30]
jmp 0x1401f8b13
movzx eax, byte [0x140510ff5]
xor ecx, ecx
test cl, cl
je 0x1401f89db
movzx eax, byte [0x140510ff5]
jmp 0x1401f89c5
cmp al, 0xa4
je 0x1401f8b0c
mov cl, 0xb9
nop word cs:[rax + rax]
mov al, 0x75
lock cmpxchg byte [0x140510ff5], cl
je 0x1401f8a0f
movzx edx, byte [0x1405112c0]
add dl, 0xfd
cmp al, dl
jne 0x1401f89f0
jmp 0x1401f8b0c
xor eax, eax
mov ebp, 0xe2aefd7f
lea rsi, [rsp + 0x44]
lea rdi, [rsp + 0x38]
lea r14, [0x140510fe0]
lea r15, [0x14042fa90]
jmp 0x1401f8a39
test cl, 1
jne 0x1401f8afd
mov ecx, dword [0x14055c4a4]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x1405112b0]
add ecx, ebp
movsxd rbx, eax
cmp edx, ecx
jne 0x1401f8acb
nop word [rax + rax]
mov dword [rsp + 0x28], 0x909a6302
mov dword [rsp + 0x20], 0x3249013f
mov rcx, rbx
mov edx, ebx
mov r8, rsi
mov r9, rdi
call fcn.1401f96a0
movzx edx, byte [rsp + 0x44]
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x30], 0xe0ce4c03
mov dword [rsp + 0x28], 0x6ecfbf56
mov r8d, ebx
mov r9, rdi
call fcn.1401f96d0
mov eax, dword [rsp + 0x38]
movzx ecx, byte [rsp + 0x44]
mov edx, dword [0x14055c4a4]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x1401f8a30
movzx eax, byte [rbx + r14]
movzx edx, byte [rbx + r15]
sub al, dl
mul dl
xor dl, al
mov dword [rsp + 0x28], 0x82acf92a
mov dword [rsp + 0x20], 0xe0e87b11
mov ecx, ebx
mov r8, rsi
mov r9, rdi
call fcn.1401f9630
jmp 0x1401f8a60
mov ecx, 0xaf375f23
mov edx, 0xcbcc77d
call fcn.1401f9500
lea rax, [0x140510fe0]
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
mov al, 0x1b
xchg byte [0x140511053], al
mov eax, dword [0x14055c4a4]
mov ecx, dword [0x1405112b0]
add ecx, eax
add ecx, 0x1d510280
imul ecx, eax
test cl, 1
je 0x1401f8b4e
mov al, 0x1b
xchg byte [0x140511053], al
jmp 0x1401f8b20
lea rax, [0x140511050]
jmp 0x1401f8b13
movzx ebx, byte [0x140511070]
lea rcx, [rsp + 0x38]
mov edx, 0x3387824d
mov r8d, 0x62ebd818
call fcn.1401f94d0
cmp dword [rsp + 0x38], 0x33
jle 0x1401f8b91
lea rcx, [rsp + 0x38]
mov edx, 0x5fdc0dcd
mov r8d, 0xded39c7a
call fcn.1401f9670
jmp 0x1401f8b57
cmp bl, 0xb6
je 0x1401f8bc5
nop word cs:[rax + rax]
movzx ecx, byte [0x1405112c0]
lea eax, [rcx + 0x73]
add cl, 0x96
lock cmpxchg byte [0x140511070], cl
je 0x1401f8bbd
cmp al, 0xb6
jne 0x1401f8ba0
jmp 0x1401f8bc5
xor eax, eax
test al, al
je 0x1401f8bd1
jmp 0x1401f8bef
lea rax, [0x140511060]
jmp 0x1401f8b13
mov eax, dword [0x14055c4a4]
lea ecx, [rax - 1]
imul ecx, eax
and ecx, 1
mov eax, 0xe2aefd7f
add eax, dword [0x1405112b0]
cmp ecx, eax
je 0x1401f8c00
mov ecx, 0x40076c72
mov edx, 0x4cfd8b56
call fcn.1401f9610
jmp 0x1401f8bd1
xor edx, edx
lea rax, [0x140511060]
lea rcx, [0x14042fb00]
movsxd rdx, edx
movzx r8d, byte [rdx + rcx]
add byte [rdx + rax], r8b
mov r8d, dword [0x1405112b0]
add edx, r8d
add edx, 0xe2aefd80
cmp edx, 0x10
jl 0x1401f8c10
movzx eax, byte [0x1405112c0]
add al, 0xf
xchg byte [0x140511070], al
jmp 0x1401f8bc5