Function at 0x1401c1530
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
xchg r12, rcx
mov qword [rsp + 8], r12
xchg rcx, r12
nop
mov qword [rsp - 8], rbp
sub rsp, 8
nop
sub rsp, 8
mov qword [rsp], rbx
nop
mov qword [rsp - 8], rsi
sub rsp, 8
nop
push 0x510696ce
mov qword [rsp], rdi
push r12
push r13
push r14
nop
sub rsp, 8
mov qword [rsp], r15
lea rbp, [rsp - 0x17]
sub rsp, 0xf8
movzx r12d, r8b
mov r14d, r8d
and r12b, 0xf
mov r11, rdx
mov r15d, 0x39a267e6
xor r15d, 0x74290476
xor r15d, 0x74f3a36e
sub r15d, 0x7538300
xor r15d, 0x3744d8c0
sub r15d, 0x561e52e
mov byte [rbp + 0x6f], r12b
sub r11, rcx
xchg rbx, rsi
mov rsi, rdx
xchg rbx, rsi
mov rsi, rcx
mov r10d, r15d
nop word [rax + rax]
movzx eax, byte [r11 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r10, 1
jne 0x1401c15d9
lea r13, [0x140000000]
test r9, r9
je 0x1401c17b1
movzx eax, byte [r9]
mov r10d, 0x59e75afe
sub r10d, 0x1ddac0c9
xor r10d, 0x468bba70
xor r10d, 0x166de8ca
xor r10d, 0x10cf4438
xor r10d, 0x49bceff6
xor r10d, 0x7cfdbe5e
xor r10d, 0x223d5dfb
sub r10d, 0x6b5980e0
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 0x1401c174f
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, 2
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 0x1401c16d5
xchg rsi, rbx
mov rsi, qword [rbp + 0x67]
xchg rbx, rsi
mov rax, qword [rbp + 0x7f]
mov edi, 0x63b9f21d
sub edi, 0x3d8d6384
add edi, 0x435ca3a9
xor edi, 0x383b2648
sub edi, 0x234fdc0f
sub edi, 0x3c8d65a
add edi, 0x2a0961c1
sub edi, 0x54a2c359
mov r8, qword [0x140217140]
test rax, rax
mov qword [rsp + 0x30], rdi
cmovne r8, rax
xchg rcx, r14
mov rax, rcx
xchg rcx, r14
mov qword [0x140217140], r8
test r14d, r14d
je 0x1401c1d44
lea r9, [rsp + 0x50]
sub r9, rsi
dec rax
mov qword [rsp + 0x20], r9
shr rax, 1
shr rax, 1
shr rax, 2
inc rax
mov qword [rsp + 0x28], rax
nop dword [rax]
mov rcx, rbx
sub r8, rbx
mov rdx, r15
nop dword [rax]
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c1845
xchg r10, rbx
mov r8, r10
xchg r10, rbx
mov rcx, rsi
sub r8, rsi
xchg r15, rdx
mov r15, rdx
xchg rdx, r15
nop dword [rax]
movzx eax, byte [r8 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c1875
lea rax, [r9 - 0x10]
xchg r14, rsi
mov rsi, r14
xchg rsi, r14
xchg r13, rax
mov qword [rbp + 0x77], r13
xchg r13, rax
xchg rbx, rsi
mov rbx, rax
xchg rsi, rbx
mov edx, 0x32e312b
add edx, 0x6f05009c
xor edx, 0x3be61aae
xor edx, 0x4c86cd81
xor edx, 0x5cc10692
sub edx, 0x5992e076
nop dword [rax]
nop dword [rax + rax]
mov ecx, 0x61bb887c
sub ecx, 0x4c69ebbb
add ecx, 0x47e91fd8
xor ecx, 0x7ff155de
xor ecx, 0x291507f
xor ecx, 0x2abe3428
sub ecx, 0xae48d0c
nop word [rax + rax]
movzx eax, byte [rsi + r14]
xor byte [r14], al
inc r14
sub rcx, 1
jne 0x1401c190b
sub rdx, 1
jne 0x1401c18d7
mov rsi, qword [rbp + 0x5f]
xchg r9, r12
mov r15, r12
xchg r9, r12
xchg r15, rdi
mov qword [rbp + 0x7f], r15
xchg r15, rdi
xchg r14, rsi
mov r8, r14
xchg rsi, r14
mov r9d, 0x5f2f71ba
sub r9d, 0x387eacde
xor r9d, 0x32b25fee
sub r9d, 0xf25b76a
xor r9d, 0x4070d507
xor r9d, 0x6befeafd
xor r9d, 0x29db99c
sub r9d, 0x2dde65aa
nop dword [rax + rax]
xchg rcx, r8
mov r8, rcx
xchg rcx, r8
mov edx, 0x4bb4e869
xor edx, 0x6f012d2f
add edx, 0x23405437
sub edx, 0x279ab61
sub edx, 0x3df50896
sub edx, 0x7876582
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 0x1401c19ba
inc r8
sub r9, 1
jne 0x1401c1986
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, 4
shr al, 1
shr al, 2
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, 2
shr al, 1
shr al, 3
shr al, 1
add dl, dl
movzx eax, al
imul ecx, eax, 0x1b
movzx eax, r9b
shr al, 4
shr al, 2
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, 2
shr al, 2
shr al, 1
shr al, 2
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 0x1401c1a42
xchg r13, rsi
mov rax, r13
xchg r13, rsi
lea r8d, [r13 + 4]
mov edx, 0x3ae52268
add edx, 0x2aab781e
xor edx, 0x761db7fb
xor edx, 0x2e98a479
xor edx, 0x2d4292fe
add edx, 0x56fb4635
sub edx, 0x50f9bf59
add edx, 0x5da43ea7
xor edx, 0x73fce179
nop word [rax + rax]
movzx ecx, byte [r15 + rax]
xor byte [rax], cl
inc rax
sub rdx, 1
jne 0x1401c1b61
sub r8, 1
jne 0x1401c1b21
add r15, 0x10
lea r13, [0x140000000]
sub qword [rbp + 0x7f], 1
jne 0x1401c1941
mov r8, rsi
lea r9d, [rdx + 4]
lea r13, [0x140000000]
nop word [rax + rax]
xchg rcx, rbx
mov rbx, r8
xchg rcx, rbx
mov edx, 0x3d70f456
xor edx, 0x75960866
add edx, 0xb52015d
xor edx, 0x5b5c0c5e
add edx, 0x16163e6a
sub edx, 0xbfe1e37
add edx, 0x4907da5c
sub edx, 0x5b037162
sub edx, 0x7817afc
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 0x1401c1bef
inc r8
sub r9, 1
jne 0x1401c1ba9
movzx ecx, byte [rsi + 1]
lea r8d, [rdx + 4]
movzx eax, byte [rsi + 5]
mov r9, qword [rsp + 0x20]
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 rcx, r15
mov r15, rsi
xchg rcx, r15
mov byte [rsi + 0xb], al
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x2ccec90a
sub edx, 0x1ab40faf
add edx, 0x203f6878
add edx, 0x4a9a3bff
sub edx, 0x5fb38fc5
sub edx, 0x1d40ce09
nop word [rax + rax]
movzx eax, byte [r9 + rcx + 0x90]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c1cbb
sub r8, 1
jne 0x1401c1c8d
xchg rbx, r12
mov r12, qword [rbp + 0x67]
xchg rbx, r12
lea edi, [rdx + 9]
xchg rcx, rax
mov rcx, qword [rbp + 0x77]
xchg rcx, rax
lea r15d, [rdx + 0x10]
sub rbx, 0xfffffffffffffff0
xchg r11, r14
mov qword [rbp + 0x5f], r11
xchg r11, r14
sub qword [rsp + 0x28], 1
xchg rsi, r8
mov rsi, r8
xchg r8, rsi
xchg rbx, rdx
mov qword [rbp + 0x67], rdx
xchg rbx, rdx
xchg rdx, r14
mov rsi, rdx
xchg rdx, r14
xchg r9, rax
mov rax, r9
xchg r9, rax
mov qword [rsp + 0x20], rax
jne 0x1401c1835
movzx r12d, byte [rbp + 0x6f]
mov qword [0x140217140], r8
test r12b, r12b
je 0x1401c21b6
mov rcx, rsi
sub rbx, rsi
xchg rdx, r15
mov r15, rdx
xchg r15, rdx
nop dword [rax]
movzx eax, byte [rbx + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c1d5f
movzx eax, r12b
sub r15, rax
xchg r15, rsi
mov r8, rsi
xchg rsi, r15
lea rcx, [rax + rsi]
call sub.VCRUNTIME140.dll_memset
lea r8, [rsp + 0x40]
xchg rsi, r10
mov rcx, r10
xchg rsi, r10
sub r8, rsi
mov r9d, 0x73575028
sub r9d, 0x37a7d27f
sub r9d, 0x2035d298
add r9d, 0x61c897a0
sub r9d, 0x3eb1f08c
sub r9d, 0x3e905221
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x5f63be3
add edx, 0x2474b766
xor edx, 0x111ebfff
sub edx, 0x14ed746f
sub edx, 0x1d4f79ff
sub edx, 0x9375e44
nop word [rax + rax]
movzx eax, byte [rcx + r8]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c1e00
sub r9, 1
jne 0x1401c1dd2
lea r14, [rsp + 0x50]
sub r14, rsi
nop
mov r8, rsi
lea r10, [0x140000000]
mov r9d, 0x6e05261e
sub r9d, 0x2d50ec95
add r9d, 0x21a39b9b
sub r9d, 0x1f50a273
add r9d, 0x1b9d2d39
add r9d, 0x211f3e13
sub r9d, 0x7fc39df9
xchg r8, r14
mov rcx, r14
xchg r8, r14
mov edx, 0x56c4eadd
sub edx, 0x2f5687ba
sub edx, 0xa0c329f
xor edx, 0x2b07926f
add edx, 0x1230cd61
sub edx, 0x4398d9f6
sub edx, 0x24d4465
add edx, 0x423a85ee
sub edx, 0x44ead7db
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 0x1401c1ea8
inc r8
sub r9, 1
jne 0x1401c1e62
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, 3
shr al, 2
shr al, 1
shr al, 1
add dl, dl
movzx eax, al
imul ecx, eax, 0x1b
movzx eax, r9b
shr al, 1
shr al, 2
shr al, 4
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, 3
shr al, 3
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 0x1401c1f30
xchg r14, rcx
mov r14, rsi
xchg rcx, r14
lea r8d, [r12 + 4]
nop dword [rax + rax]
mov edx, 0x4ba53e1b
xor edx, 0x3dfb0e84
sub edx, 0x616a24bd
add edx, 0x717bea9
add edx, 0x56dae39a
sub edx, 0x33f2c584
add edx, 0x29bd54a7
xor edx, 0x68b13d4c
nop word [rax + rax]
movzx eax, byte [r14 + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c2045
sub r8, 1
jne 0x1401c200b
sub r14, 0xfffffffffffffff0
sub qword [rsp + 0x30], 1
jne 0x1401c1e28
xchg r8, rdx
mov rdx, rsi
xchg rdx, r8
lea r9d, [rdx + 4]
lea r10, [0x140000000]
nop dword [rax]
nop dword [rax + rax]
mov rcx, r8
mov edx, 0x60ff00e7
xor edx, 0x43b03574
add edx, 0x3e6c163c
xor edx, 0x65172f15
xor edx, 0x2c2d64bf
add edx, 0x1341bbce
xor edx, 0x1dd31bb0
sub edx, 0x2611a77f
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 0x1401c20cd
inc r8
sub r9, 1
jne 0x1401c2093
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, 0x2770d6e4
add ecx, 0x2eeb0f9b
add ecx, 0x1ba20954
sub ecx, 0x898a8c4
xor ecx, 0x2228c007
xor ecx, 0x39743ac6
sub ecx, 0x7239bdca
nop word [rax + rax]
movzx eax, byte [rsi + rdx]
xor byte [rsi], al
inc rsi
sub rcx, 1
jne 0x1401c2199
sub r8, 1
jne 0x1401c2165
add rsp, 0xf8
nop
add rsp, 8
mov r15, qword [rsp - 8]
nop
mov r14, qword [rsp]
add rsp, 8
nop
mov r13, qword [rsp]
add rsp, 8
push rbx
push rbx
push rax
push rax
xchg qword [rsp + 0x20], r12
pop rax
pop rax
pop rbx
pop rbx
add rsp, 8
nop
add rsp, 8
xchg qword [rsp - 8], rdi
push rax
push rbx
push rbx
push rdx
push rdx
xchg qword [rsp + 0x28], rsi
pop rdx
pop rdx
pop rbx
pop rbx
pop rax
add rsp, 8
push rdx
push rdx
push rdx
push rcx
push rax
push rcx
xchg qword [rsp + 0x30], rbx
pop rcx
pop rax
pop rcx
pop rdx
pop rdx
pop rdx
add rsp, 8
nop
add rsp, 8
mov rbp, qword [rsp - 8]
nop
add rsp, 8
jmp qword [rsp - 8]