Function at 0x1801a2760
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rdi, qword [rcx + 0x18]
mov rax, rdi
inc rax
je 0x1801a31ae
mov r14, rdx
mov rsi, rcx
mov r12, qword [rcx + 8]
lea rbx, [r12 + 1]
mov rcx, rbx
shr rcx, 3
mov r8, rbx
and r8, 0xfffffffffffffff8
sub r8, rcx
cmp r12, 8
mov rcx, r8
cmovb rcx, r12
mov rdx, rcx
shr rdx, 1
cmp rax, rdx
jbe 0x1801a27e8
inc rcx
cmp rax, rcx
cmova rcx, rax
cmp rcx, 8
mov qword [rsp + 0x38], r12
jae 0x1801a2877
xor eax, eax
cmp rcx, 4
setae al
lea r8, [rax*4 + 4]
jmp 0x1801a28c7
mov qword [rsp + 0x70], r8
mov r15, qword [rsi]
test rbx, rbx
je 0x1801a2958
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [r15]
por xmm0, xmmword [0x1801a87c0]
movdqa xmmword [r15], xmm0
cmp rbx, 0x11
jb 0x1801a284f
mov eax, 0x10
movdqa xmm0, xmmword [0x1801a87c0]
nop word cs:[rax + rax]
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r15 + rax]
por xmm1, xmm0
movdqa xmmword [r15 + rax], xmm1
add rax, 0x10
jb 0x1801a284f
cmp rax, rbx
jb 0x1801a2830
cmp rbx, 0x10
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x60], rdi
jae 0x1801a2b3a
lea rcx, [r15 + 0x10]
mov rdx, r15
mov r8, rbx
call sub.VCRUNTIME140.dll_memmove
jmp 0x1801a2b45
mov rax, rcx
shr rax, 0x3d
jne 0x1801a31ae
shl rcx, 3
mov r8d, 1
cmp rcx, 0xe
jb 0x1801a28c7
movabs rdx, 0x2492492492492493
mov rax, rcx
mul rdx
sub rcx, rdx
shr rcx, 1
add rcx, rdx
shr rcx, 2
dec rcx
bsr rcx, rcx
not ecx
mov r8, 0xffffffffffffffff
shr r8, cl
inc r8
mov ecx, 0x88
mov rax, r8
mul rcx
jo 0x1801a31ae
mov r12, rax
add r12, 0xf
and r12, 0xfffffffffffffff0
lea r13, [r8 + 0x10]
mov rbp, r12
add rbp, r13
jb 0x1801a31ae
movabs rax, 0x7ffffffffffffff1
cmp rbp, rax
jae 0x1801a31ae
mov qword [rsp + 0x28], r14
mov r14, r8
test rbp, rbp
je 0x1801a296e
movzx eax, byte [0x180247060]
mov rcx, qword [0x180246f98]
test rcx, rcx
jne 0x1801a293b
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x1801a294e
mov rcx, rax
mov qword [0x180246f98], rax
xor edx, edx
mov r8, rbp
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r15, rax
test rax, rax
jne 0x1801a2974
mov rcx, rbp
call fcn.180054480
ud2
lea rcx, [r15 + 0x10]
mov rdx, r15
mov r8, rbx
call sub.VCRUNTIME140.dll_memmove
xor eax, eax
jmp 0x1801a3189
mov r15d, 0x10
lea rbp, [r14 - 1]
mov rax, r14
shr rax, 3
and r14, 0xfffffffffffffff8
sub r14, rax
cmp rbp, 8
cmovb r14, rbp
add r15, r12
mov rcx, r15
mov dl, 0xff
mov r8, r13
call sub.VCRUNTIME140.dll_memset
sub r14, rdi
mov r12, qword [rsi]
test rbx, rbx
je 0x1801a2af0
mov qword [rsp + 0x30], r14
lea rdi, [r12 - 0x88]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rax]
mov qword [rsp + 0x40], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x28], rax
mov r14d, 1
xor r13d, r13d
jmp 0x1801a2a36
shr rax, 0x39
lea rcx, [r8 - 0x10]
and rcx, rbp
mov byte [r15 + r8], al
mov byte [rcx + r15 + 0x10], al
imul rax, r13, 0xffffffffffffff78
lea rdx, [rax + r12]
add rdx, 0xffffffffffffff78
imul rax, r8, 0xffffffffffffff78
lea rcx, [rax + r15]
add rcx, 0xffffffffffffff78
mov r8d, 0x88
call fcn.180199330
mov r13, r14
lea rax, [r14 + 1]
cmp r14, rbx
mov r14, rax
je 0x1801a2ad1
cmp byte [r12 + r13], 0
js 0x1801a2a23
mov rax, r13
neg rax
lea rcx, [r13*8]
shl rax, 7
sub rax, rcx
mov r8, qword [rdi + rax]
mov r9, qword [rdi + rax + 0x10]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x28]
call fcn.180009a00
mov rcx, rax
and rcx, rbp
movdqu xmm0, xmmword [r15 + rcx]
pmovmskb edx, xmm0
test edx, edx
jne 0x1801a2aa8
mov r8d, 0x10
nop word cs:[rax + rax]
add rcx, r8
and rcx, rbp
movdqu xmm0, xmmword [r15 + rcx]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x1801a2a90
tzcnt r8d, edx
add r8, rcx
and r8, rbp
cmp byte [r15 + r8], 0
js 0x1801a29e0
movdqa xmm0, xmmword [r15]
pmovmskb ecx, xmm0
tzcnt r8d, ecx
jmp 0x1801a29e0
mov qword [rsi], r15
mov qword [rsi + 8], rbp
mov rax, qword [rsp + 0x30]
mov qword [rsi + 0x10], rax
mov r8, qword [rsp + 0x38]
test r8, r8
jne 0x1801a2b00
jmp 0x1801a3190
mov qword [rsi], r15
mov qword [rsi + 8], rbp
mov qword [rsi + 0x10], r14
mov r8, qword [rsp + 0x38]
mov ecx, 0x88
mov rax, rbx
mul rcx
add rax, 0xf
and rax, 0xfffffffffffffff0
add r8, rax
cmp r8, 0xffffffffffffffef
je 0x1801a3190
sub r12, rax
mov rcx, qword [0x180246f98]
xor edx, edx
mov r8, r12
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1801a3190
movdqu xmm0, xmmword [r15]
movdqu xmmword [r15 + rbx], xmm0
mov rax, qword [r14]
mov rcx, qword [r14 + 8]
movabs rdx, 0x736f6d6570736575
xor rdx, rax
mov qword [rsp + 0x30], rdx
movabs rdx, 0x646f72616e646f6d
xor rdx, rcx
mov qword [rsp + 0x58], rdx
movabs rdx, 0x6c7967656e657261
xor rdx, rax
mov qword [rsp + 0x50], rdx
movabs rax, 0x7465646279746573
xor rax, rcx
mov qword [rsp + 0x48], rax
mov rdi, r15
xor esi, esi
mov qword [rsp + 0x38], r12
jmp 0x1801a2bcb
shr rax, 0x39
lea rcx, [rsi - 0x10]
and rcx, r12
mov byte [r15 + rsi], al
mov byte [rcx + r15 + 0x10], al
lea rax, [rsi + 1]
add rdi, 0xffffffffffffff78
cmp rsi, r12
mov rsi, rax
je 0x1801a3172
cmp byte [r15 + rsi], 0x80
jne 0x1801a2bb4
imul rax, rsi, 0xffffffffffffff78
lea rcx, [r15 + rax]
add rcx, 0xffffffffffffff78
mov qword [rsp + 0x80], rcx
add rax, r15
mov qword [rsp + 0x78], rax
mov rax, rsi
not rax
mov rcx, rax
shl rcx, 7
lea rdx, [rcx + rax*8]
add rdx, r15
mov rax, rsi
neg rax
mov qword [rsp + 0x40], rsi
lea rcx, [rsi*8]
shl rax, 7
sub rax, rcx
add rax, r15
add rax, 0xffffffffffffff78
mov qword [rsp + 0x28], rax
jmp 0x1801a2cdc
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmm2, xmmword [rcx]
movups xmm3, xmmword [rcx + 0x10]
movups xmmword [rdx], xmm2
movups xmmword [rdx + 0x10], xmm3
movups xmmword [rcx], xmm0
movups xmmword [rcx + 0x10], xmm1
movups xmm0, xmmword [rdx + 0x20]
movups xmm1, xmmword [rdx + 0x30]
movups xmm2, xmmword [rcx + 0x20]
movups xmm3, xmmword [rcx + 0x30]
movups xmmword [rdx + 0x20], xmm2
movups xmmword [rdx + 0x30], xmm3
movups xmmword [rcx + 0x20], xmm0
movups xmmword [rcx + 0x30], xmm1
movups xmm0, xmmword [rdx + 0x40]
movups xmm1, xmmword [rdx + 0x50]
movups xmm2, xmmword [rcx + 0x40]
movups xmm3, xmmword [rcx + 0x50]
movups xmmword [rdx + 0x40], xmm2
movups xmmword [rdx + 0x50], xmm3
movups xmmword [rcx + 0x40], xmm0
movups xmmword [rcx + 0x50], xmm1
movdqu xmm0, xmmword [rdx + 0x60]
movdqu xmm1, xmmword [rdx + 0x70]
movups xmm2, xmmword [rcx + 0x60]
movups xmm3, xmmword [rcx + 0x70]
movups xmmword [rdx + 0x60], xmm2
movups xmmword [rdx + 0x70], xmm3
movdqu xmmword [rcx + 0x60], xmm0
movdqu xmmword [rcx + 0x70], xmm1
mov rax, qword [rdx + 0x80]
mov r8, qword [rcx + 0x80]
mov qword [rdx + 0x80], r8
mov qword [rcx + 0x80], rax
mov rax, qword [rsp + 0x28]
mov r9, qword [rax]
mov rbx, qword [rax + 0x10]
mov r8d, ebx
and r8d, 7
mov rax, rbx
and rax, 0xfffffffffffffff8
je 0x1801a2d70
mov r11, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
mov r13, qword [rsp + 0x48]
xor ebp, ebp
mov r12, qword [rsp + 0x30]
nop
add r12, r14
rol r14, 0xd
mov rcx, qword [r9 + rbp]
xor r14, r12
rol r12, 0x20
xor r13, rcx
add r11, r13
rol r13, 0x10
xor r13, r11
add r12, r13
rol r13, 0x15
add r11, r14
rol r14, 0x11
xor r14, r11
rol r11, 0x20
xor r13, r12
xor r12, rcx
add rbp, 8
cmp rbp, rax
jb 0x1801a2d10
cmp r8d, 3
jbe 0x1801a2d8c
mov r10d, dword [r9 + rbp]
mov eax, 4
mov rcx, rax
or rcx, 1
cmp rcx, r8
jb 0x1801a2d9d
jmp 0x1801a2db7
mov r13, qword [rsp + 0x48]
mov r14, qword [rsp + 0x58]
mov r11, qword [rsp + 0x50]
mov r12, qword [rsp + 0x30]
xor ebp, ebp
cmp r8d, 3
ja 0x1801a2d59
xor r10d, r10d
xor eax, eax
mov rcx, rax
or rcx, 1
cmp rcx, r8
jae 0x1801a2db7
lea rcx, [rax + rbp]
movzx esi, word [r9 + rcx]
lea ecx, [rax*8]
shl rsi, cl
or r10, rsi
or rax, 2
cmp rax, r8
jae 0x1801a2de0
add rbp, rax
movzx r9d, byte [r9 + rbp]
shl eax, 3
mov ecx, eax
shl r9, cl
or r10, r9
jmp 0x1801a2de5
test r8, r8
je 0x1801a2e43
lea ecx, [r8*8]
mov r9d, 0xff
shl r9, cl
or r9, r10
cmp r8, 7
jne 0x1801a2f42
mov ecx, 8
add r12, r14
rol r14, 0xd
sub rcx, r8
xor r14, r12
rol r12, 0x20
xor r13, r9
add r11, r13
rol r13, 0x10
xor r13, r11
add r12, r13
rol r13, 0x15
xor r13, r12
add r11, r14
rol r14, 0x11
xor r14, r11
rol r11, 0x20
xor r12, r9
jmp 0x1801a2e45
xor ecx, ecx
mov r8d, 1
sub r8, rcx
mov eax, r8d
and eax, 7
and r8, 0xfffffffffffffff8
cmp rcx, r8
jae 0x1801a2ef0
nop word cs:[rax + rax]
add r12, r14
rol r14, 0xd
mov r9, r13
xor r14, r12
rol r12, 0x20
xor r9, 0xff
add r11, r9
shld r9, r13, 0x10
xor r9, r11
add r12, r9
rol r9, 0x15
add r11, r14
rol r14, 0x11
mov r13, r9
xor r14, r11
rol r11, 0x20
xor r13, r12
xor r12, 0xff
add rcx, 8
cmp rcx, r8
jb 0x1801a2e70
xor r8d, r8d
cmp rax, 4
setae r8b
cmp eax, 4
mov r9d, 0
mov ecx, 0xff
cmovae r9, rcx
shl r8, 2
jmp 0x1801a2ef6
xor r9d, r9d
xor r8d, r8d
mov r10, r8
lea ecx, [r8*8]
mov esi, 0xff
shl rsi, cl
or r10, 1
mov rbp, r8
or rbp, 2
cmp r10, rax
mov r10d, 0
cmovae rsi, r10
cmovae rbp, r8
or rsi, r9
lea ecx, [rbp*8]
mov r9d, 0xff
shl r9, cl
cmp rbp, rax
cmovae r9, r10
or r9, rsi
shl rbx, 0x38
movabs rax, 0x100000000000000
add rbx, rax
add r12, r14
rol r14, 0xd
or rbx, r9
xor r14, r12
rol r12, 0x20
xor r13, rbx
add r11, r13
rol r13, 0x10
xor r13, r11
add r12, r13
rol r13, 0x15
add r11, r14
rol r14, 0x11
xor r13, r12
xor r14, r11
rol r11, 0x20
xor r12, rbx
add r12, r14
rol r14, 0xd
xor r14, r12
rol r12, 0x20
xor r11, 0xff
add r11, r13
rol r13, 0x10
xor r13, r11
add r12, r13
rol r13, 0x15
add r11, r14
rol r14, 0x11
xor r14, r11
rol r11, 0x20
xor r13, r12
add r12, r14
rol r14, 0xd
xor r14, r12
rol r12, 0x20
add r11, r13
rol r13, 0x10
xor r13, r11
add r12, r13
rol r13, 0x15
add r11, r14
rol r14, 0x11
xor r14, r11
rol r11, 0x20
xor r13, r12
add r12, r14
rol r14, 0xd
add r11, r13
rol r13, 0x10
xor r13, r11
rol r13, 0x15
xor r14, r12
add r11, r14
rol r14, 0x11
mov rax, r11
rol rax, 0x20
xor rax, r14
xor rax, r13
xor rax, r11
mov r12, qword [rsp + 0x38]
mov rcx, r12
and rcx, rax
movdqu xmm0, xmmword [r15 + rcx]
pmovmskb r8d, xmm0
mov r9, rcx
test r8d, r8d
mov rsi, qword [rsp + 0x40]
jne 0x1801a306a
mov r10d, 0x10
mov r9, rcx
nop
add r9, r10
and r9, r12
movdqu xmm0, xmmword [r15 + r9]
pmovmskb r8d, xmm0
add r10, 0x10
test r8d, r8d
je 0x1801a3050
tzcnt r8d, r8d
add r8, r9
and r8, r12
cmp byte [r15 + r8], 0
js 0x1801a308b
movdqa xmm0, xmmword [r15]
pmovmskb r8d, xmm0
tzcnt r8d, r8d
mov r9, rsi
sub r9, rcx
mov r10, r8
sub r10, rcx
xor r10, r9
and r10, r12
cmp r10, 0x10
jb 0x1801a2ba0
mov rcx, r8
not rcx
mov r9, rcx
shl r9, 7
lea rcx, [r9 + rcx*8]
add rcx, r15
movzx r9d, byte [r15 + r8]
shr rax, 0x39
lea r10, [r8 - 0x10]
and r10, r12
mov byte [r15 + r8], al
mov byte [r10 + r15 + 0x10], al
cmp r9b, 0xff
je 0x1801a3150
imul rax, r8, 0xffffffffffffff78
add rax, r15
cmp qword [rsp + 0x80], rax
jae 0x1801a2c40
cmp rcx, qword [rsp + 0x78]
jae 0x1801a2c40
mov rcx, 0xffffffffffffff78
nop word cs:[rax + rax]
movzx r8d, byte [rdi + rcx]
movzx r9d, byte [rax + rcx]
mov byte [rdi + rcx], r9b
mov byte [rax + rcx], r8b
movzx r8d, byte [rdi + rcx + 1]
movzx r9d, byte [rax + rcx + 1]
mov byte [rdi + rcx + 1], r9b
mov byte [rax + rcx + 1], r8b
add rcx, 2
jne 0x1801a3110
jmp 0x1801a2cdc
lea rax, [rsi - 0x10]
and rax, r12
mov byte [r15 + rsi], 0xff
mov byte [rax + r15 + 0x10], 0xff
mov r8d, 0x88
call fcn.180199330
jmp 0x1801a2bb4
cmp r12, 8
mov rax, qword [rsp + 0x70]
cmovb rax, r12
mov rsi, qword [rsp + 0x68]
mov rdi, qword [rsp + 0x60]
sub rax, rdi
mov qword [rsi + 0x10], rax
movabs rax, 0x8000000000000001
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.180054440
ud2