Function at 0x1401c1950
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
nop
sub rsp, 8
mov qword [rsp], rbp
nop
push r14
mov qword [rsp], rbx
nop
push r9
mov qword [rsp], rsi
nop
sub rsp, 8
mov qword [rsp], rdi
nop
sub rsp, 8
mov qword [rsp], r12
push rax
mov qword [rsp], r13
nop
mov qword [rsp - 8], r14
sub rsp, 8
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0xf8
movzx r12d, r8b
mov r14d, r8d
and r12b, 0xf
mov r11, rdx
mov r15d, 0x7cc4a0dd
sub r15d, 0xe27a576
xor r15d, 0x6763fc8d
add r15d, 0x47b48bbe
sub r15d, 0x3aaae0ef
add r15d, 0x360942d9
sub r15d, 0x1cf1792b
xor r15d, 0x30207c77
mov byte [rbp + 0x6f], r12b
sub r11, rcx
mov rbx, rdx
xchg rsi, r15
mov r15, rcx
xchg rsi, r15
mov r10d, r15d
nop word [rax + rax]
movzx eax, byte [r11 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r10, 1
jne 0x1401c1a05
lea r13, [0x140000000]
test r9, r9
je 0x1401c1bd7
movzx eax, byte [r9]
mov r10d, 0x441e1bf0
add r10d, 0x2b6bc229
sub r10d, 0x11f61b0a
sub r10d, 0x124c97ae
xor r10d, 0x7053fbe0
xor r10d, 0x670b434c
add r10d, 0xb51940f
sub r10d, 0x677127d8
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 0x1401c1b75
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 0x1401c1afa
xchg rbx, r12
mov r12, qword [rbp + 0x67]
xchg r12, rbx
mov rax, qword [rbp + 0x7f]
mov edi, 0x733beb17
xor edi, 0x58a2a68b
add edi, 0x1a536d7
add edi, 0x4b86383a
sub edi, 0x44f8f1e7
sub edi, 0x33cbcabd
mov r8, qword [0x140217140]
test rax, rax
xchg rdi, rsi
mov qword [rsp + 0x30], rsi
xchg rsi, rdi
cmovne r8, rax
mov rax, r14
mov qword [0x140217140], r8
test r14d, r14d
je 0x1401c216e
lea r9, [rsp + 0x50]
sub r9, rsi
dec rax
xchg r9, r15
mov qword [rsp + 0x20], r15
xchg r15, r9
shr rax, 4
inc rax
mov qword [rsp + 0x28], rax
nop dword [rax]
mov rcx, rbx
sub r8, rbx
xchg r15, r14
mov rdx, r14
xchg r14, r15
nop dword [rax]
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c1c65
xchg r8, rbx
mov rbx, r8
xchg r8, rbx
xchg rsi, r12
mov rcx, r12
xchg r12, rsi
sub r8, rsi
xchg rbx, r15
mov rdx, rbx
xchg r15, rbx
nop dword [rax]
movzx eax, byte [r8 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c1c9b
lea rax, [r9 - 0x10]
mov r14, rsi
mov qword [rbp + 0x77], rax
mov rsi, rax
mov edx, 0x397dfc31
add edx, 0x424ad59b
xor edx, 0x245edd05
add edx, 0x143b761
xor edx, 0x2849a7b3
xor edx, 0x4890639d
nop dword [rax]
nop dword [rax + rax]
mov ecx, 0x125477f1
add ecx, 0x117805db
xor ecx, 0x72663918
add ecx, 0x2010e669
xor ecx, 0x110b6b9
add ecx, 0x7aae077
xor ecx, 0x70a76ac0
add ecx, 0x2d7aa63f
sub ecx, 0x366bbd76
nop word [rax + rax]
movzx eax, byte [rsi + r14]
xor byte [r14], al
inc r14
sub rcx, 1
jne 0x1401c1d2d
sub rdx, 1
jne 0x1401c1ced
xchg r10, rsi
mov r10, qword [rbp + 0x5f]
xchg r10, rsi
xchg r9, r15
mov r9, r15
xchg r15, r9
xchg r10, rdi
mov qword [rbp + 0x7f], r10
xchg r10, rdi
xchg r9, rsi
mov r8, r9
xchg r9, rsi
mov r9d, 0x6e484dec
sub r9d, 0x60f307f6
xor r9d, 0x2e4700c5
add r9d, 0x48573ef3
sub r9d, 0x523c3ed3
add r9d, 0x72268a6
xor r9d, 0x6fea48ec
sub r9d, 0x1cdc04e4
sub r9d, 0x32c9e02d
nop dword [rax + rax]
xchg r8, rdx
mov rcx, rdx
xchg r8, rdx
mov edx, 0x953f449
add edx, 0x3c75dc8c
sub edx, 0x12103d60
add edx, 0x36863da0
sub edx, 0x59f39022
xor edx, 0x104c40f7
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 0x1401c1de9
inc r8
sub r9, 1
jne 0x1401c1db5
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, 3
shr al, 2
shr al, 1
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, 4
shr al, 1
shr al, 1
shr al, 1
add dl, dl
movzx eax, al
imul ecx, eax, 0x1b
movzx eax, r9b
shr al, 6
shr al, 1
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, 5
shr al, 1
shr al, 1
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 0x1401c1e71
xchg rcx, rax
mov rcx, rsi
xchg rcx, rax
lea r8d, [r13 + 4]
mov edx, 0x3aba9364
xor edx, 0x62ab58b1
sub edx, 0x33af28a3
add edx, 0x37fe2534
xor edx, 0x7db32173
xor edx, 0x6ecfb395
sub edx, 0x4f1c5a7c
nop word [rax + rax]
movzx ecx, byte [r15 + rax]
xor byte [rax], cl
inc rax
sub rdx, 1
jne 0x1401c1f7c
sub r8, 1
jne 0x1401c1f48
nop
add r15, 0x5cc7adf5
sub r15, 0x5cc7ade5
lea r13, [0x140000000]
sub qword [rbp + 0x7f], 1
jne 0x1401c1d69
mov r8, rsi
lea r9d, [rdx + 4]
lea r13, [0x140000000]
nop word [rax + rax]
xchg rcx, r8
mov r8, rcx
xchg rcx, r8
mov edx, 0x42ccbda9
add edx, 0x1b6fda24
xor edx, 0x63f73d24
xor edx, 0x4eb19f45
xor edx, 0x3fa33271
xor edx, 0x71ee0a9
add edx, 0x2cb2e922
sub edx, 0x787ad092
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 0x1401c200f
inc r8
sub r9, 1
jne 0x1401c1fcf
movzx ecx, byte [rsi + 1]
lea r8d, [rdx + 4]
movzx eax, byte [rsi + 5]
xchg r9, r8
mov r8, qword [rsp + 0x20]
xchg r8, r9
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
xchg rbx, rsi
mov rcx, rbx
xchg rsi, rbx
mov byte [rsi + 0xb], al
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x5342335b
xor edx, 0x1a4f3187
sub edx, 0x37900f68
xor edx, 0x7d05236
xor edx, 0x6c892c6d
xor edx, 0x136f6666
sub edx, 0x694aeb45
nop word [rax + rax]
movzx eax, byte [r9 + rcx + 0x90]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c20e7
sub r8, 1
jne 0x1401c20b3
xchg rdi, rbx
mov rdi, qword [rbp + 0x67]
xchg rdi, rbx
lea edi, [rdx + 9]
mov rax, qword [rbp + 0x77]
lea r15d, [rdx + 0x10]
neg rbx
add rbx, 0xfffffffffffffff0
neg rbx
mov qword [rbp + 0x5f], r14
sub qword [rsp + 0x28], 1
xchg r12, rsi
mov r8, r12
xchg rsi, r12
xchg r13, rbx
mov qword [rbp + 0x67], r13
xchg rbx, r13
xchg rbp, r14
mov rsi, rbp
xchg r14, rbp
xchg r14, r9
mov r14, rax
xchg r9, r14
mov qword [rsp + 0x20], rax
jne 0x1401c1c4f
movzx r12d, byte [rbp + 0x6f]
mov qword [0x140217140], r8
test r12b, r12b
je 0x1401c25c3
xchg rsi, rcx
mov rsi, rcx
xchg rcx, rsi
sub rbx, rsi
xchg rbp, r15
mov rdx, rbp
xchg rbp, r15
nop dword [rax]
movzx eax, byte [rbx + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c218f
movzx eax, r12b
sub r15, rax
xchg r15, rsi
mov r8, rsi
xchg rsi, r15
lea rcx, [rax + rsi]
call fcn.1401fe0f6
lea r8, [rsp + 0x40]
mov rcx, rsi
sub r8, rsi
mov r9d, 0x30dd4fcf
add r9d, 0x2d020229
sub r9d, 0x9fd09d0
xor r9d, 0x55113787
add r9d, 0x13f934f0
sub r9d, 0x1aecb49b
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x55d49705
sub edx, 0x64f2bbb
sub edx, 0xa16a769
sub edx, 0x2b2ca1c2
xor edx, 0x6f3b89cc
sub edx, 0x1fda9b5a
sub edx, 0x559f1075
nop word [rax + rax]
movzx eax, byte [rcx + r8]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c2230
sub r9, 1
jne 0x1401c21fc
lea r14, [rsp + 0x50]
sub r14, rsi
nop
xchg r12, rsi
mov r8, r12
xchg r12, rsi
lea r10, [0x140000000]
mov r9d, 0x5807ef83
sub r9d, 0x93c2649
xor r9d, 0x1b33e0b4
sub r9d, 0x21b83579
sub r9d, 0x13e14674
xor r9d, 0x205eada5
xchg r8, rcx
mov r8, rcx
xchg rcx, r8
mov edx, 0x51f9d97
add edx, 0x37b12381
sub edx, 0x12fe57cd
add edx, 0x135323e9
sub edx, 0x2d99ec57
sub edx, 0x5d9c805
sub edx, 0x9b1d8d4
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 0x1401c22cb
inc r8
sub r9, 1
jne 0x1401c2291
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, 5
shr al, 1
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, 5
shr al, 1
shr al, 1
add dl, dl
movzx eax, al
imul ecx, eax, 0x1b
movzx eax, r9b
shr al, 7
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, 2
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 0x1401c2353
xchg r8, rcx
mov r8, rsi
xchg r8, rcx
lea r8d, [r12 + 4]
nop dword [rax + rax]
mov edx, 0x1b7b38b5
add edx, 0x3daf5301
add edx, 0xac97ab4
xor edx, 0x63acc701
add edx, 0x47537433
sub edx, 0x47ac359a
nop word [rax + rax]
movzx eax, byte [r14 + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c2452
sub r8, 1
jne 0x1401c2424
sub r14, 0xfffffffffffffff0
sub qword [rsp + 0x30], 1
jne 0x1401c2258
mov r8, rsi
lea r9d, [rdx + 4]
lea r10, [0x140000000]
nop dword [rax]
nop dword [rax + rax]
xchg r8, rcx
mov r8, rcx
xchg rcx, r8
mov edx, 0x2314ba9b
xor edx, 0x64faf3fd
xor edx, 0x52b9a1dc
add edx, 0x597dd15f
xor edx, 0x6a622752
xor edx, 0x284b2454
add edx, 0x358865e
xor edx, 0x7f6ee214
sub edx, 0x4f3bdd65
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 0x1401c24e0
inc r8
sub r9, 1
jne 0x1401c249a
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, 0x58c40bc0
xor ecx, 0x7369320
xor ecx, 0x50348241
xor ecx, 0x5507d8e6
xor ecx, 0x58c0054c
sub ecx, 0x201c707
nop word [rax + rax]
movzx eax, byte [rsi + rdx]
xor byte [rsi], al
inc rsi
sub rcx, 1
jne 0x1401c25a6
sub r8, 1
jne 0x1401c2578
add rsp, 0xf8
push rbx
push rdx
push rcx
xchg qword [rsp + 0x18], r15
pop rcx
pop rdx
pop rbx
add rsp, 8
nop
mov r14, qword [rsp]
add rsp, 8
push rbx
push rbx
push rbx
push rbx
xchg qword [rsp + 0x20], r13
pop rbx
pop rbx
pop rbx
pop rbx
add rsp, 8
push rax
push rax
xchg qword [rsp + 0x10], r12
pop rax
pop rax
add rsp, 8
nop
xchg qword [rsp], rdi
add rsp, 8
nop
add rsp, 8
mov rsi, qword [rsp - 8]
push rcx
push rcx
push rcx
push rcx
push rax
push rcx
push rax
xchg qword [rsp + 0x38], rbx
add rsp, 0x40
nop
add rsp, 8
mov rbp, qword [rsp - 8]
ret