Function at 0x140117c50
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
movdqa xmmword [rsp + 0x70], xmm6
mov rsi, qword [rcx + 0x18]
cmp rsi, 0xffffffffffffffff
je 0x140118679
mov rbp, rcx
mov r13, qword [rcx + 8]
lea rdi, [r13 + 1]
mov rax, rdi
shr rax, 3
mov r8, rdi
and r8, 0xfffffffffffffff8
sub r8, rax
cmp r13, 8
cmovb r8, r13
movdqa xmm6, xmmword [rdx]
mov rax, r8
shr rax, 1
cmp rsi, rax
mov qword [rsp + 0x30], rsi
jae 0x140117cdd
mov r12, qword [rbp]
mov rcx, rdi
shr rcx, 4
xor eax, eax
test dil, 0xf
setne al
add rax, rcx
je 0x140117fe0
cmp rax, 1
jne 0x140117f77
xor ecx, ecx
jmp 0x140117fc8
lea rax, [rsi + 1]
inc r8
cmp rax, r8
cmova r8, rax
cmp r8, 8
jae 0x140117d04
xor eax, eax
cmp r8, 4
setae al
lea r14, [rax*4 + 4]
jmp 0x140117d5b
mov rax, r8
shr rax, 0x3d
jne 0x140118679
shl r8, 3
movabs rcx, 0x2492492492492493
mov rax, r8
mul rcx
sub r8, rdx
shr r8, 1
add r8, rdx
shr r8, 2
dec r8
bsr rcx, r8
not ecx
mov r14, 0xffffffffffffffff
shr r14, cl
movabs rax, 0x7fffffffffffffe
cmp r14, rax
ja 0x140118679
inc r14
mov r12, r14
shl r12, 5
lea rbx, [r14 + 0x10]
mov r15, r12
add r15, rbx
jb 0x140118679
movabs rax, 0x7ffffffffffffff1
cmp r15, rax
jae 0x140118679
mov qword [rsp + 0x40], rdi
movzx eax, byte [0x14017dea0]
xor ecx, ecx
mov rdx, r15
call fcn.1400f8170
test rax, rax
je 0x14011867e
mov rdi, rax
lea rsi, [r14 - 1]
mov rax, r14
shr rax, 3
mov rcx, r14
and rcx, 0xfffffffffffffff8
sub rcx, rax
cmp r14, 9
cmovb rcx, rsi
mov qword [rsp + 0x48], rcx
add rdi, r12
mov rcx, rdi
mov dl, 0xff
mov r8, rbx
call sub.VCRUNTIME140.dll_memset
mov r15, qword [rsp + 0x30]
test r15, r15
je 0x140117f18
mov qword [rsp + 0x38], rbp
mov rbx, qword [rbp]
movdqa xmm0, xmmword [rbx]
pmovmskb ebp, xmm0
not ebp
lea rax, [rbx - 0x20]
mov qword [rsp + 0x50], rax
xor r14d, r14d
mov qword [rsp + 0x28], rbx
jmp 0x140117e61
lea ecx, [rbp - 1]
and ecx, ebp
dec r15
shr rax, 0x39
lea r8, [rdx - 0x10]
and r8, rsi
mov byte [rdi + rdx], al
mov byte [rdi + r8 + 0x10], al
mov rax, qword [rsp + 0x28]
sub rax, r12
shl rdx, 5
mov r8, rdi
sub r8, rdx
neg rdx
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rax - 0x10]
movdqu xmmword [rdi + rdx - 0x20], xmm0
movdqu xmmword [r8 - 0x10], xmm1
mov ebp, ecx
test r15, r15
je 0x140117f0c
test bp, bp
jne 0x140117e8b
nop word cs:[rax + rax]
movdqa xmm0, xmmword [rbx + 0x10]
add rbx, 0x10
pmovmskb ebp, xmm0
add r14, 0x10
cmp ebp, 0xffff
je 0x140117e70
not ebp
tzcnt r12d, ebp
add r12, r14
shl r12, 5
mov rax, qword [rsp + 0x50]
sub rax, r12
mov rdx, qword [rax + 8]
mov r8, qword [rax + 0x10]
movdqa xmmword [rsp + 0x60], xmm6
lea rcx, [rsp + 0x60]
call fcn.14000f7e0
mov rcx, rax
and rcx, rsi
movdqu xmm0, xmmword [rdi + rcx]
pmovmskb edx, xmm0
test edx, edx
jne 0x140117ee7
mov r8d, 0x10
add rcx, r8
and rcx, rsi
movdqu xmm0, xmmword [rdi + rcx]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x140117ed0
tzcnt edx, edx
add rdx, rcx
and rdx, rsi
cmp byte [rdi + rdx], 0
js 0x140117e10
movdqa xmm0, xmmword [rdi]
pmovmskb ecx, xmm0
tzcnt edx, ecx
jmp 0x140117e10
mov rbp, qword [rsp + 0x38]
mov r15, qword [rsp + 0x30]
jmp 0x140117f21
mov rax, qword [rbp]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x48]
sub rax, r15
mov qword [rbp], rdi
mov qword [rbp + 8], rsi
mov qword [rbp + 0x10], rax
test r13, r13
je 0x140118016
mov rax, qword [rsp + 0x40]
shl rax, 5
mov r8, qword [rsp + 0x28]
sub r8, rax
mov rcx, qword [0x14017de28]
xor edx, edx
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_HeapFree]
movabs rdx, 0x1ffffffffffffffe
and rdx, rax
xor ecx, ecx
movdqa xmm0, xmmword [0x140121680]
nop
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r12 + rcx]
por xmm1, xmm0
movdqa xmmword [r12 + rcx], xmm1
pxor xmm1, xmm1
pcmpgtb xmm1, xmmword [r12 + rcx + 0x10]
por xmm1, xmm0
movdqa xmmword [r12 + rcx + 0x10], xmm1
add rcx, 0x20
add rdx, 0xfffffffffffffffe
jne 0x140117f90
test al, 1
je 0x140117fe0
pxor xmm0, xmm0
pcmpgtb xmm0, xmmword [r12 + rcx]
por xmm0, xmmword [0x140121680]
movdqa xmmword [r12 + rcx], xmm0
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x38], rbp
cmp rdi, 0x10
jae 0x14011802f
lea rcx, [r12 + 0x10]
mov rdx, r12
mov r8, rdi
call sub.VCRUNTIME140.dll_memmove
test rdi, rdi
jne 0x14011803b
mov rcx, qword [rsp + 0x58]
sub rcx, rsi
mov rax, qword [rsp + 0x38]
mov qword [rax + 0x10], rcx
movaps xmm6, xmmword [rsp + 0x70]
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movdqu xmm0, xmmword [r12]
movdqu xmmword [r12 + rdi], xmm0
lea rax, [r12 - 0x20]
mov qword [rsp + 0x40], rax
pshufd xmm0, xmm6, 0x44
pxor xmm0, xmmword [str.uespemosarenegylmodnarodsetybdet]
pshufd xmm1, xmm6, 0xee
pxor xmm1, xmmword [0x1401216a0]
pshufd xmm2, xmm1, 0xee
movq qword [rsp + 0x28], xmm2
movq qword [rsp + 0x50], xmm0
movq qword [rsp + 0x48], xmm1
pshufd xmm2, xmm0, 0xee
movq r11, xmm2
xor ecx, ecx
xor ebp, ebp
jmp 0x1401180bb
shr rdi, 0x39
lea rax, [rbp - 0x10]
and rax, r13
mov byte [r12 + rbp], dil
mov byte [r12 + rax + 0x10], dil
mov rsi, qword [rsp + 0x30]
xor ecx, ecx
lea rax, [rbp + 1]
cmp rbp, r13
mov rbp, rax
je 0x140118005
cmp cl, byte [r12 + rbp]
jno 0x1401180ab
mov rax, rbp
shl rax, 5
mov rbx, r12
sub rbx, rax
add rbx, 0xffffffffffffffe0
mov rdx, qword [rsp + 0x40]
sub rdx, rax
nop word [rax + rax]
mov rsi, qword [rdx + 8]
mov r15, qword [rdx + 0x10]
mov rcx, r15
and rcx, 0xfffffffffffffff8
je 0x1401181a0
mov rax, r11
mov r14, qword [rsp + 0x48]
mov r9, qword [rsp + 0x28]
xor edi, edi
mov r8, qword [rsp + 0x50]
nop dword [rax]
mov r10, qword [rsi + rdi]
xor r9, r10
add r8, r14
rol r14, 0xd
add rax, r9
xor r14, r8
rol r9, 0x10
xor r9, rax
rol r8, 0x20
add rax, r14
add r8, r9
rol r14, 0x11
xor r14, rax
rol r9, 0x15
rol rax, 0x20
xor r9, r8
xor r8, r10
add rdi, 8
cmp rdi, rcx
jb 0x140118110
movq xmm3, r9
movq xmm2, r14
punpcklqdq xmm2, xmm3
movq xmm4, rax
movq xmm3, r8
punpcklqdq xmm3, xmm4
mov r14d, r15d
and r14d, 7
cmp r14d, 4
jb 0x1401181b7
mov r8d, dword [rsi + rdi]
mov eax, 4
mov ecx, eax
or ecx, 1
cmp ecx, r14d
jb 0x1401181c6
jmp 0x1401181e0
movdqa xmm2, xmm1
movdqa xmm3, xmm0
xor edi, edi
mov r14d, r15d
and r14d, 7
cmp r14d, 4
jae 0x14011817c
xor r8d, r8d
xor eax, eax
mov ecx, eax
or ecx, 1
cmp ecx, r14d
jae 0x1401181e0
lea rcx, [rsi + rax]
movzx r9d, word [rdi + rcx]
lea ecx, [rax*8]
shl r9, cl
or r8, r9
or rax, 2
cmp eax, r14d
jae 0x140118200
add rdi, rax
movzx r9d, byte [rsi + rdi]
shl eax, 3
mov ecx, eax
shl r9, cl
or r8, r9
jmp 0x140118209
test r14, r14
je 0x14011829b
lea ecx, [r14*8]
mov edi, 0xff
shl rdi, cl
or rdi, r8
cmp r14, 7
jne 0x1401182a0
pshufd xmm4, xmm2, 0xee
movq rcx, xmm4
xor rcx, rdi
movq r9, xmm2
paddq xmm2, xmm3
movq rax, xmm2
pshufd xmm2, xmm3, 0xee
movq r8, xmm2
add r8, rcx
rol r9, 0xd
xor r9, rax
rol rcx, 0x10
xor rcx, r8
rol rax, 0x20
add r8, r9
add rax, rcx
rol r9, 0x11
rol rcx, 0x15
xor r9, r8
xor rcx, rax
movq xmm3, rcx
movq xmm2, r9
punpcklqdq xmm2, xmm3
rol r8, 0x20
xor rax, rdi
movq xmm4, r8
movq xmm3, rax
punpcklqdq xmm3, xmm4
xor edi, edi
jmp 0x1401182a0
mov edi, 0xff
pshufd xmm4, xmm3, 0xee
movq rax, xmm4
movq rcx, xmm2
pshufd xmm4, xmm2, 0xee
movq rsi, xmm4
shl r15, 0x38
movabs r8, 0x100000000000000
add r15, r8
or r15, rdi
xor rsi, r15
paddq xmm2, xmm3
movq rdi, xmm2
rol rcx, 0xd
add rax, rsi
xor rcx, rdi
rol rsi, 0x10
xor rsi, rax
rol rdi, 0x20
add rax, rcx
add rdi, rsi
rol rcx, 0x11
xor rcx, rax
rol rsi, 0x15
rol rax, 0x20
xor rsi, rdi
xor rdi, r15
xor rax, 0xff
add rdi, rcx
add rax, rsi
rol rcx, 0xd
xor rcx, rdi
rol rsi, 0x10
rol rdi, 0x20
xor rsi, rax
add rax, rcx
rol rcx, 0x11
add rdi, rsi
xor rcx, rax
rol rsi, 0x15
xor rsi, rdi
rol rax, 0x20
add rdi, rcx
add rax, rsi
rol rcx, 0xd
xor rcx, rdi
rol rsi, 0x10
rol rdi, 0x20
xor rsi, rax
add rax, rcx
rol rcx, 0x11
add rdi, rsi
xor rcx, rax
rol rsi, 0x15
xor rsi, rdi
rol rax, 0x20
add rdi, rcx
add rax, rsi
rol rcx, 0xd
xor rcx, rdi
rol rsi, 0x10
xor rsi, rax
add rax, rcx
rol rcx, 0x11
rol rsi, 0x15
mov rdi, rax
rol rdi, 0x20
xor rdi, rcx
xor rdi, rsi
xor rdi, rax
mov rax, rdi
and rax, r13
movdqu xmm2, xmmword [r12 + rax]
pmovmskb ecx, xmm2
mov r8, rax
test ecx, ecx
jne 0x1401183d8
mov r9d, 0x10
mov r8, rax
nop
add r8, r9
and r8, r13
movdqu xmm2, xmmword [r12 + r8]
pmovmskb ecx, xmm2
add r9, 0x10
test ecx, ecx
je 0x1401183c0
tzcnt ecx, ecx
add rcx, r8
and rcx, r13
cmp byte [r12 + rcx], 0
js 0x1401183f7
movdqa xmm2, xmmword [r12]
pmovmskb ecx, xmm2
tzcnt ecx, ecx
mov r8, rbp
sub r8, rax
mov r9, rcx
sub r9, rax
xor r9, r8
and r9, r13
cmp r9, 0x10
jb 0x140118090
mov rax, rcx
shl rax, 5
neg rax
add rax, r12
add rax, 0xffffffffffffffe0
movzx r8d, byte [r12 + rcx]
shr rdi, 0x39
lea r9, [rcx - 0x10]
and r9, r13
mov byte [r12 + rcx], dil
mov byte [r12 + r9 + 0x10], dil
cmp r8b, 0xff
je 0x140118650
movzx ecx, byte [rbx]
movzx r8d, byte [rax]
mov byte [rbx], r8b
mov byte [rax], cl
movzx ecx, byte [rbx + 1]
movzx r8d, byte [rax + 1]
mov byte [rbx + 1], r8b
mov byte [rax + 1], cl
movzx ecx, byte [rbx + 2]
movzx r8d, byte [rax + 2]
mov byte [rbx + 2], r8b
mov byte [rax + 2], cl
movzx ecx, byte [rbx + 3]
movzx r8d, byte [rax + 3]
mov byte [rbx + 3], r8b
mov byte [rax + 3], cl
movzx ecx, byte [rbx + 4]
movzx r8d, byte [rax + 4]
mov byte [rbx + 4], r8b
mov byte [rax + 4], cl
movzx ecx, byte [rbx + 5]
movzx r8d, byte [rax + 5]
mov byte [rbx + 5], r8b
mov byte [rax + 5], cl
movzx ecx, byte [rbx + 6]
movzx r8d, byte [rax + 6]
mov byte [rbx + 6], r8b
mov byte [rax + 6], cl
movzx ecx, byte [rbx + 7]
movzx r8d, byte [rax + 7]
mov byte [rbx + 7], r8b
mov byte [rax + 7], cl
movzx ecx, byte [rbx + 8]
movzx r8d, byte [rax + 8]
mov byte [rbx + 8], r8b
mov byte [rax + 8], cl
movzx ecx, byte [rbx + 9]
movzx r8d, byte [rax + 9]
mov byte [rbx + 9], r8b
mov byte [rax + 9], cl
movzx ecx, byte [rbx + 0xa]
movzx r8d, byte [rax + 0xa]
mov byte [rbx + 0xa], r8b
mov byte [rax + 0xa], cl
movzx ecx, byte [rbx + 0xb]
movzx r8d, byte [rax + 0xb]
mov byte [rbx + 0xb], r8b
mov byte [rax + 0xb], cl
movzx ecx, byte [rbx + 0xc]
movzx r8d, byte [rax + 0xc]
mov byte [rbx + 0xc], r8b
mov byte [rax + 0xc], cl
movzx ecx, byte [rbx + 0xd]
movzx r8d, byte [rax + 0xd]
mov byte [rbx + 0xd], r8b
mov byte [rax + 0xd], cl
movzx ecx, byte [rbx + 0xe]
movzx r8d, byte [rax + 0xe]
mov byte [rbx + 0xe], r8b
mov byte [rax + 0xe], cl
movzx ecx, byte [rbx + 0xf]
movzx r8d, byte [rax + 0xf]
mov byte [rbx + 0xf], r8b
mov byte [rax + 0xf], cl
movzx ecx, byte [rbx + 0x10]
movzx r8d, byte [rax + 0x10]
mov byte [rbx + 0x10], r8b
mov byte [rax + 0x10], cl
movzx ecx, byte [rbx + 0x11]
movzx r8d, byte [rax + 0x11]
mov byte [rbx + 0x11], r8b
mov byte [rax + 0x11], cl
movzx ecx, byte [rbx + 0x12]
movzx r8d, byte [rax + 0x12]
mov byte [rbx + 0x12], r8b
mov byte [rax + 0x12], cl
movzx ecx, byte [rbx + 0x13]
movzx r8d, byte [rax + 0x13]
mov byte [rbx + 0x13], r8b
mov byte [rax + 0x13], cl
movzx ecx, byte [rbx + 0x14]
movzx r8d, byte [rax + 0x14]
mov byte [rbx + 0x14], r8b
mov byte [rax + 0x14], cl
movzx ecx, byte [rbx + 0x15]
movzx r8d, byte [rax + 0x15]
mov byte [rbx + 0x15], r8b
mov byte [rax + 0x15], cl
movzx ecx, byte [rbx + 0x16]
movzx r8d, byte [rax + 0x16]
mov byte [rbx + 0x16], r8b
mov byte [rax + 0x16], cl
movzx ecx, byte [rbx + 0x17]
movzx r8d, byte [rax + 0x17]
mov byte [rbx + 0x17], r8b
mov byte [rax + 0x17], cl
movzx ecx, byte [rbx + 0x18]
movzx r8d, byte [rax + 0x18]
mov byte [rbx + 0x18], r8b
mov byte [rax + 0x18], cl
movzx ecx, byte [rbx + 0x19]
movzx r8d, byte [rax + 0x19]
mov byte [rbx + 0x19], r8b
mov byte [rax + 0x19], cl
movzx ecx, byte [rbx + 0x1a]
movzx r8d, byte [rax + 0x1a]
mov byte [rbx + 0x1a], r8b
mov byte [rax + 0x1a], cl
movzx ecx, byte [rbx + 0x1b]
movzx r8d, byte [rax + 0x1b]
mov byte [rbx + 0x1b], r8b
mov byte [rax + 0x1b], cl
movzx ecx, byte [rbx + 0x1c]
movzx r8d, byte [rax + 0x1c]
mov byte [rbx + 0x1c], r8b
mov byte [rax + 0x1c], cl
movzx ecx, byte [rbx + 0x1d]
movzx r8d, byte [rax + 0x1d]
mov byte [rbx + 0x1d], r8b
mov byte [rax + 0x1d], cl
movzx ecx, byte [rbx + 0x1e]
movzx r8d, byte [rax + 0x1e]
mov byte [rbx + 0x1e], r8b
mov byte [rax + 0x1e], cl
movzx ecx, byte [rbx + 0x1f]
movzx r8d, byte [rax + 0x1f]
mov byte [rbx + 0x1f], r8b
mov byte [rax + 0x1f], cl
jmp 0x1401180e0
lea rcx, [rbp - 0x10]
and rcx, r13
mov byte [r12 + rbp], 0xff
mov byte [r12 + rcx + 0x10], 0xff
movdqu xmm2, xmmword [rbx]
movdqu xmm3, xmmword [rbx + 0x10]
movdqu xmmword [rax + 0x10], xmm3
movdqu xmmword [rax], xmm2
jmp 0x1401180a4
call fcn.14002c8b0
mov rcx, r15
call fcn.14002c8f0
int3