Function at 0x140090280
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov dword [rsp + 0x20], r9d
mov dword [rsp + 0x18], r8d
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rsi, rdx
movzx r13d, r9w
xor edx, edx
mov ebp, r8d
movabs rax, 0x1000000000000
mov edi, 2
div r13
lea ebx, [rbp + 1]
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov edx, edi
lea eax, [rbp*2 + 1]
mov ecx, ebx
mov qword [rsp + 0x40], rax
call fcn.1400a64d0
xor r8d, r8d
mov edx, edi
mov ecx, ebx
mov r15, rax
call fcn.1400a64d0
xor r8d, r8d
mov edx, edi
mov ecx, ebx
mov r14, rax
call fcn.1400a64d0
xor r8d, r8d
mov qword [rsp + 0x30], rax
mov edx, edi
mov ecx, ebx
mov r12, rax
call fcn.1400a64d0
mov qword [rsp + 0x38], rbp
mov rdx, rsi
add rbp, rbp
mov qword [rsp + 0x20], rax
mov r8, rbp
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
xor edx, edx
mov r9d, 1
mov word [r15 + rbp], dx
mov word [r12], r9w
cmp rbx, r9
jbe 0x14009035e
lea rcx, [rbx*2 - 2]
movzx eax, dx
shr rcx, 1
lea rdi, [r12 + 2]
rep stosw word [rdi], ax
lea edi, [rdx + 2]
movzx eax, word [rsp + 0xb8]
dec ax
mov word [r14 + 2], ax
mov word [r14], ax
cmp rdi, qword [rsp + 0x38]
jae 0x14009038a
lea rcx, [rbp - 4]
movzx eax, dx
shr rcx, 1
lea rdi, [r14 + 4]
rep stosw word [rdi], ax
mov word [r14 + rbp], r9w
xor ebp, ebp
test rbx, rbx
je 0x1400903a4
mov rdi, qword [rsp + 0x20]
mov rcx, rbx
movzx eax, bp
rep stosw word [rdi], ax
lea rsi, [rbx + rbx]
lea rax, [rsi - 2]
mov qword [rsp + 0x58], rsi
add rax, r15
mov qword [rsp + 0x48], rax
mov eax, dword [rsp + 0xb0]
dec eax
lea rax, [r12 + rax*2]
mov qword [rsp + 0x50], rax
jmp 0x1400903d4
lea rsi, [rbx + rbx]
movzx edi, word [r15]
mov r8d, r9d
movzx r11d, word [r14]
add edi, 0xffff
add r11d, 0xffff
shr edi, 0x10
shr r11d, 0x10
not edi
not r11d
and edi, 1
and r11d, 1
mov r10, rbx
test rbx, rbx
je 0x140090455
add rsi, r14
mov r12, r15
sub r12, r14
movzx eax, word [r12 + rsi - 2]
lea rsi, [rsi - 2]
movzx ecx, word [rsi]
add eax, 0xffff
shr eax, 0x10
mov edx, r9d
not eax
add ecx, 0xffff
and r8d, eax
shr ecx, 0x10
not edx
mov eax, ecx
or edx, ecx
not eax
and edx, r8d
and r9d, eax
or ebp, edx
sub r10, 1
jne 0x140090410
mov r12, qword [rsp + 0x30]
lea rsi, [rbx + rbx]
not di
and di, bp
xor ebp, ebp
or di, r11w
mov ecx, ebp
neg di
movsx eax, di
movd xmm4, eax
punpcklwd xmm4, xmm4
pshufd xmm4, xmm4, 0
test rbx, rbx
je 0x1400905e4
cmp rbx, 8
jb 0x1400904ee
lea rdx, [r15 - 2]
lea rax, [r14 - 2]
add rdx, rsi
add rax, rsi
cmp r15, rax
ja 0x14009049d
cmp rdx, r14
jae 0x1400904ee
mov rdx, rbx
and rdx, 0xfffffffffffffff8
mov rsi, r15
mov rax, r14
sub rsi, r14
nop dword [rax]
movdqu xmm1, xmmword [rax + rsi]
add rcx, 8
movdqu xmm3, xmmword [rax]
lea rax, [rax + 0x10]
movdqa xmm2, xmm1
pxor xmm2, xmm3
pand xmm2, xmm4
movdqa xmm0, xmm2
pxor xmm2, xmm3
pxor xmm0, xmm1
movdqu xmmword [rax + rsi - 0x10], xmm0
movdqu xmmword [rax - 0x10], xmm2
cmp rcx, rdx
jb 0x1400904b0
cmp rcx, rbx
jae 0x140090526
mov r8, r15
lea rdx, [r14 + rcx*2]
sub r8, r14
mov rsi, rbx
sub rsi, rcx
nop
movzx ecx, word [rdx + r8]
lea rdx, [rdx + 2]
movzx eax, cx
xor ax, word [rdx - 2]
and ax, di
xor cx, ax
mov word [rdx + r8 - 2], cx
xor word [rdx - 2], ax
sub rsi, 1
jne 0x140090500
mov r11, qword [rsp + 0x20]
mov rcx, rbp
cmp rbx, 8
jb 0x14009059e
lea rax, [rbx + rbx]
lea rdx, [rax - 2]
add rax, 0xfffffffffffffffe
add rax, r11
add rdx, r12
cmp r12, rax
ja 0x140090550
cmp rdx, r11
jae 0x14009059e
mov rdx, rbx
and rdx, 0xfffffffffffffff8
mov rsi, r12
mov rax, r11
sub rsi, r11
movdqu xmm1, xmmword [rsi + rax]
add rcx, 8
movdqu xmm3, xmmword [rax]
lea rax, [rax + 0x10]
movdqa xmm2, xmm1
pxor xmm2, xmm3
pand xmm2, xmm4
movdqa xmm0, xmm2
pxor xmm2, xmm3
pxor xmm0, xmm1
movdqu xmmword [rsi + rax - 0x10], xmm0
movdqu xmmword [rax - 0x10], xmm2
cmp rcx, rdx
jb 0x140090560
cmp rcx, rbx
jae 0x1400905e4
mov r8, r12
lea rax, [r11 + rcx*2]
sub r8, r11
mov rsi, rbx
sub rsi, rcx
nop
movzx edx, word [rax + r8]
lea rax, [rax + 2]
movzx ecx, dx
xor cx, word [rax - 2]
and cx, di
xor dx, cx
mov word [rax + r8 - 2], dx
xor word [rax - 2], cx
sub rsi, 1
jne 0x1400905b0
movzx ecx, word [r14]
movzx eax, r13w
sub ax, word [r15]
jmp 0x1400905f9
movzx ecx, word [r14]
movzx eax, r13w
sub ax, word [r15]
test rbx, rbx
je 0x1400906d3
mov r12, qword [rsp + 0x28]
mov rsi, r14
sub rsi, r15
movzx r9d, ax
movzx r10d, cx
mov rdi, r15
mov r8, rbx
mov r11d, r13d
nop word [rax + rax]
movzx edx, word [rsi + rdi]
movzx eax, word [rdi]
lea rdi, [rdi + 2]
imul edx, r9d
imul eax, r10d
add edx, eax
mov ecx, edx
imul rcx, r12
shr rcx, 0x30
imul ecx, r13d
sub dx, cx
mov ecx, r11d
movzx eax, dx
sub ecx, eax
dec ecx
sar ecx, 0xf
and cx, 1
movzx ecx, cx
imul ecx, r13d
sub dx, cx
mov word [rdi - 2], dx
sub r8, 1
jne 0x140090620
mov rdi, qword [rsp + 0x30]
mov r11, r12
mov rsi, qword [rsp + 0x20]
mov r8, rbx
sub rsi, rdi
mov r12d, r13d
movzx edx, word [rsi + rdi]
movzx eax, word [rdi]
lea rdi, [rdi + 2]
imul edx, r9d
imul eax, r10d
add edx, eax
mov ecx, edx
imul rcx, r11
shr rcx, 0x30
imul ecx, r13d
sub dx, cx
mov ecx, r12d
movzx eax, dx
sub ecx, eax
dec ecx
sar ecx, 0xf
and cx, 1
movzx ecx, cx
imul ecx, r13d
sub dx, cx
mov word [rdi - 2], dx
sub r8, 1
jne 0x140090681
mov r12, qword [rsp + 0x30]
jmp 0x1400906d8
mov r11, qword [rsp + 0x28]
cmp rbx, 1
jbe 0x1400906ec
lea rsi, [r15 + 2]
mov rdi, r15
lea rcx, [rbx - 1]
rep movsw word [rdi], word [rsi]
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x38]
mov word [rax], bp
movzx eax, word [r12]
cmp rcx, 1
jbe 0x140090712
lea rsi, [r12 + 2]
dec rcx
mov rdi, r12
rep movsw word [rdi], word [rsi]
mov rcx, qword [rsp + 0x50]
mov r9d, 1
mov word [rcx], ax
movzx edx, word [r12]
sub edx, eax
add edx, dword [rsp + 0xb8]
mov ecx, edx
imul rcx, r11
shr rcx, 0x30
imul ecx, r13d
sub dx, cx
mov ecx, r13d
movzx eax, dx
sub ecx, eax
dec ecx
sar ecx, 0xf
and cx, 1
movzx ecx, cx
imul ecx, r13d
sub dx, cx
sub qword [rsp + 0x40], 1
mov word [r12], dx
jne 0x1400903d0
movzx ecx, word [r14]
movzx edi, word [r15]
add edi, 0xffff
shr edi, 0x10
lea eax, [rcx + 0xffff]
not edi
shr eax, 0x10
and edi, eax
cmp rbx, r9
jbe 0x1400907c5
mov r8, r14
lea rsi, [r15 + 2]
sub r8, r15
dec rbx
nop dword [rax + rax]
movzx edx, word [r8 + rsi]
movzx eax, word [rsi]
lea rsi, [rsi + 2]
add edx, 0xffff
add eax, 0xffff
or edx, eax
shr edx, 0x10
not edx
and edi, edx
sub rbx, r9
jne 0x1400907a0
mov r8, r11
movzx edx, r13w
call fcn.14008e790
mov r10, qword [rsp + 0x38]
test r10, r10
je 0x14009084b
mov rsi, qword [rsp + 0x20]
mov r11, qword [rsp + 0xa0]
mov r12, qword [rsp + 0x28]
sub rsi, r11
movzx r8d, ax
nop dword [rax]
nop dword [rax + rax]
movzx edx, word [rsi + r11]
lea r11, [r11 + 2]
imul edx, r8d
inc rbp
mov ecx, edx
imul rcx, r12
shr rcx, 0x30
imul ecx, r13d
sub dx, cx
mov ecx, r13d
movzx eax, dx
sub ecx, eax
dec ecx
sar ecx, 0xf
and cx, 1
movzx ecx, cx
imul ecx, r13d
sub dx, cx
mov word [r11 - 2], dx
cmp rbp, r10
jb 0x140090800
mov r12, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x58]
mov rcx, r15
mov rdx, rsi
call fcn.1400abcc0
mov rcx, r15
call fcn.1400a62e0
mov rdx, rsi
mov rcx, r14
call fcn.1400abcc0
mov rcx, r14
call fcn.1400a62e0
mov rdx, rsi
mov rcx, r12
call fcn.1400abcc0
mov rcx, r12
call fcn.1400a62e0
mov rcx, qword [rsp + 0x20]
mov rdx, rsi
call fcn.1400abcc0
mov rcx, qword [rsp + 0x20]
call fcn.1400a62e0
mov rbx, qword [rsp + 0xa8]
mov eax, edi
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret