Function at 0x1401c1e70
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
nop
sub rsp, 8
mov qword [rsp], rsi
nop
sub rsp, 8
mov qword [rsp], rdi
nop
sub rsp, 8
mov qword [rsp], r12
nop
mov qword [rsp - 8], r13
sub rsp, 8
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
xchg r13, r11
mov r13, rdx
xchg r13, r11
mov r15d, 0x3bed14a
add r15d, 0x1b290a16
xor r15d, 0x4cb194a6
sub r15d, 0x11a1fd11
add r15d, 0xc64ab81
sub r15d, 0x4d18fe26
mov byte [rbp + 0x6f], r12b
sub r11, rcx
xchg r15, rbx
mov r15, rdx
xchg rbx, r15
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 0x1401c1f15
lea r13, [0x140000000]
test r9, r9
je 0x1401c20e1
movzx eax, byte [r9]
mov r10d, 0x5ce53f5
xor r10d, 0x770ed42b
sub r10d, 0x56b3a013
xor r10d, 0x73835e52
xor r10d, 0x6593326d
add r10d, 0x3856afae
sub r10d, 0x3ed8d1ea
sub r10d, 0x39a69b4
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 0x1401c2085
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 0x1401c200a
mov rbx, qword [rbp + 0x67]
mov rax, qword [rbp + 0x7f]
mov edi, 0x3dd442e1
sub edi, 0x1a6791d5
sub edi, 0x1d798ce8
xor edi, 0x5a757a3c
xor edi, 0x77b93adc
xor edi, 0x508031e8
sub edi, 0x78bf5523
mov r8, qword [0x140218140]
test rax, rax
xchg rdi, r12
mov qword [rsp + 0x30], r12
xchg r12, rdi
cmovne r8, rax
mov rax, r14
mov qword [0x140218140], r8
test r14d, r14d
je 0x1401c2658
lea r9, [rsp + 0x50]
sub r9, rsi
dec rax
xchg r9, r10
mov qword [rsp + 0x20], r10
xchg r9, r10
shr rax, 2
shr rax, 2
inc rax
mov qword [rsp + 0x28], rax
nop dword [rax]
mov rcx, rbx
sub r8, rbx
xchg r14, rdx
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 0x1401c2179
xchg rdx, r8
mov rdx, rbx
xchg rdx, r8
xchg rcx, rsi
mov rsi, rcx
xchg rcx, rsi
sub r8, rsi
xchg r10, r15
mov rdx, r10
xchg r15, r10
nop dword [rax]
movzx eax, byte [r8 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c21af
lea rax, [r9 - 0x10]
mov r14, rsi
mov qword [rbp + 0x77], rax
mov rsi, rax
mov edx, 0x12e5c50e
xor edx, 0x3e202583
sub edx, 0x18e999d9
add edx, 0x4acd8f7
sub edx, 0xbdcad72
xor edx, 0xcac723d
nop dword [rax]
nop dword [rax + rax]
mov ecx, 0x46f19f5f
sub ecx, 0x68617d5
sub ecx, 0x3f9a2f96
add ecx, 0x377a847
add ecx, 0x41880124
xor ecx, 0x51ff61fe
xor ecx, 0x142e60a5
nop word [rax + rax]
movzx eax, byte [rsi + r14]
xor byte [r14], al
inc r14
sub rcx, 1
jne 0x1401c2235
sub rdx, 1
jne 0x1401c2201
mov rsi, qword [rbp + 0x5f]
xchg r15, r9
mov r9, r15
xchg r15, r9
mov qword [rbp + 0x7f], rdi
xchg rsi, r14
mov r8, r14
xchg r14, rsi
mov r9d, 0x5dad7e88
sub r9d, 0x4a4a8604
sub r9d, 0xc871c17
add r9d, 0x2198d26
xor r9d, 0x5e7219d4
sub r9d, 0x56877043
nop dword [rax + rax]
xchg r8, rcx
mov r8, rcx
xchg r8, rcx
mov edx, 0x6b6e6dc5
xor edx, 0x2851edb0
sub edx, 0x3d619cb0
add edx, 0x53c805ee
add edx, 0xab1c10a
sub edx, 0x1c8f6094
add edx, 0x13390930
sub edx, 0x42012b
sub edx, 0x5abf522a
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 0x1401c22e2
inc r8
sub r9, 1
jne 0x1401c229c
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, 2
shr al, 4
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, 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, 3
shr al, 2
shr al, 1
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, 3
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 0x1401c236a
xchg r8, rax
mov r8, rsi
xchg r8, rax
lea r8d, [r13 + 4]
mov edx, 0x6e72c77e
xor edx, 0x7351dc10
add edx, 0x530bce38
xor edx, 0x4691c780
xor edx, 0x62b1c891
sub edx, 0x540ee6b3
nop word [rax + rax]
movzx ecx, byte [r15 + rax]
xor byte [rax], cl
inc rax
sub rdx, 1
jne 0x1401c2475
sub r8, 1
jne 0x1401c2447
nop
add r15, 0x602ddca5
sub r15, 0x602ddc95
lea r13, [0x140000000]
sub qword [rbp + 0x7f], 1
jne 0x1401c2265
xchg rsi, r8
mov rsi, r8
xchg rsi, r8
lea r9d, [rdx + 4]
lea r13, [0x140000000]
nop word [rax + rax]
xchg rbp, r8
mov rcx, rbp
xchg rbp, r8
mov edx, 0x72d8271d
sub edx, 0x3ba39015
sub edx, 0x8ff07c8
add edx, 0xf64e3c7
add edx, 0x317b9012
sub edx, 0x6f160315
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 0x1401c2502
inc r8
sub r9, 1
jne 0x1401c24ce
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 r12, rsi
mov rcx, r12
xchg r12, rsi
mov byte [rsi + 0xb], al
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x72625801
sub edx, 0x1f23628e
add edx, 0x1414121c
sub edx, 0x650fe9f5
add edx, 0x7bd6902e
sub edx, 0x7e19adc4
nop word [rax + rax]
movzx eax, byte [r9 + rcx + 0x90]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c25ce
sub r8, 1
jne 0x1401c25a0
mov rbx, qword [rbp + 0x67]
lea edi, [rdx + 9]
xchg r15, rax
mov r15, qword [rbp + 0x77]
xchg r15, rax
lea r15d, [rdx + 0x10]
nop
add rbx, 0x2b18848b
sub rbx, 0x2b18847b
mov qword [rbp + 0x5f], r14
sub qword [rsp + 0x28], 1
xchg r8, rsi
mov rsi, r8
xchg r8, rsi
xchg rcx, rbx
mov qword [rbp + 0x67], rcx
xchg rcx, rbx
xchg rsi, r13
mov r13, r14
xchg r13, rsi
xchg r8, r9
mov r8, rax
xchg r9, r8
mov qword [rsp + 0x20], rax
jne 0x1401c2163
movzx r12d, byte [rbp + 0x6f]
mov qword [0x140218140], r8
test r12b, r12b
je 0x1401c2ac0
mov rcx, rsi
sub rbx, rsi
xchg r15, r9
mov rdx, r9
xchg r15, r9
nop dword [rax]
movzx eax, byte [rbx + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x1401c2673
movzx eax, r12b
sub r15, rax
xchg rdi, r15
mov r8, rdi
xchg r15, rdi
lea rcx, [rax + rsi]
call fcn.1401fe5e6
lea r8, [rsp + 0x40]
xchg r8, rsi
mov rcx, r8
xchg r8, rsi
sub r8, rsi
mov r9d, 0x62cce887
sub r9d, 0x173d51c4
sub r9d, 0x2951265d
add r9d, 0x461dd919
xor r9d, 0x76f3ed62
sub r9d, 0x1eafa419
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x7f2abcd7
xor edx, 0x911c525
xor edx, 0x662edbc2
add edx, 0x23baf06f
xor edx, 0x2ddfd899
sub edx, 0x14fc0895
sub edx, 0x913416d
nop word [rax + rax]
movzx eax, byte [rcx + r8]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c271a
sub r9, 1
jne 0x1401c26e6
lea r14, [rsp + 0x50]
sub r14, rsi
nop
xchg rbx, rsi
mov r8, rbx
xchg rsi, rbx
lea r10, [0x140000000]
mov r9d, 0x3c022ab5
xor r9d, 0x5002220c
xor r9d, 0x1771cd6d
xor r9d, 0x1d601611
add r9d, 0x16c59639
sub r9d, 0x63775078
xor r9d, 0x57db261f
sub r9d, 0x4ebb3f95
xchg rcx, r8
mov r8, rcx
xchg r8, rcx
mov edx, 0x1b05e774
xor edx, 0x34547cfe
sub edx, 0x2c327609
add edx, 0x341e0b7a
add edx, 0xcf9c24b
xor edx, 0x1a12cf05
sub edx, 0x42d75182
xor edx, 0x42794c06
sub edx, 0x5935a6c3
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 0x1401c27cf
inc r8
sub r9, 1
jne 0x1401c2789
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, 4
shr al, 2
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, 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, 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 0x1401c2857
mov rcx, rsi
lea r8d, [r12 + 4]
nop dword [rax + rax]
mov edx, 0x31c50f05
xor edx, 0x2534406
add edx, 0x1adfe605
xor edx, 0x145157d
sub edx, 0xa01d928
sub edx, 0x45314b49
nop word [rax + rax]
movzx eax, byte [r14 + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x1401c294f
sub r8, 1
jne 0x1401c2921
neg r14
add r14, 0xfffffffffffffff0
neg r14
sub qword [rsp + 0x30], 1
jne 0x1401c2742
xchg r8, rsi
mov rsi, r8
xchg r8, rsi
lea r9d, [rdx + 4]
lea r10, [0x140000000]
nop dword [rax]
nop dword [rax + rax]
xchg rcx, r8
mov r8, rcx
xchg r8, rcx
mov edx, 0x1326a358
add edx, 0x21c15af4
sub edx, 0x2fae5a8a
xor edx, 0x76d2d092
sub edx, 0x5cebe076
sub edx, 0x16ff92d6
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 0x1401c29d7
inc r8
sub r9, 1
jne 0x1401c29a3
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, 0x1dcfd996
xor ecx, 0x497b9c0c
sub ecx, 0x20a5a485
add ecx, 0x10722664
xor ecx, 0x33223774
xor ecx, 0x4c465698
xor ecx, 0x3be4a691
nop word [rax + rax]
movzx eax, byte [rsi + rdx]
xor byte [rsi], al
inc rsi
sub rcx, 1
jne 0x1401c2aa3
sub r8, 1
jne 0x1401c2a6f
add rsp, 0xf8
push rax
push rbx
push rcx
push rcx
push rcx
push rcx
push rax
push rcx
xchg qword [rsp + 0x40], r15
pop rcx
pop rax
pop rcx
pop rcx
pop rcx
pop rcx
pop rbx
pop rax
add rsp, 8
nop
add rsp, 8
xchg qword [rsp - 8], r14
nop
mov r13, qword [rsp]
add rsp, 8
nop
add rsp, 8
mov r12, qword [rsp - 8]
nop
add rsp, 8
xchg qword [rsp - 8], rdi
nop
add rsp, 8
xchg qword [rsp - 8], rsi
push rdx
push rcx
push rcx
xchg qword [rsp + 0x18], rbx
add rsp, 0x20
nop
xchg qword [rsp], rbp
add rsp, 8
nop
add rsp, 8
jmp qword [rsp - 8]