Function at 0x140196ac0
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
movdqa xmmword [rsp + 0x80], xmm6
mov r8, qword [rcx + 0x18]
mov rax, r8
inc rax
je 0x140197413
mov r14, rcx
mov rbp, qword [rcx + 8]
lea r13, [rbp + 1]
mov rcx, r13
shr rcx, 3
mov rsi, r13
and rsi, 0xfffffffffffffff8
sub rsi, rcx
cmp rbp, 8
cmovb rsi, rbp
movdqa xmm6, xmmword [rdx]
mov rcx, rsi
shr rcx, 1
cmp rax, rcx
mov qword [rsp + 0x38], r8
jbe 0x140196b47
inc rsi
cmp rax, rsi
cmova rsi, rax
cmp rsi, 8
jae 0x140196b74
xor eax, eax
cmp rsi, 4
setae al
lea rdi, [rax*4 + 4]
jmp 0x140196bb8
mov rbx, qword [r14]
mov rcx, r13
shr rcx, 4
xor eax, eax
test r13b, 0xf
setne al
add rax, rcx
je 0x140196e8a
cmp rax, 1
jne 0x140196e27
xor ecx, ecx
jmp 0x140196e74
mov rax, rsi
shr rax, 0x3d
jne 0x140197413
shl rsi, 3
movabs rcx, 0x2492492492492493
mov rax, rsi
mul rcx
sub rsi, rdx
shr rsi, 1
add rsi, rdx
shr rsi, 2
dec rsi
bsr rcx, rsi
not ecx
mov rdi, 0xffffffffffffffff
shr rdi, cl
inc rdi
mov ecx, 0x30
mov rax, rdi
mul rcx
jo 0x140197413
mov r15, rax
lea r12, [rdi + 0x10]
mov rbx, rax
add rbx, r12
jb 0x140197413
movabs rax, 0x7ffffffffffffff1
cmp rbx, rax
jae 0x140197413
mov qword [rsp + 0x48], r13
test rbx, rbx
je 0x140196c1a
movzx eax, byte [0x140262330]
xor ecx, ecx
mov rdx, rbx
call fcn.140162ad0
mov r13, rax
test rax, rax
jne 0x140196c20
mov rcx, rbx
call fcn.140048280
mov r13d, 0x10
lea rsi, [rdi - 1]
mov rax, rdi
shr rax, 3
mov rcx, rdi
and rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rdi, 9
cmovb rcx, rsi
mov qword [rsp + 0x40], rcx
lea rbx, [r13 + r15]
mov rcx, rbx
mov dl, 0xff
mov r8, r12
call sub.VCRUNTIME140.dll_memset
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x140196dc8
lea rcx, [r15 + r13]
add rcx, 0xffffffffffffffd0
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x30], r14
mov rdi, qword [r14]
movdqa xmm0, xmmword [rdi]
pmovmskb r13d, xmm0
not r13d
lea rcx, [rdi - 0x30]
mov qword [rsp + 0x50], rcx
xor r14d, r14d
mov r15, rax
mov qword [rsp + 0x28], rdi
jmp 0x140196d08
lea ecx, [r13 - 1]
and ecx, r13d
dec r15
shr rax, 0x39
lea r8, [rdx - 0x10]
and r8, rsi
mov byte [rbx + rdx], al
mov byte [rbx + r8 + 0x10], al
shl r12, 4
lea rax, [r12 + r12*2]
mov r8, qword [rsp + 0x50]
sub r8, rax
shl rdx, 4
lea rax, [rdx + rdx*2]
mov rdx, qword [rsp + 0x58]
sub rdx, rax
movdqu xmm0, xmmword [r8]
movdqu xmm1, xmmword [r8 + 0x10]
movdqu xmm2, xmmword [r8 + 0x20]
movdqu xmmword [rdx + 0x20], xmm2
movdqu xmmword [rdx + 0x10], xmm1
movdqu xmmword [rdx], xmm0
mov r13d, ecx
test r15, r15
je 0x140196dbc
test r13w, r13w
jne 0x140196d2e
nop
movdqa xmm0, xmmword [rdi + 0x10]
add rdi, 0x10
pmovmskb r13d, xmm0
add r14, 0x10
cmp r13d, 0xffff
je 0x140196d10
not r13d
tzcnt r12d, r13d
add r12, r14
mov rax, r12
neg rax
lea rax, [rax + rax*2]
shl rax, 4
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rcx + rax - 0x28]
mov r8, qword [rcx + rax - 0x20]
movdqa xmmword [rsp + 0x70], xmm6
lea rcx, [rsp + 0x70]
call fcn.140012070
mov rcx, rsi
and rcx, rax
movdqu xmm0, xmmword [rbx + rcx]
pmovmskb edx, xmm0
test edx, edx
jne 0x140196d97
mov r8d, 0x10
nop dword [rax]
add rcx, r8
and rcx, rsi
movdqu xmm0, xmmword [rbx + rcx]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x140196d80
tzcnt edx, edx
add rdx, rcx
and rdx, rsi
cmp byte [rbx + rdx], 0
js 0x140196ca0
movdqa xmm0, xmmword [rbx]
pmovmskb ecx, xmm0
tzcnt edx, ecx
jmp 0x140196ca0
mov r14, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
jmp 0x140196dd2
mov rax, qword [r14]
mov qword [rsp + 0x28], rax
xor eax, eax
mov rcx, qword [rsp + 0x40]
sub rcx, rax
mov qword [r14], rbx
mov qword [r14 + 8], rsi
mov qword [r14 + 0x10], rcx
mov qword [r14 + 0x18], rax
test rbp, rbp
mov rax, qword [rsp + 0x48]
je 0x1401973ed
mov ecx, 0x30
mul rcx
add rbp, rax
cmp rbp, 0xffffffffffffffef
je 0x1401973ed
mov r8, qword [rsp + 0x28]
sub r8, rax
mov rcx, qword [0x140262270]
xor edx, edx
call fcn.140195ea0
jmp 0x1401973ed
movabs rdx, 0x1ffffffffffffffe
and rdx, rax
xor ecx, ecx
movdqa xmm0, xmmword [0x1401a3610]
nop
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rbx + rcx]
por xmm1, xmm0
movdqa xmmword [rbx + rcx], xmm1
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [rbx + rcx + 0x10]
por xmm1, xmm0
movdqa xmmword [rbx + rcx + 0x10], xmm1
add rcx, 0x20
add rdx, 0xfffffffffffffffe
jne 0x140196e40
test al, 1
je 0x140196e8a
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [rbx + rcx]
por xmm0, xmmword [0x1401a3610]
movdqa xmmword [rbx + rcx], xmm0
cmp r13, 0x10
jae 0x140196eab
lea rcx, [rbx + 0x10]
mov rdx, rbx
mov r8, r13
call sub.VCRUNTIME140.dll_memmove
test r13, r13
jne 0x140196eb5
xor eax, eax
jmp 0x1401973e4
movdqu xmm0, xmmword [rbx]
movdqu xmmword [rbx + r13], xmm0
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x30], r14
pshufd xmm0, xmm6, 0x44
pxor xmm0, xmmword [str.uespemosarenegylmodnarodsetybdet_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n_n]
pshufd xmm1, xmm6, 0xee
pxor xmm1, xmmword [0x1401a3630]
pshufd xmm2, xmm1, 0xee
movq qword [rsp + 0x58], xmm2
movq qword [rsp + 0x50], xmm0
movq qword [rsp + 0x48], xmm1
pshufd xmm2, xmm0, 0xee
movq qword [rsp + 0x40], xmm2
lea r12, [rbx - 0x2e]
xor r14d, r14d
mov qword [rsp + 0x68], r12
jmp 0x140196f37
shr rdx, 0x39
lea rax, [r14 - 0x10]
and rax, rbp
mov byte [rbx + r14], dl
mov byte [rbx + rax + 0x10], dl
lea rax, [r14 + 1]
add r12, 0xffffffffffffffd0
cmp r14, rbp
mov r14, rax
je 0x1401973da
cmp byte [rbx + r14], 0x80
jne 0x140196f23
mov rax, r14
shl rax, 4
lea rax, [rax + rax*2]
mov rsi, rbx
sub rsi, rax
neg rax
add rax, rbx
add rax, 0xffffffffffffffd0
mov qword [rsp + 0x28], rax
mov rax, r14
neg rax
lea rdi, [rax + rax*2]
shl rdi, 4
add rdi, rbx
jmp 0x140196fba
movups xmm2, xmmword [rsi - 0x30]
movups xmm3, xmmword [r8 - 0x30]
movups xmmword [rsi - 0x30], xmm3
movups xmmword [r8 - 0x30], xmm2
movups xmm2, xmmword [rsi - 0x20]
movups xmm3, xmmword [r8 - 0x20]
movups xmmword [rsi - 0x20], xmm3
movups xmmword [r8 - 0x20], xmm2
movdqu xmm2, xmmword [rsi - 0x10]
movdqu xmm3, xmmword [r8 - 0x10]
movdqu xmmword [rsi - 0x10], xmm3
movdqu xmmword [r8 - 0x10], xmm2
mov r15, qword [rdi - 0x28]
mov r8, qword [rdi - 0x20]
mov rcx, r8
and rcx, 0xfffffffffffffff8
je 0x140197080
mov rax, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
mov r10, qword [rsp + 0x58]
xor edx, edx
mov r9, qword [rsp + 0x50]
nop word cs:[rax + rax]
add r9, r11
rol r11, 0xd
mov r13, qword [r15 + rdx]
xor r11, r9
rol r9, 0x20
xor r10, r13
add rax, r10
rol r10, 0x10
xor r10, rax
add r9, r10
rol r10, 0x15
add rax, r11
rol r11, 0x11
xor r11, rax
rol rax, 0x20
xor r10, r9
xor r9, r13
add rdx, 8
cmp rdx, rcx
jb 0x140196ff0
movq xmm3, r10
movq xmm2, r11
punpcklqdq xmm2, xmm3
movq xmm4, rax
movq xmm3, r9
punpcklqdq xmm3, xmm4
mov r11d, r8d
and r11d, 7
cmp r11d, 4
jb 0x140197097
mov r9d, dword [r15 + rdx]
mov eax, 4
mov rcx, rax
or rcx, 1
cmp rcx, r11
jb 0x1401970a8
jmp 0x1401970c2
movdqa xmm2, xmm1
movdqa xmm3, xmm0
xor edx, edx
mov r11d, r8d
and r11d, 7
cmp r11d, 4
jae 0x14019705c
xor r9d, r9d
xor eax, eax
mov rcx, rax
or rcx, 1
cmp rcx, r11
jae 0x1401970c2
lea rcx, [r15 + rax]
movzx r10d, word [rdx + rcx]
lea ecx, [rax*8]
shl r10, cl
or r9, r10
or rax, 2
cmp rax, r11
jae 0x1401970e0
add rdx, rax
movzx edx, byte [r15 + rdx]
shl eax, 3
mov ecx, eax
shl rdx, cl
or r9, rdx
jmp 0x1401970e9
test r11, r11
je 0x14019717b
lea ecx, [r11*8]
mov edx, 0xff
shl rdx, cl
or rdx, r9
cmp r11, 7
jne 0x140197180
pshufd xmm4, xmm2, 0xee
movq rcx, xmm4
xor rcx, rdx
movq r9, xmm2
paddq xmm2, xmm3
movq rax, xmm2
rol r9, 0xd
xor r9, rax
rol rax, 0x20
pshufd xmm2, xmm3, 0xee
movq r10, xmm2
add r10, rcx
rol rcx, 0x10
xor rcx, r10
add rax, rcx
rol rcx, 0x15
add r10, r9
rol r9, 0x11
xor rcx, rax
xor r9, r10
movq xmm3, rcx
movq xmm2, r9
punpcklqdq xmm2, xmm3
rol r10, 0x20
xor rax, rdx
movq xmm4, r10
movq xmm3, rax
punpcklqdq xmm3, xmm4
xor edx, edx
jmp 0x140197180
mov edx, 0xff
pshufd xmm4, xmm3, 0xee
movq rax, xmm4
movq rcx, xmm2
pshufd xmm4, xmm2, 0xee
movq r15, xmm4
shl r8, 0x38
movabs r9, 0x100000000000000
add r8, r9
or r8, rdx
paddq xmm2, xmm3
rol rcx, 0xd
movq rdx, xmm2
xor rcx, rdx
rol rdx, 0x20
xor r15, r8
add rax, r15
rol r15, 0x10
xor r15, rax
add rdx, r15
rol r15, 0x15
add rax, rcx
rol rcx, 0x11
xor r15, rdx
xor rcx, rax
rol rax, 0x20
xor rdx, r8
add rdx, rcx
rol rcx, 0xd
xor rcx, rdx
rol rdx, 0x20
xor rax, 0xff
add rax, r15
rol r15, 0x10
xor r15, rax
add rdx, r15
rol r15, 0x15
add rax, rcx
rol rcx, 0x11
xor rcx, rax
rol rax, 0x20
xor r15, rdx
add rdx, rcx
rol rcx, 0xd
xor rcx, rdx
rol rdx, 0x20
add rax, r15
rol r15, 0x10
xor r15, rax
add rdx, r15
rol r15, 0x15
add rax, rcx
rol rcx, 0x11
xor rcx, rax
rol rax, 0x20
xor r15, rdx
add rdx, rcx
rol rcx, 0xd
add rax, r15
rol r15, 0x10
xor r15, rax
rol r15, 0x15
xor rcx, rdx
add rax, rcx
rol rcx, 0x11
mov rdx, rax
rol rdx, 0x20
xor rdx, rcx
xor rdx, r15
xor rdx, rax
mov rax, rbp
and rax, rdx
movdqu xmm2, xmmword [rbx + rax]
pmovmskb ecx, xmm2
mov r8, rax
test ecx, ecx
jne 0x1401972b8
mov r9d, 0x10
mov r8, rax
nop dword [rax]
add r8, r9
and r8, rbp
movdqu xmm2, xmmword [rbx + r8]
pmovmskb ecx, xmm2
add r9, 0x10
test ecx, ecx
je 0x1401972a0
tzcnt ecx, ecx
add rcx, r8
and rcx, rbp
cmp byte [rbx + rcx], 0
js 0x1401972d4
movdqa xmm2, xmmword [rbx]
pmovmskb ecx, xmm2
tzcnt ecx, ecx
mov r8, r14
sub r8, rax
mov r9, rcx
sub r9, rax
xor r9, r8
and r9, rbp
cmp r9, 0x10
jb 0x140196f10
mov rax, rcx
shl rax, 4
lea rax, [rax + rax*2]
mov r8, rbx
sub r8, rax
lea r9, [r8 - 0x30]
movzx r10d, byte [rbx + rcx]
shr rdx, 0x39
lea r11, [rcx - 0x10]
and r11, rbp
mov byte [rbx + rcx], dl
mov byte [rbx + r11 + 0x10], dl
cmp r10b, 0xff
je 0x1401973a0
cmp qword [rsp + 0x28], r8
jae 0x140196f80
cmp r9, rsi
jae 0x140196f80
neg rax
add rax, qword [rsp + 0x68]
xor ecx, ecx
nop word cs:[rax + rax]
movzx edx, byte [r12 + rcx - 2]
movzx r8d, byte [rax + rcx - 2]
mov byte [r12 + rcx - 2], r8b
mov byte [rax + rcx - 2], dl
movzx edx, byte [r12 + rcx - 1]
movzx r8d, byte [rax + rcx - 1]
mov byte [r12 + rcx - 1], r8b
mov byte [rax + rcx - 1], dl
movzx edx, byte [r12 + rcx]
movzx r8d, byte [rax + rcx]
mov byte [r12 + rcx], r8b
mov byte [rax + rcx], dl
add rcx, 3
cmp rcx, 0x30
jne 0x140197350
jmp 0x140196fba
lea rax, [r14 - 0x10]
and rax, rbp
mov byte [rbx + r14], 0xff
mov byte [rbx + rax + 0x10], 0xff
mov rax, qword [rsp + 0x28]
movdqu xmm2, xmmword [rax]
movdqu xmm3, xmmword [rax + 0x10]
movdqu xmm4, xmmword [rax + 0x20]
movdqu xmmword [r9 + 0x20], xmm4
movdqu xmmword [r9 + 0x10], xmm3
movdqu xmmword [r9], xmm2
jmp 0x140196f23
mov r14, qword [rsp + 0x30]
mov rax, qword [rsp + 0x60]
sub rax, qword [rsp + 0x38]
mov qword [r14 + 0x10], rax
movabs rax, 0x8000000000000001
movaps xmm6, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.140048240
int3