Function at 0x1401c1a80
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
xchg r9, rcx
mov qword [rsp + 8], r9
xchg rcx, r9
nop
sub rsp, 8
mov qword [rsp], rbp
push rbx
push rdi
mov qword [rsp], rsi
push rdi
nop
mov qword [rsp - 8], r12
sub rsp, 8
nop
mov qword [rsp - 8], r13
sub rsp, 8
push r14
nop
mov qword [rsp - 8], r15
sub rsp, 8
lea rbp, [rsp - 0x17]
sub rsp, 0xf8
movzx r12d, r8b
mov r14d, r8d
and r12b, 0xf
mov r11, rdx
mov r15d, 0x17b8f9f
add r15d, 0x17d57cb2
add r15d, 0x774a9f0
xor r15d, 0x31565d1f
add r15d, 0x396b63d3
add r15d, 0x2e8f4d19
sub r15d, 0x798e9c3a
mov byte [rbp + 0x6f], r12b
sub r11, rcx
xchg r14, rdx
mov rbx, r14
xchg rdx, r14
xchg r12, rsi
mov r12, rcx
xchg rsi, r12
mov r10d, r15d
nop word [rax + rax]
movzx eax, byte [r11 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r10, 1
jne 0x1401c1b30
lea r13, [0x140000000]
test r9, r9
je 0x1401c1d03
movzx eax, byte [r9]
mov r10d, 0x48457310
xor r10d, 0x36d483b8
sub r10d, 0x6d2b0326
add r10d, 0x1d7506c6
add r10d, 0x4259acac
sub r10d, 0x1a68d536
xor r10d, 0x78623b5d
xor r10d, 0x4862b864
xor r10d, 0x66cc4883
mov byte [rsp + 0x40], al
movzx eax, byte [r9 + 1]
mov byte [rsp + 0x41], al
movzx eax, byte [r9 + 2]
mov byte [rsp + 0x42], al
movzx eax, byte [r9 + 3]
mov byte [rsp + 0x43], al
movzx eax, byte [r9 + 4]
mov byte [rsp + 0x44], al
movzx eax, byte [r9 + 5]
mov byte [rsp + 0x45], al
movzx eax, byte [r9 + 6]
mov byte [rsp + 0x46], al
movzx eax, byte [r9 + 7]
mov byte [rsp + 0x47], al
movzx eax, byte [r9 + 8]
mov byte [rsp + 0x48], al
movzx eax, byte [r9 + 9]
mov byte [rsp + 0x49], al
movzx eax, byte [r9 + 0xa]
mov byte [rsp + 0x4a], al
movzx eax, byte [r9 + 0xb]
mov byte [rsp + 0x4b], al
movzx eax, byte [r9 + 0xc]
mov byte [rsp + 0x4c], al
movzx eax, byte [r9 + 0xd]
mov byte [rsp + 0x4d], al
movzx eax, byte [r9 + 0xe]
mov byte [rsp + 0x4e], al
movzx eax, byte [r9 + 0xf]
mov byte [rsp + 0x4f], al
nop word [rax + rax]
lea edx, [r10*4 - 4]
movzx r9d, byte [rsp + rdx + 0x40]
lea eax, [rdx + 1]
movzx r8d, byte [rsp + rax + 0x40]
lea eax, [rdx + 2]
movzx r11d, byte [rsp + rax + 0x40]
lea eax, [rdx + 3]
movzx ebx, byte [rsp + rax + 0x40]
movzx edi, r8b
test r10b, 3
jne 0x1401c1ca7
movzx edi, byte [r11 + r13 + 0x4340]
mov eax, r10d
movzx r11d, byte [rbx + r13 + 0x4340]
xor dil, 0xec
movzx ebx, byte [r9 + r13 + 0x4340]
xor r11b, 0xec
shr eax, 1
shr eax, 1
xor bl, 0xec
movzx ecx, al
movzx r9d, byte [rcx + r13 + 0x4540]
xor r9b, byte [r8 + r13 + 0x4340]
xor r9b, 0x46
lea edx, [r10*4 - 0x10]
xor r9b, byte [rsp + rdx + 0x40]
lea eax, [rdx + 1]
xor dil, byte [rsp + rax + 0x40]
lea r8d, [r10*4]
lea eax, [r8 + 1]
mov byte [rsp + r8 + 0x40], r9b
mov byte [rsp + rax + 0x40], dil
inc r10d
lea eax, [rdx + 2]
xor r11b, byte [rsp + rax + 0x40]
lea eax, [r8 + 2]
mov byte [rsp + rax + 0x40], r11b
lea eax, [rdx + 3]
xor bl, byte [rsp + rax + 0x40]
lea eax, [r8 + 3]
mov byte [rsp + rax + 0x40], bl
cmp r10d, 0x2c
jb 0x1401c1c2c
mov rbx, qword [rbp + 0x67]
xchg rsi, rax
mov rsi, qword [rbp + 0x7f]
xchg rsi, rax
mov edi, 0x3e9d42f
xor edi, 0x7902e2eb
xor edi, 0x2d7721f4
add edi, 0x17ed91cb
xor edi, 0x4ebfd539
sub edi, 0x21367db9
mov r8, qword [0x140217140]
test rax, rax
mov qword [rsp + 0x30], rdi
cmovne r8, rax
mov rax, r14
mov qword [0x140217140], r8
test r14d, r14d
je 0x1401c2275
lea r9, [rsp + 0x50]
sub r9, rsi
dec rax
mov qword [rsp + 0x20], r9
shr rax, 4
inc rax
mov qword [rsp + 0x28], rax
nop dword [rax]
xchg rcx, rdi
mov rdi, rbx
xchg rcx, rdi
sub r8, rbx
xchg rdx, r14
mov r14, r15
xchg r14, rdx
nop dword [rax]
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c1d8f
xchg r8, r13
mov r13, rbx
xchg r13, r8
mov rcx, rsi
sub r8, rsi
xchg rdx, r15
mov r15, rdx
xchg r15, rdx
nop dword [rax]
movzx eax, byte [r8 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c1dbf
lea rax, [r9 - 0x10]
mov r14, rsi
xchg r13, rax
mov qword [rbp + 0x77], r13
xchg r13, rax
xchg r14, rax
mov rsi, r14
xchg r14, rax
mov edx, 0x5c5f9f5b
sub edx, 0x591aa5e7
add edx, 0x37beb614
xor edx, 0x60719a3
xor edx, 0x308078ad
xor edx, 0x685e8470
sub edx, 0x65da4af2
nop dword [rax]
nop dword [rax + rax]
mov ecx, 0x50c4ee87
sub ecx, 0x25a89fac
add ecx, 0x9a5baeb
xor ecx, 0x3430bdca
xor ecx, 0x62998087
xor ecx, 0x3b9d6df5
sub ecx, 0x59f6597a
nop word [rax + rax]
movzx eax, byte [rsi + r14]
xor byte [r14], al
inc r14
sub rcx, 1
jne 0x1401c1e53
sub rdx, 1
jne 0x1401c1e1f
xchg r10, rsi
mov r10, qword [rbp + 0x5f]
xchg rsi, r10
xchg r15, r8
mov r8, r9
xchg r8, r15
mov qword [rbp + 0x7f], rdi
mov r8, rsi
mov r9d, 0x3aa9f788
sub r9d, 0x2cc54234
add r9d, 0x28dfc535
xor r9d, 0x77fcd6c
add r9d, 0x4d3b109d
xor r9d, 0x25dc0dad
xor r9d, 0x30cfccf1
sub r9d, 0x6be509da
nop dword [rax + rax]
xchg rcx, r8
mov r8, rcx
xchg rcx, r8
mov edx, 0x3aa86ba
add edx, 0x495ee1ef
sub edx, 0x10d78190
xor edx, 0x215cb5b1
xor edx, 0x5c2a05bb
xor edx, 0x538680b7
sub edx, 0x12c1d7a0
nop dword [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 4]
movzx eax, byte [rax + r13 + 0x4340]
xor al, 0xec
mov byte [rcx - 4], al
sub rdx, 1
jne 0x1401c1f02
inc r8
sub r9, 1
jne 0x1401c1ec8
movzx eax, byte [rsi + 5]
lea r12, [rsi + 2]
movzx ecx, byte [rsi + 1]
lea r13d, [rdx + 4]
mov byte [rsi + 1], al
movzx eax, byte [rsi + 9]
mov byte [rsi + 5], al
movzx eax, byte [rsi + 0xd]
mov byte [rsi + 9], al
movzx eax, byte [rsi + 0xa]
mov byte [rsi + 0xd], cl
movzx ecx, byte [rsi + 2]
mov byte [rsi + 2], al
movzx eax, byte [rsi + 0xe]
mov byte [rsi + 0xa], cl
movzx ecx, byte [rsi + 6]
mov byte [rsi + 6], al
movzx eax, byte [rsi + 0xf]
mov byte [rsi + 0xe], cl
movzx ecx, byte [rsi + 3]
mov byte [rsi + 3], al
movzx eax, byte [rsi + 0xb]
mov byte [rsi + 0xf], al
movzx eax, byte [rsi + 7]
mov byte [rsi + 0xb], al
mov byte [rsi + 7], cl
movzx edi, byte [r12 - 2]
movzx r8d, byte [r12 - 1]
movzx edx, dil
movzx ebx, byte [r12 + 1]
xor dl, r8b
movzx r10d, byte [r12]
lea r12, [r12 + 4]
movzx eax, dl
movzx r9d, bl
shr al, 6
shr al, 1
add dl, dl
movzx eax, al
xor r9b, r10b
imul ecx, eax, 0x1b
movzx r11d, r9b
xor r11b, dil
xor r11b, r8b
xor cl, dl
movzx edx, r8b
xor cl, dil
xor dl, r10b
xor cl, r11b
movzx eax, dl
mov byte [r12 - 6], cl
xor dil, bl
shr al, 7
add dl, dl
movzx eax, al
imul ecx, eax, 0x1b
movzx eax, r9b
shr al, 2
shr al, 5
add r9b, r9b
movzx eax, al
xor cl, dl
xor cl, r8b
xor cl, r11b
mov byte [r12 - 5], cl
imul ecx, eax, 0x1b
movzx eax, dil
shr al, 2
shr al, 5
add dil, dil
movzx eax, al
xor cl, r9b
xor cl, r10b
xor cl, r11b
mov byte [r12 - 4], cl
imul ecx, eax, 0x1b
xor cl, dil
xor cl, bl
xor cl, r11b
mov byte [r12 - 3], cl
sub r13, 1
jne 0x1401c1f8a
xchg rsi, rax
mov rsi, rax
xchg rsi, rax
lea r8d, [r13 + 4]
mov edx, 0x3da039de
xor edx, 0x143a7d58
xor edx, 0x6a328a1
add edx, 0x923443e
xor edx, 0x77fa41ee
xor edx, 0x5a3327f
sub edx, 0x4a05c3f0
nop word [rax + rax]
movzx ecx, byte [r15 + rax]
xor byte [rax], cl
inc rax
sub rdx, 1
jne 0x1401c208a
sub r8, 1
jne 0x1401c2056
sub r15, 0xfffffffffffffff0
lea r13, [0x140000000]
sub qword [rbp + 0x7f], 1
jne 0x1401c1e89
xchg r8, rsi
mov rsi, r8
xchg r8, rsi
lea r9d, [rdx + 4]
lea r13, [0x140000000]
nop word [rax + rax]
xchg r8, rcx
mov r8, rcx
xchg r8, rcx
mov edx, 0x198c5094
xor edx, 0x636cc679
sub edx, 0x68cdcd18
xor edx, 0x5009c6eb
xor edx, 0x521b83cc
xor edx, 0x596a8ec6
sub edx, 0x4466fb91
add edx, 0x25cfeec0
xor edx, 0x2ad2f567
nop dword [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 4]
movzx eax, byte [rax + r13 + 0x4340]
xor al, 0xec
mov byte [rcx - 4], al
sub rdx, 1
jne 0x1401c211e
inc r8
sub r9, 1
jne 0x1401c20d8
movzx ecx, byte [rsi + 1]
lea r8d, [rdx + 4]
movzx eax, byte [rsi + 5]
xchg rdi, r9
mov rdi, qword [rsp + 0x20]
xchg r9, rdi
mov byte [rsi + 1], al
movzx eax, byte [rsi + 9]
mov byte [rsi + 5], al
movzx eax, byte [rsi + 0xd]
mov byte [rsi + 9], al
movzx eax, byte [rsi + 0xa]
mov byte [rsi + 0xd], cl
movzx ecx, byte [rsi + 2]
mov byte [rsi + 2], al
movzx eax, byte [rsi + 0xe]
mov byte [rsi + 0xa], cl
movzx ecx, byte [rsi + 6]
mov byte [rsi + 6], al
movzx eax, byte [rsi + 0xf]
mov byte [rsi + 0xe], cl
movzx ecx, byte [rsi + 3]
mov byte [rsi + 3], al
movzx eax, byte [rsi + 0xb]
mov byte [rsi + 0xf], al
movzx eax, byte [rsi + 7]
mov byte [rsi + 7], cl
mov rcx, rsi
mov byte [rsi + 0xb], al
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x3ce1925b
add edx, 0x1a92ebe0
add edx, 0xc525c1b
xor edx, 0x59553e5
sub edx, 0x1682098c
add edx, 0x15ca9083
sub edx, 0x29d2b7f1
add edx, 0x208ee14d
sub edx, 0x5c583a02
nop word [rax + rax]
movzx eax, byte [r9 + rcx + 0x90]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c21fc
sub r8, 1
jne 0x1401c21bc
xchg rcx, rbx
mov rcx, qword [rbp + 0x67]
xchg rcx, rbx
lea edi, [rdx + 9]
mov rax, qword [rbp + 0x77]
lea r15d, [rdx + 0x10]
add rbx, 0x10
mov qword [rbp + 0x5f], r14
sub qword [rsp + 0x28], 1
xchg rsi, r8
mov rsi, r8
xchg r8, rsi
mov qword [rbp + 0x67], rbx
xchg r15, r14
mov rsi, r15
xchg r15, r14
xchg r12, rax
mov r9, r12
xchg r12, rax
mov qword [rsp + 0x20], rax
jne 0x1401c1d73
movzx r12d, byte [rbp + 0x6f]
mov qword [0x140217140], r8
test r12b, r12b
je 0x1401c26e4
xchg rsi, rcx
mov rsi, rcx
xchg rsi, rcx
sub rbx, rsi
xchg r15, rdx
mov r15, rdx
xchg rdx, r15
nop dword [rax]
movzx eax, byte [rbx + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c2296
movzx eax, r12b
sub r15, rax
xchg r15, r8
mov r15, r8
xchg r8, r15
lea rcx, [rax + rsi]
call fcn.1401fe1b6
lea r8, [rsp + 0x40]
xchg rdi, rcx
mov rdi, rsi
xchg rcx, rdi
sub r8, rsi
mov r9d, 0x668da577
sub r9d, 0x29422857
add r9d, 0x1a163531
xor r9d, 0x15a742f9
sub r9d, 0x3bf0e969
add r9d, 0xa2b1992
sub r9d, 0xe1145e2
sub r9d, 0x2efdaeb
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x69baede5
xor edx, 0x4d5b834c
xor edx, 0x739bb327
sub edx, 0xc3b1fa1
sub edx, 0x23fc69b7
sub edx, 0x27435432
nop word [rax + rax]
movzx eax, byte [rcx + r8]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c2345
sub r9, 1
jne 0x1401c2317
lea r14, [rsp + 0x50]
sub r14, rsi
nop
xchg rsi, r8
mov rsi, r8
xchg r8, rsi
lea r10, [0x140000000]
mov r9d, 0x5ab7e562
add r9d, 0x1d7a0fc8
xor r9d, 0x5e801980
xor r9d, 0x613e185c
sub r9d, 0x2af3eb7b
sub r9d, 0x15123e80
add r9d, 0xeea8b12
add r9d, 0x5fd03fde
sub r9d, 0x764495e7
mov rcx, r8
mov edx, 0xf2d7ae7
add edx, 0x1633475
add edx, 0x40b8164f
add edx, 0x17a8016e
sub edx, 0x45a63a50
add edx, 0xd457627
sub edx, 0x309002ec
nop dword [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 4]
movzx eax, byte [rax + r10 + 0x4340]
xor al, 0xec
mov byte [rcx - 4], al
sub rdx, 1
jne 0x1401c23ef
inc r8
sub r9, 1
jne 0x1401c23bb
movzx eax, byte [rsi + 5]
lea r15, [rsi + 2]
movzx ecx, byte [rsi + 1]
lea r12d, [rdx + 4]
mov byte [rsi + 1], al
movzx eax, byte [rsi + 9]
mov byte [rsi + 5], al
movzx eax, byte [rsi + 0xd]
mov byte [rsi + 9], al
movzx eax, byte [rsi + 0xa]
mov byte [rsi + 0xd], cl
movzx ecx, byte [rsi + 2]
mov byte [rsi + 2], al
movzx eax, byte [rsi + 0xe]
mov byte [rsi + 0xa], cl
movzx ecx, byte [rsi + 6]
mov byte [rsi + 6], al
movzx eax, byte [rsi + 0xf]
mov byte [rsi + 0xe], cl
movzx ecx, byte [rsi + 3]
mov byte [rsi + 3], al
movzx eax, byte [rsi + 0xb]
mov byte [rsi + 0xf], al
movzx eax, byte [rsi + 7]
mov byte [rsi + 0xb], al
mov byte [rsi + 7], cl
movzx edi, byte [r15 - 2]
movzx r8d, byte [r15 - 1]
movzx edx, dil
movzx ebx, byte [r15 + 1]
xor dl, r8b
movzx r10d, byte [r15]
lea r15, [r15 + 4]
movzx eax, dl
movzx r9d, bl
shr al, 6
shr al, 1
add dl, dl
movzx eax, al
xor r9b, r10b
imul ecx, eax, 0x1b
movzx r11d, r9b
xor r11b, dil
xor r11b, r8b
xor cl, dl
movzx edx, r8b
xor cl, dil
xor dl, r10b
xor cl, r11b
movzx eax, dl
mov byte [r15 - 6], cl
xor dil, bl
shr al, 7
add dl, dl
movzx eax, al
imul ecx, eax, 0x1b
movzx eax, r9b
shr al, 3
shr al, 1
shr al, 1
shr al, 1
shr al, 1
add r9b, r9b
movzx eax, al
xor cl, dl
xor cl, r8b
xor cl, r11b
mov byte [r15 - 5], cl
imul ecx, eax, 0x1b
movzx eax, dil
shr al, 5
shr al, 1
shr al, 1
add dil, dil
movzx eax, al
xor cl, r9b
xor cl, r10b
xor cl, r11b
mov byte [r15 - 4], cl
imul ecx, eax, 0x1b
xor cl, dil
xor cl, bl
xor cl, r11b
mov byte [r15 - 3], cl
sub r12, 1
jne 0x1401c2477
xchg r13, rcx
mov r13, rsi
xchg rcx, r13
lea r8d, [r12 + 4]
nop dword [rax + rax]
mov edx, 0x4d97f485
xor edx, 0x6baefd1b
add edx, 0xcfb83ab
xor edx, 0x2e96878
add edx, 0x3e037188
sub edx, 0x6fe156b5
nop word [rax + rax]
movzx eax, byte [r14 + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c2579
sub r8, 1
jne 0x1401c254b
add r14, 0x10
sub qword [rsp + 0x30], 1
jne 0x1401c236d
xchg rsi, r8
mov rsi, r8
xchg rsi, r8
lea r9d, [rdx + 4]
lea r10, [0x140000000]
nop dword [rax]
nop dword [rax + rax]
xchg r8, rbx
mov rcx, rbx
xchg r8, rbx
mov edx, 0x68b4437f
xor edx, 0x3c33c393
xor edx, 0x550e630
sub edx, 0x3635caa7
xor edx, 0x40fac6f2
sub edx, 0x5b5b5ac3
nop dword [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 4]
movzx eax, byte [rax + r10 + 0x4340]
xor al, 0xec
mov byte [rcx - 4], al
sub rdx, 1
jne 0x1401c25fb
inc r8
sub r9, 1
jne 0x1401c25c7
movzx eax, byte [rsi + 5]
lea rdx, [rbp - 1]
movzx ecx, byte [rsi + 1]
lea r8d, [r9 + 4]
mov byte [rsi + 1], al
sub rdx, rsi
movzx eax, byte [rsi + 9]
mov byte [rsi + 5], al
movzx eax, byte [rsi + 0xd]
mov byte [rsi + 9], al
movzx eax, byte [rsi + 0xa]
mov byte [rsi + 0xd], cl
movzx ecx, byte [rsi + 2]
mov byte [rsi + 2], al
movzx eax, byte [rsi + 0xe]
mov byte [rsi + 0xa], cl
movzx ecx, byte [rsi + 6]
mov byte [rsi + 6], al
movzx eax, byte [rsi + 0xf]
mov byte [rsi + 0xe], cl
movzx ecx, byte [rsi + 3]
mov byte [rsi + 3], al
movzx eax, byte [rsi + 0xb]
mov byte [rsi + 0xf], al
movzx eax, byte [rsi + 7]
mov byte [rsi + 0xb], al
mov byte [rsi + 7], cl
nop dword [rax]
nop word [rax + rax]
mov ecx, 0x26f31a1e
sub ecx, 0x287e270
xor ecx, 0x453ae220
xor ecx, 0x70f43ee9
add ecx, 0x6b599321
sub ecx, 0x6400b065
sub ecx, 0x18fece1f
nop word [rax + rax]
movzx eax, byte [rsi + rdx]
xor byte [rsi], al
inc rsi
sub rcx, 1
jne 0x1401c26c7
sub r8, 1
jne 0x1401c2693
add rsp, 0xf8
push rbx
push rcx
push rbx
push rdx
push rcx
push rcx
push rbx
xchg qword [rsp + 0x38], r15
pop rbx
pop rcx
pop rcx
pop rdx
pop rbx
pop rcx
pop rbx
add rsp, 8
nop
add rsp, 8
mov r14, qword [rsp - 8]
nop
add rsp, 8
xchg qword [rsp - 8], r13
nop
xchg qword [rsp], r12
add rsp, 8
push rcx
push rbx
push rax
xchg qword [rsp + 0x18], rdi
add rsp, 0x20
push rax
push rax
push rdx
xchg qword [rsp + 0x18], rsi
pop rdx
pop rax
pop rax
add rsp, 8
nop
mov rbx, qword [rsp]
add rsp, 8
push rcx
xchg qword [rsp + 8], rbp
pop rcx
add rsp, 8
ret