Function at 0x1400c3920
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
mov r15, qword [rcx]
mov rax, qword [rcx + 8]
mov qword [rsp + 0x48], rax
mov rsi, qword [rcx + 0x18]
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x58], rax
nop dword [rax]
mov eax, dword [0x141f42860]
sub eax, dword [0x141f42864]
imul rax, rax, 0x406a12cd
shr rax, 0x3b
imul eax, eax, 0xb1a69f79
add eax, 0xeb1fa246
cmp eax, 0xbefb203d
jb 0x1400c3950
movzx ebx, word [rsi + 0x3d2]
mov rax, qword [rcx + 0x28]
mov r12, rax
movzx eax, word [rax + 0x3d2]
mov qword [rsp + 0x28], rax
add rax, rbx
inc rax
cmp eax, 0xc
jae 0x1400c3b38
lea rbp, [rbx + 1]
movzx r8d, word [r15 + 0x3d2]
mov r13, qword [rcx + 0x10]
mov qword [rsp + 0x38], rax
mov word [rsi + 0x3d2], ax
imul rax, r13, 0x38
lea rcx, [r15 + rax]
add rcx, 0x168
mov qword [rsp + 0x30], rbx
mov rdx, qword [r15 + rax + 0x198]
mov qword [rsp + 0x90], rdx
movups xmm0, xmmword [r15 + rax + 0x168]
movups xmm1, xmmword [r15 + rax + 0x178]
movups xmm2, xmmword [r15 + rax + 0x188]
movaps xmmword [rsp + 0x80], xmm2
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
lea r14, [r13 + 1]
lea rdx, [r15 + rax + 0x1a0]
mov rdi, r13
not rdi
mov qword [rsp + 0x40], r8
add rdi, r8
imul r8, rdi, 0x38
call sub.VCRUNTIME140.dll_memmove
imul rax, rbx, 0x38
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movaps xmm2, xmmword [rsp + 0x80]
movups xmmword [rsi + rax + 0x168], xmm0
movups xmmword [rsi + rax + 0x178], xmm1
movups xmmword [rsi + rax + 0x188], xmm2
mov rcx, qword [rsp + 0x90]
mov qword [rsi + rax + 0x198], rcx
lea rdx, [r12 + 0x168]
imul rax, rbp, 0x38
lea rcx, [rsi + rax]
add rcx, 0x168
mov rbx, qword [rsp + 0x28]
imul r8, rbx, 0x38
call sub.VCRUNTIME140.dll_memcpy
mov rax, r13
shl rax, 5
lea rcx, [r15 + rax]
movups xmm0, xmmword [r15 + rax]
movups xmm1, xmmword [r15 + rax + 0x10]
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x60], xmm0
mov rdx, r14
shl rdx, 5
add rdx, r15
mov r8, rdi
shl r8, 5
call sub.VCRUNTIME140.dll_memmove
mov rax, qword [rsp + 0x30]
shl rax, 5
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movups xmmword [rsi + rax], xmm0
movups xmmword [rsi + rax + 0x10], xmm1
mov rcx, rbp
shl rcx, 5
add rcx, rsi
shl rbx, 5
mov qword [rsp + 0x50], r12
mov rdx, r12
mov r8, rbx
call sub.VCRUNTIME140.dll_memcpy
lea r12, [r15 + 0x3d8]
mov eax, dword [str.m_i_]
sub eax, dword [0x141f4287c]
mov ecx, 0x92b49af1
imul rcx, rax
shr rcx, 0x3c
or ecx, 0x6ddef777
cmp ecx, 0x541dab02
jae 0x1400c3b92
jmp 0x1400c3bd4
mov eax, dword [0x141f42868]
add eax, dword [0x141f4286c]
xor eax, 0xe847becc
add eax, 0x940e0157
imul rax, rax, 0x7858ff0d
shr rax, 0x3e
cmp eax, 0x74721c7a
jbe 0x1400c3b70
ud2
mov eax, dword [0x141f42870]
xor eax, dword [0x141f42874]
xor eax, 0x708ca200
imul eax, eax, 0x26b14f57
ud2
mov eax, dword [0x141f42880]
sub eax, dword [0x141f42884]
and eax, 0x96ad5d8f
add eax, 0x370878f0
imul rbx, rax, 0x68d2edb
shr rbx, 0x3a
lea rcx, [r12 + r14*8]
lea rdx, [r12 + r13*8]
add rdx, 0x10
lea r8, [rdi*8]
call sub.VCRUNTIME140.dll_memmove
cmp ebx, 0x379a4eda
jbe 0x1400c3bef
lea rcx, [r12 + r14*8]
lea rdx, [r12 + r13*8]
add rdx, 0x10
lea r8, [rdi*8]
call sub.VCRUNTIME140.dll_memmove
jmp 0x1400c3b92
mov rbx, qword [rsp + 0x40]
cmp r14, rbx
mov r12, qword [rsp + 0x28]
jae 0x1400c3d1a
mov rax, rbx
sub rax, r13
add rax, 0xfffffffffffffffe
nop dword [rax]
mov ecx, dword [0x141f42888]
or ecx, dword [0x141f4288c]
add ecx, 0xd5d0c8f2
and ecx, 0xffe752e1
imul ecx, ecx, 0x5290e4d2
cmp ecx, 0x4727f908
jb 0x1400c3c10
test dil, 3
je 0x1400c3d08
lea rcx, [r15 + r13*8]
add rcx, 0x3e0
not r13b
add r13b, bl
movzx edx, r13b
and edx, 3
xor r8d, r8d
mov r9, r14
jmp 0x1400c3c6f
inc r8
inc r9
cmp rdx, r8
je 0x1400c3d05
mov r10d, dword [0x141f42890]
and r10d, dword [0x141f42894]
xor r10d, 0x1018582a
or r10d, 0x42e7a785
cmp r10d, 0x4c371ca
jb 0x1400c3cec
nop word cs:[rax + rax]
mov r10d, dword [0x141f42898]
imul r10d, dword [0x141f4289c]
lea r11d, [r14 + r8]
mov rdi, qword [rcx + r8*8]
mov qword [rdi + 0x160], r15
mov word [rdi + 0x3d0], r11w
imul r10d, r10d, 0xdc1b7ea8
add r10d, 0xb80b85fb
imul r10, r10, 0x79109b5d
shr r10, 0x3a
cmp r10d, 0x82fff698
jbe 0x1400c3c60
mov r10, qword [rcx + r8*8]
mov qword [r10 + 0x160], r15
lea r11d, [r14 + r8]
mov word [r10 + 0x3d0], r11w
jmp 0x1400c3ca0
add r14, r8
xor ecx, ecx
nop word [rax + rax]
test cl, cl
jne 0x1400c3d10
cmp rax, 3
jae 0x1400c3d52
movzx eax, word [r15 + 0x3d2]
mov ecx, dword [0x141f428b0]
imul ecx, dword [0x141f428b4]
xor ecx, 0x4ea9c648
imul ecx, ecx, 0x47181f05
add ecx, 0x743e4ffa
cmp ecx, 0x9be4d26e
jae 0x1400c3e83
jmp 0x1400c3ea8
mov ecx, 0x9aa1b3af
jmp 0x1400c3d69
add r14, 4
cmp rbx, r14
je 0x1400c3d1a
mov eax, dword [0x141f428a0]
add eax, dword [0x141f428a4]
or eax, 0x1565902e
imul eax, eax, 0xfb644e17
add eax, 0x3bdf1b40
cmp eax, 0x173c5014
jb 0x1400c3e19
mov eax, dword [0x141f428a8]
xor edx, edx
div dword [0x141f428ac]
imul rax, rcx
shr rax, 0x3f
lea edx, [r14 + 1]
lea r8d, [r14 + 2]
mov r9, qword [r15 + r14*8 + 0x3d8]
mov qword [r9 + 0x160], r15
mov word [r9 + 0x3d0], r14w
mov r9, qword [r15 + r14*8 + 0x3e0]
mov qword [r9 + 0x160], r15
mov word [r9 + 0x3d0], dx
lea edx, [r14 + 3]
mov r9, qword [r15 + r14*8 + 0x3e8]
mov qword [r9 + 0x160], r15
mov word [r9 + 0x3d0], r8w
mov r8, qword [r15 + r14*8 + 0x3f0]
mov qword [r8 + 0x160], r15
mov word [r8 + 0x3d0], dx
cmp eax, 0xecc5d04c
jne 0x1400c3d60
mov rax, qword [r15 + r14*8 + 0x3d8]
mov qword [rax + 0x160], r15
mov word [rax + 0x3d0], r14w
mov rax, qword [r15 + r14*8 + 0x3e0]
mov qword [rax + 0x160], r15
lea edx, [r14 + 1]
mov word [rax + 0x3d0], dx
mov rax, qword [r15 + r14*8 + 0x3e8]
mov qword [rax + 0x160], r15
lea edx, [r14 + 2]
mov word [rax + 0x3d0], dx
mov rax, qword [r15 + r14*8 + 0x3f0]
mov qword [rax + 0x160], r15
lea edx, [r14 + 3]
mov word [rax + 0x3d0], dx
jmp 0x1400c3d90
mov ecx, dword [0x141f428b8]
xor ecx, dword [0x141f428bc]
imul ecx, ecx, 0xfbc4d8e2
lea edx, [rax - 1]
mov word [r15 + 0x3d2], dx
cmp ecx, 0x1547efa0
jne 0x1400c3eb5
lea ecx, [rax - 1]
mov word [r15 + 0x3d2], cx
jmp 0x1400c3e83
cmp qword [rsp + 0x48], 2
mov rbx, qword [rsp + 0x50]
jb 0x1400c4117
lea r14, [rsi + rbp*8]
add r14, 0x3d8
lea r15, [rbx + 0x3d8]
mov eax, dword [0x141f428c0]
or eax, dword [0x141f428c4]
lea r12, [r12*8 + 8]
xor eax, 0x241
and eax, 0x5001024d
cmp eax, 0x26b26504
jb 0x1400c3f31
mov edi, dword [0x141f428c8]
add edi, dword [0x141f428cc]
xor edi, 0xbb411d90
or edi, 0x44ba4027
xor edi, 0x15733d71
mov rcx, r14
mov rdx, r15
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
cmp edi, 0xa8414fd7
jae 0x1400c3f41
mov rcx, r14
mov rdx, r15
mov r8, r12
call sub.VCRUNTIME140.dll_memcpy
jmp 0x1400c3efd
mov r10, qword [rsp + 0x28]
lea rax, [r10 + 1]
and rax, 3
je 0x1400c3f92
mov rcx, qword [rsp + 0x30]
lea rdx, [rsi + rcx*8]
add rdx, 0x3e0
xor ecx, ecx
nop word cs:[rax + rax]
mov r8, qword [rdx + rcx*8]
mov qword [r8 + 0x160], rsi
lea r9d, [rcx + rbp]
mov word [r8 + 0x3d0], r9w
inc rcx
cmp rax, rcx
jne 0x1400c3f70
add rbp, rcx
mov r9, qword [rsp + 0x38]
nop word [rax + rax]
mov eax, dword [0x141f428d0]
xor eax, dword [0x141f428d4]
imul rax, rax, 0x13a6c2c7
shr rax, 0x3b
xor eax, 0x4c08f85b
imul eax, eax, 0xdac67fc1
cmp eax, 0xb372229d
je 0x1400c3fa0
cmp r10w, 3
jb 0x1400c4117
nop word cs:[rax + rax]
mov eax, dword [0x141f428d8]
xor edx, edx
div dword [0x141f428dc]
or eax, 0xcd5235b4
imul rax, rax, 0x27e6f89
shr rax, 0x39
imul eax, eax, 0xdb7f1c12
cmp eax, 0xa9a63764
jae 0x1400c4070
mov rax, qword [rsi + rbp*8 + 0x3d8]
mov qword [rax + 0x160], rsi
mov word [rax + 0x3d0], bp
mov rax, qword [rsi + rbp*8 + 0x3e0]
mov qword [rax + 0x160], rsi
lea ecx, [rbp + 1]
mov word [rax + 0x3d0], cx
mov rax, qword [rsi + rbp*8 + 0x3e8]
mov qword [rax + 0x160], rsi
lea ecx, [rbp + 2]
mov word [rax + 0x3d0], cx
mov rax, qword [rsi + rbp*8 + 0x3f0]
mov qword [rax + 0x160], rsi
lea ecx, [rbp + 3]
mov word [rax + 0x3d0], cx
nop dword [rax]
mov eax, dword [0x141f428e0]
add eax, dword [0x141f428e4]
imul rcx, rax, 0x62091477
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1d
add eax, 0xf0094209
or eax, 0xfb6cc5aa
lea edx, [rbp + 1]
lea rcx, [rbp + 3]
mov r8, qword [rsi + rbp*8 + 0x3d8]
mov qword [r8 + 0x160], rsi
mov word [r8 + 0x3d0], bp
mov r8, qword [rsi + rbp*8 + 0x3e0]
mov qword [r8 + 0x160], rsi
mov word [r8 + 0x3d0], dx
lea edx, [rbp + 2]
mov r8, qword [rsi + rbp*8 + 0x3e8]
mov qword [r8 + 0x160], rsi
mov word [r8 + 0x3d0], dx
mov rdx, qword [rsi + rbp*8 + 0x3f0]
mov qword [rdx + 0x160], rsi
mov word [rdx + 0x3d0], cx
cmp eax, 0x495eeae6
jb 0x1400c4070
add rbp, 4
cmp rcx, r9
jne 0x1400c3fe0
xor eax, eax
test al, al
je 0x1400c4124
mov rax, qword [0x141f49060]
mov eax, 0x9c501a8b
nop dword [rax]
mov ecx, dword [0x141f428e8]
xor ecx, dword [0x141f428ec]
imul ecx, ecx, 0x55ebd1dc
imul rcx, rax
shr rcx, 0x3e
add ecx, 0xa7b77a93
mov r14, qword [0x141f49060]
cmp ecx, 0xed6a6857
ja 0x1400c4130
mov eax, dword [0x141f428f0]
xor eax, dword [0x141f428f4]
imul eax, eax, 0x4ba1c214
or eax, 0x69ac5b57
cmp eax, 0xc2bcfc32
ja 0x1400c41b1
mov eax, dword [0x141f428f8]
sub eax, dword [0x141f428fc]
imul edi, eax, 0xce43ddf8
add edi, 0xd7ebccd8
and edi, 0xdcd6c890
mov rcx, r14
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp edi, 0x54e4216c
jae 0x1400c41c1
mov rcx, r14
xor edx, edx
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1400c417d
mov rax, rsi
mov rdx, qword [rsp + 0x58]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret