Function at 0x14000e8f7
Capabilities:
Encode data using xor

Disassembly:
push rbx
push r14
push r15
sub rsp, 0x170
mov r14, rdx
movaps xmm0, xmmword [0x14002c620]
mov rax, rcx
lea rdx, [0x140002000]
mov ecx, pe_nt_image_headers64
movaps xmmword [rsp + rcx + 0x10], xmm0
movaps xmmword [rsp + rcx], xmm0
movaps xmmword [rsp + rcx - 0x10], xmm0
movaps xmmword [rsp + rcx - 0x20], xmm0
sub rcx, 0x40
jne 0x14000e895
xor ecx, ecx
movzx r10d, byte [rdx + rcx*2 + 0x2a5c0]
lea ebx, [rcx + rcx]
movzx r15d, byte [rdx + rcx*2 + 0x2a5c1]
lea r11d, [rcx + rcx + 1]
inc rcx
mov byte [rsp + r10 + 0x20], bl
cmp rcx, 0x20
mov byte [rsp + r15 + 0x20], r11b
jb 0x14000e8b0
mov byte [rsp + 0x5d], 0
xor ecx, ecx
test r9, r9
jbe 0x14000eb9b
cmp r9, 0x10
jb 0x14000f4b0
mov rbx, r9
xor ecx, ecx
pxor xmm3, xmm3
pcmpeqd xmm4, xmm4
movdqa xmm2, xmm3
and rbx, 0xfffffffffffffff0
movdqa xmm5, xmm2
xor edx, edx
movdqa xmm1, xmmword [0x14002c610]
movdqa xmm0, xmm5
movaps xmmword [rsp + 0x160], xmm6
movaps xmmword [rsp + 0x150], xmm7
movaps xmmword [rsp + 0x140], xmm8
movaps xmmword [rsp + 0x130], xmm9
movaps xmmword [rsp + 0x120], xmm10
movzx r10d, byte [rdx + r14]
add ecx, 0x10
movzx r15d, byte [rdx + r14 + 1]
movzx r11d, byte [rsp + r10 + 0x20]
movzx r10d, byte [rsp + r15 + 0x20]
movd xmm8, r11d
movzx r11d, byte [rdx + r14 + 2]
movd xmm9, r10d
movzx r10d, byte [rdx + r14 + 3]
punpcklbw xmm8, xmm9
movzx r15d, byte [rsp + r11 + 0x20]
movzx r11d, byte [rsp + r10 + 0x20]
movd xmm7, r15d
movzx r15d, byte [rdx + r14 + 4]
movd xmm10, r11d
movzx r11d, byte [rdx + r14 + 5]
punpcklbw xmm7, xmm10
movzx r10d, byte [rsp + r15 + 0x20]
movzx r15d, byte [rsp + r11 + 0x20]
punpcklwd xmm8, xmm7
movd xmm10, r10d
movzx r10d, byte [rdx + r14 + 6]
movd xmm6, r15d
movzx r15d, byte [rdx + r14 + 7]
punpcklbw xmm10, xmm6
movzx r11d, byte [rsp + r10 + 0x20]
movzx r10d, byte [rsp + r15 + 0x20]
movd xmm7, r11d
movzx r11d, byte [rdx + r14 + 8]
movd xmm9, r10d
movzx r10d, byte [rdx + r14 + 9]
punpcklbw xmm7, xmm9
movzx r15d, byte [rsp + r11 + 0x20]
movzx r11d, byte [rsp + r10 + 0x20]
punpcklwd xmm10, xmm7
movd xmm7, r15d
movzx r15d, byte [rdx + r14 + 0xa]
movd xmm6, r11d
movzx r11d, byte [rdx + r14 + 0xb]
punpcklqdq xmm8, xmm10
movzx r10d, byte [rsp + r15 + 0x20]
movzx r15d, byte [rsp + r11 + 0x20]
punpcklbw xmm7, xmm6
movd xmm10, r10d
movzx r10d, byte [rdx + r14 + 0xc]
movd xmm9, r15d
movzx r15d, byte [rdx + r14 + 0xd]
punpcklbw xmm10, xmm9
movzx r11d, byte [rsp + r10 + 0x20]
movzx r10d, byte [rsp + r15 + 0x20]
punpcklwd xmm7, xmm10
movd xmm6, r11d
movzx r11d, byte [rdx + r14 + 0xe]
movd xmm9, r10d
movzx r10d, byte [rdx + r14 + 0xf]
add rdx, 0x10
punpcklbw xmm6, xmm9
cmp rcx, rbx
movzx r15d, byte [rsp + r11 + 0x20]
movzx r11d, byte [rsp + r10 + 0x20]
movd xmm9, r15d
movd xmm10, r11d
punpcklbw xmm9, xmm10
punpcklwd xmm6, xmm9
punpcklqdq xmm7, xmm6
shufps xmm8, xmm7, 0x88
pcmpeqb xmm8, xmm1
movaps xmm7, xmm8
movaps xmm6, xmm8
movaps xmm9, xmm8
punpcklbw xmm7, xmm8
psrldq xmm6, 4
psrldq xmm9, 8
psrldq xmm8, 0xc
punpcklbw xmm6, xmm6
punpcklbw xmm9, xmm9
punpcklbw xmm8, xmm8
punpcklwd xmm7, xmm7
punpcklwd xmm6, xmm6
pxor xmm7, xmm4
punpcklwd xmm9, xmm9
pxor xmm6, xmm4
punpcklwd xmm8, xmm8
pxor xmm9, xmm4
pxor xmm8, xmm4
psubd xmm3, xmm7
psubd xmm2, xmm6
psubd xmm5, xmm9
psubd xmm0, xmm8
jb 0x14000e949
paddd xmm3, xmm2
paddd xmm3, xmm5
paddd xmm3, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 8
paddd xmm3, xmm0
movdqa xmm1, xmm3
psrlq xmm1, 0x20
paddd xmm3, xmm1
movaps xmm6, xmmword [rsp + 0x160]
movaps xmm7, xmmword [rsp + 0x150]
movaps xmm8, xmmword [rsp + 0x140]
movaps xmm9, xmmword [rsp + 0x130]
movaps xmm10, xmmword [rsp + 0x120]
movd ecx, xmm3
movsxd rdx, ebx
mov r10d, ebx
mov ebx, ebx
cmp rbx, r9
jae 0x14000eb9b
movzx ebx, byte [rdx + r14]
inc r10d
lea r11d, [rcx + 1]
inc rdx
cmp byte [rsp + rbx + 0x20], 0x80
cmovne ecx, r11d
cmp r10, r9
jb 0x14000eb7e
and ecx, 0x80000003
jge 0x14000ebab
sub ecx, 1
or ecx, 0xfffffffc
inc ecx
test ecx, ecx
jne 0x14000f4a1
mov r10, rax
test rax, rax
je 0x14000f4a1
xor r11d, r11d
test r9, r9
jbe 0x14000f469
mov rbx, r9
xor ecx, ecx
shr rbx, 4
mov r15d, 1
xor edx, edx
test rbx, rbx
jbe 0x14000f3de
mov qword [rsp + 0x128], rsi
mov qword [rsp + 0x120], rdi
movsxd rsi, edx
movzx edi, byte [rsi + r14]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000ec73
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000ec73
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 1]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000ecef
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000ecef
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 2]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000ed6b
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000ed6b
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 3]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000ede7
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000ede7
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 4]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000ee63
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000ee63
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 5]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000eedf
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000eedf
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 6]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000ef5b
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000ef5b
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 7]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000efd7
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000efd7
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 8]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000f053
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000f053
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 9]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000f0cf
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000f0cf
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 0xa]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000f14b
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000f14b
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 0xb]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000f1c7
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000f1c7
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 0xc]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000f243
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000f243
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 0xd]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000f2bf
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000f2bf
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx edi, byte [rsi + r14 + 0xe]
mov r15b, byte [rsp + rdi + 0x20]
cmp r15b, 0x80
je 0x14000f33b
mov byte [rsp + r11 + 0x130], dil
mov byte [rsp + r11 + 0x134], r15b
inc r11
cmp r11, 4
jne 0x14000f33b
mov dil, byte [rsp + 0x135]
mov r11b, dil
mov r15b, byte [rsp + 0x134]
shl r15b, 2
shr r11b, 4
shl dil, 4
or r15b, r11b
mov byte [r10], r15b
mov r15b, byte [rsp + 0x136]
mov r11b, r15b
shl r15b, 6
shr r11b, 2
or r15b, byte [rsp + 0x137]
or dil, r11b
mov byte [r10 + 1], dil
xor r11d, r11d
mov byte [r10 + 2], r15b
add r10, 3
movzx esi, byte [rsi + r14 + 0xf]
mov dil, byte [rsp + rsi + 0x20]
cmp dil, 0x80
je 0x14000f3b7
mov byte [rsp + r11 + 0x130], sil
mov byte [rsp + r11 + 0x134], dil
inc r11
cmp r11, 4
jne 0x14000f3b7
mov sil, byte [rsp + 0x135]
mov dil, sil
mov r11b, byte [rsp + 0x134]
shl r11b, 2
shr dil, 4
shl sil, 4
or r11b, dil
mov dil, byte [rsp + 0x136]
mov r15b, dil
shl dil, 6
shr r15b, 2
or dil, byte [rsp + 0x137]
or sil, r15b
mov byte [r10], r11b
xor r11d, r11d
mov byte [r10 + 1], sil
mov byte [r10 + 2], dil
add r10, 3
inc ecx
add edx, 0x10
cmp rcx, rbx
jb 0x14000ebf5
shl ecx, 4
movsxd r15, ecx
mov rsi, qword [rsp + 0x128]
inc r15
mov rdi, qword [rsp + 0x120]
dec r15
mov edx, r15d
mov ecx, r15d
cmp rdx, r9
jae 0x14000f469
movzx edx, byte [r15 + r14]
mov bl, byte [rsp + rdx + 0x20]
cmp bl, 0x80
je 0x14000f45f
mov byte [rsp + r11 + 0x130], dl
mov byte [rsp + r11 + 0x134], bl
inc r11
cmp r11, 4
jne 0x14000f45f
mov dl, byte [rsp + 0x135]
mov bl, dl
mov r11b, byte [rsp + 0x134]
shl r11b, 2
shr bl, 4
shl dl, 4
or r11b, bl
mov byte [r10], r11b
mov r11b, byte [rsp + 0x136]
mov bl, r11b
shl r11b, 6
shr bl, 2
or r11b, byte [rsp + 0x137]
or dl, bl
mov byte [r10 + 1], dl
mov byte [r10 + 2], r11b
add r10, 3
xor r11d, r11d
inc ecx
inc r15
cmp rcx, r9
jb 0x14000f3ec
cmp r10, rax
jbe 0x14000f48e
cmp byte [rsp + 0x132], 0x3d
je 0x14000f48a
cmp byte [rsp + 0x133], 0x3d
lea rdx, [r10 - 1]
cmove r10, rdx
jmp 0x14000f48e
add r10, 0xfffffffffffffffe
sub r10, rax
mov qword [r8], r10
add rsp, 0x170
pop r15
pop r14
pop rbx
ret
xor eax, eax
add rsp, 0x170
pop r15
pop r14
pop rbx
ret
xor ebx, ebx
jmp 0x14000eb71