Function at 0x1401c1680
Capabilities:
Encode data using xor

Disassembly:
xchg rsi, rdx
mov qword [rsp + 0x10], rsi
xchg rdx, rsi
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
nop
sub rsp, 8
mov qword [rsp], rdi
push r12
nop
sub rsp, 8
mov qword [rsp], r13
nop
sub rsp, 8
mov qword [rsp], 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
xchg r10, r11
mov r10, rdx
xchg r10, r11
mov r15d, 0x19357870
add r15d, 0x36ce9a6f
add r15d, 0x2543f0b7
xor r15d, 0x333063a3
xor r15d, 0x21bdb6e
add r15d, 0x1febe6fb
add r15d, 0x18077682
xor r15d, 0x7c5718c8
mov byte [rbp + 0x6f], r12b
sub r11, rcx
xchg rdx, rbx
mov rdx, rbx
xchg rbx, rdx
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 0x1401c1731
lea r13, [0x140000000]
test r9, r9
je 0x1401c18f5
movzx eax, byte [r9]
mov r10d, 0x1dbd8cbf
add r10d, 0x3665c3a1
xor r10d, 0x1abaa737
xor r10d, 0x764e8908
sub r10d, 0x1ad0c979
sub r10d, 0x1e06b4e2
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 0x1401c1893
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 0x1401c1818
xchg rbx, r10
mov r10, qword [rbp + 0x67]
xchg r10, rbx
mov rax, qword [rbp + 0x7f]
mov edi, 0x16103329
add edi, 0x38b245fe
sub edi, 0x3bb85f6c
add edi, 0x28bf62ba
sub edi, 0x2f7301fb
sub edi, 0xc567a71
mov r8, qword [0x140217140]
test rax, rax
xchg rdi, r13
mov qword [rsp + 0x30], r13
xchg r13, rdi
cmovne r8, rax
xchg r14, rax
mov r14, rax
xchg r14, rax
mov qword [0x140217140], r8
test r14d, r14d
je 0x1401c1e7f
lea r9, [rsp + 0x50]
sub r9, rsi
dec rax
xchg r9, rbp
mov qword [rsp + 0x20], rbp
xchg rbp, r9
shr rax, 3
shr rax, 1
inc rax
xchg r11, rax
mov qword [rsp + 0x28], r11
xchg r11, rax
nop dword [rax]
xchg r15, rcx
mov r15, rbx
xchg r15, rcx
sub r8, rbx
xchg r15, rdx
mov r15, rdx
xchg rdx, r15
nop dword [rax]
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c1994
xchg rbx, rbp
mov r8, rbp
xchg rbx, rbp
xchg rbx, rcx
mov rbx, rsi
xchg rcx, rbx
sub r8, rsi
mov rdx, r15
nop dword [rax]
movzx eax, byte [r8 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c19c4
lea rax, [r9 - 0x10]
xchg r14, r15
mov r15, rsi
xchg r15, r14
xchg r8, rax
mov qword [rbp + 0x77], r8
xchg r8, rax
xchg rsi, rbp
mov rbp, rax
xchg rbp, rsi
mov edx, 0x35ecc624
add edx, 0x2cb0e235
sub edx, 0x3f22f97b
add edx, 0x16969769
add edx, 0x12f4e7a3
sub edx, 0x102f482d
xor edx, 0x6ffb3a0e
sub edx, 0x4825906f
sub edx, 0xb084f40
nop dword [rax]
nop dword [rax + rax]
mov ecx, 0x4158d1c2
xor ecx, 0x1c476450
add ecx, 0x1565e7b5
sub ecx, 0x3d40cc4d
xor ecx, 0x43788c9f
xor ecx, 0x33991d74
sub ecx, 0x45a5410d
nop word [rax + rax]
movzx eax, byte [rsi + r14]
xor byte [r14], al
inc r14
sub rcx, 1
jne 0x1401c1a6c
sub rdx, 1
jne 0x1401c1a38
mov rsi, qword [rbp + 0x5f]
xchg rsi, r15
mov rsi, r9
xchg r15, rsi
xchg rdi, rcx
mov qword [rbp + 0x7f], rcx
xchg rdi, rcx
mov r8, rsi
mov r9d, 0x6612d56b
sub r9d, 0x28f32a92
xor r9d, 0x29ff7a78
add r9d, 0x3119ec66
sub r9d, 0x1dba5117
xor r9d, 0x76cdf8d
sub r9d, 0x2a8418db
sub r9d, 0x4a89b9e
nop dword [rax + rax]
xchg r8, rcx
mov r8, rcx
xchg r8, rcx
mov edx, 0x7ec71971
sub edx, 0x77eaf046
add edx, 0x155eb7fb
sub edx, 0x4720cef
add edx, 0x9e8e137
add edx, 0x33e61d92
sub edx, 0xe80ca87
sub edx, 0x47170875
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 0x1401c1b21
inc r8
sub r9, 1
jne 0x1401c1ae1
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, 7
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, 2
shr al, 1
shr al, 1
shr al, 1
add dl, dl
movzx eax, al
imul ecx, eax, 0x1b
movzx eax, r9b
shr al, 3
shr al, 3
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, 1
shr al, 1
shr al, 2
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 0x1401c1ba9
xchg r10, rsi
mov rax, r10
xchg rsi, r10
lea r8d, [r13 + 4]
mov edx, 0x46033929
sub edx, 0x42578108
xor edx, 0x5e42a4da
add edx, 0x1a6b4263
add edx, 0x132d8a8
sub edx, 0x79873802
nop word [rax + rax]
movzx ecx, byte [r15 + rax]
xor byte [rax], cl
inc rax
sub rdx, 1
jne 0x1401c1cb4
sub r8, 1
jne 0x1401c1c86
sub r15, 0xfffffffffffffff0
lea r13, [0x140000000]
sub qword [rbp + 0x7f], 1
jne 0x1401c1aa2
xchg r8, rsi
mov rsi, r8
xchg r8, rsi
lea r9d, [rdx + 4]
lea r13, [0x140000000]
nop word [rax + rax]
mov rcx, r8
mov edx, 0x20170a66
xor edx, 0x278caef4
xor edx, 0x41627f7c
xor edx, 0x1b59b874
xor edx, 0x187259a8
sub edx, 0x13d82512
sub edx, 0x31fa151c
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 0x1401c1d36
inc r8
sub r9, 1
jne 0x1401c1d02
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 rsi, r13
mov rcx, r13
xchg r13, rsi
mov byte [rsi + 0xb], al
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x64ab36fc
sub edx, 0x45a40139
add edx, 0x4dfaa36e
sub edx, 0x4bd7b1e
sub edx, 0x307ba2f8
sub edx, 0x37c8bb17
nop word [rax + rax]
movzx eax, byte [r9 + rcx + 0x90]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c1e02
sub r8, 1
jne 0x1401c1dd4
mov rbx, qword [rbp + 0x67]
lea edi, [rdx + 9]
xchg rdi, rax
mov rdi, qword [rbp + 0x77]
xchg rdi, rax
lea r15d, [rdx + 0x10]
neg rbx
add rbx, 0xfffffffffffffff0
neg rbx
mov qword [rbp + 0x5f], r14
sub qword [rsp + 0x28], 1
xchg r8, r15
mov r15, rsi
xchg r15, r8
xchg rbx, rsi
mov qword [rbp + 0x67], rsi
xchg rbx, rsi
mov rsi, r14
xchg r15, rax
mov r9, r15
xchg r15, rax
mov qword [rsp + 0x20], rax
jne 0x1401c1978
movzx r12d, byte [rbp + 0x6f]
mov qword [0x140217140], r8
test r12b, r12b
je 0x1401c22da
xchg r13, rsi
mov rcx, r13
xchg r13, rsi
sub rbx, rsi
xchg r15, r13
mov rdx, r13
xchg r13, r15
nop dword [rax]
movzx eax, byte [rbx + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c1ea0
movzx eax, r12b
sub r15, rax
mov r8, r15
lea rcx, [rax + rsi]
call fcn.1401fdd96
lea r8, [rsp + 0x40]
mov rcx, rsi
sub r8, rsi
mov r9d, 0x57ecd975
xor r9d, 0x6777dd72
sub r9d, 0x57baa4
xor r9d, 0x56e089ab
sub r9d, 0x26c702c6
sub r9d, 0x3fdcbdfe
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x811e635
add edx, 0x3b2ce887
add edx, 0xf779e8d
xor edx, 0x3c1593c9
sub edx, 0x55146328
sub edx, 0xaab2dc2
sub edx, 0xee46d92
nop word [rax + rax]
movzx eax, byte [rcx + r8]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c1f3b
sub r9, 1
jne 0x1401c1f07
lea r14, [rsp + 0x50]
sub r14, rsi
nop
xchg r8, r13
mov r13, rsi
xchg r8, r13
lea r10, [0x140000000]
mov r9d, 0x57eeec73
add r9d, 0x9806649
xor r9d, 0x738185a2
xor r9d, 0x40f8a2fe
sub r9d, 0x4810ce11
xor r9d, 0x7c0cfdc1
sub r9d, 0x76095a0a
xchg rcx, r15
mov r15, r8
xchg rcx, r15
mov edx, 0x1577bca7
xor edx, 0x3e6064e6
sub edx, 0xe922d1e
add edx, 0x18cf6f88
xor edx, 0x650fe2a9
sub edx, 0x3893cd8c
sub edx, 0x17c72a72
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 0x1401c1fdd
inc r8
sub r9, 1
jne 0x1401c1fa3
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, 2
shr al, 1
shr al, 4
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, 1
shr al, 5
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 0x1401c2065
xchg rbp, rsi
mov rcx, rbp
xchg rbp, rsi
lea r8d, [r12 + 4]
nop dword [rax + rax]
mov edx, 0x1b63fe20
add edx, 0x4e8eb637
sub edx, 0x2585366f
xor edx, 0x5a776ef3
xor edx, 0x28e7de57
xor edx, 0x7b3b8ad4
sub edx, 0x4dc64794
nop word [rax + rax]
movzx eax, byte [r14 + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c216a
sub r8, 1
jne 0x1401c2136
nop
sub r14, 0x1f660f70
add r14, 0x1f660f80
sub qword [rsp + 0x30], 1
jne 0x1401c1f63
mov r8, rsi
lea r9d, [rdx + 4]
lea r10, [0x140000000]
nop dword [rax]
nop dword [rax + rax]
mov rcx, r8
mov edx, 0x280342f9
xor edx, 0x6dcf3fbc
xor edx, 0x438b79e7
add edx, 0x2ab96d60
sub edx, 0x153da9d8
add edx, 0x49f4d260
sub edx, 0x65b79a86
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 0x1401c21f1
inc r8
sub r9, 1
jne 0x1401c21bd
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, 0x7645f09b
sub ecx, 0x3215bc00
add ecx, 0x18cfcb94
xor ecx, 0x28249ad0
sub ecx, 0x565fbb9d
add ecx, 0x2cb37f50
sub ecx, 0x4b785eae
nop word [rax + rax]
movzx eax, byte [rsi + rdx]
xor byte [rsi], al
inc rsi
sub rcx, 1
jne 0x1401c22bd
sub r8, 1
jne 0x1401c2289
add rsp, 0xf8
nop
add rsp, 8
mov r15, qword [rsp - 8]
nop
xchg qword [rsp], r14
add rsp, 8
push rdx
push rcx
push rax
xchg qword [rsp + 0x18], r13
add rsp, 0x20
push rax
push rcx
push rbx
push rbx
push rbx
push rdx
push rbx
xchg qword [rsp + 0x38], r12
pop rbx
pop rdx
pop rbx
pop rbx
pop rbx
pop rcx
pop rax
add rsp, 8
push rax
xchg qword [rsp + 8], rdi
pop rax
add rsp, 8
push rcx
push rdx
push rcx
push rax
push rcx
push rbx
push rcx
push rax
xchg qword [rsp + 0x40], rsi
add rsp, 0x48
nop
add rsp, 8
xchg qword [rsp - 8], rbx
push rax
push rbx
push rax
push rax
push rax
push rax
xchg qword [rsp + 0x30], rbp
add rsp, 0x38
nop
add rsp, 8
jmp qword [rsp - 8]