Function at 0x14001ca90
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x148
mov eax, pe_nt_image_headers64
mov r14, qword [rsp + 0x1b0]
mov rbx, rcx
sarx r8d, eax, r8d
mov ecx, edx
mov qword [rsp + 0x1a8], r9
mov eax, r8d
mov rdx, qword [rbx + 0x40]
neg eax
and eax, ecx
or eax, r8d
mov byte [rsp + 0xf0], al
mov rax, qword [rbx + 0x88]
cmp rdx, 0x37
ja 0x14001d720
mov ebp, 0x40
lea rdi, [rax + 1]
sub rbp, rdx
lea rcx, [rsp + 0xf1]
lea r8, [rbp - 9]
xor edx, edx
lea rsi, [rsp + 0xf0]
call sym.memset
mov rax, rdi
bswap rax
mov r8, rbp
mov rdx, rsi
mov rcx, rbx
mov qword [rsp + rbp + 0xe8], rax
call sym.groestl_small_core
xor r13d, r13d
mov qword [rsp + 0x1b0], r14
mov qword [rsp + 0x190], rbx
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x68], rsi
mov rdx, qword [rbx + 0x48]
mov rdi, qword [rbx + 0x50]
mov rax, qword [rbx + 0x68]
mov r8, qword [rbx + 0x78]
mov r11, qword [rbx + 0x58]
mov r10, qword [rbx + 0x60]
mov r9, qword [rbx + 0x70]
mov rcx, qword [rbx + 0x80]
mov r12, rdx
mov rbp, rdi
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x90], rax
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x58], rax
mov rax, r8
mov qword [rsp + 0x80], r11
mov qword [rsp + 0xa0], r8
mov qword [rsp + 0xb0], rdx
mov r14, rax
mov qword [rsp + 0xb8], rdi
mov qword [rsp + 0xc0], r11
mov qword [rsp + 0xe0], r8
mov rdi, r10
mov qword [rsp + 0x60], r11
mov qword [rsp + 0x88], r10
mov qword [rsp + 0x98], r9
mov r15, r9
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0xc8], r10
mov qword [rsp + 0xd8], r9
mov rdx, rcx
mov qword [rsp + 0xe8], rcx
mov r11, r12
mov r8, rbp
nop word [rax + rax]
mov r9, qword [rsp + 0x28]
mov rsi, r11
lea r12, [0x1401b7780]
mov rax, qword [rsp + 0x60]
lea r10, [r9 + 0x20]
xor rsi, r9
lea rbp, [r9 + 0x10]
xor r10, rax
mov rax, r9
lea r9, [r9 + 0x30]
xor rbp, r8
xor r9, rdi
lea r8, [rax + 0x40]
mov rbx, rbp
movzx edi, sil
mov r13, r9
mov r9, rax
mov rax, qword [rsp + 0x58]
movzx ebx, bh
lea rcx, [r9 + 0x70]
lea r11, [r9 + 0x60]
mov qword [rsp + 0x58], r13
xor rdx, rcx
mov rcx, r10
xor r11, r14
lea r14, [0x1401b6780]
shr rcx, 0x10
xor r8, rax
lea rax, [r9 + 0x50]
movzx ecx, cl
xor rax, r15
lea r15, [0x1401b6f80]
mov rbx, qword [r15 + rbx*8]
xor rbx, qword [r14 + rcx*8]
lea rcx, [r9 + 1]
lea r9, [0x1401b4f80]
xor rcx, qword [r12 + rdi*8]
mov rdi, r8
shr rdi, 0x20
movzx edi, dil
xor rbx, rcx
mov rcx, r13
lea r13, [0x1401b5f80]
shr rcx, 0x18
movzx ecx, cl
mov rcx, qword [r13 + rcx*8]
lea r13, [0x1401b5780]
xor rcx, qword [r13 + rdi*8]
mov rdi, rdx
lea r13, [0x1401b3f80]
shr rdi, 0x38
xor rcx, qword [r13 + rdi*8]
mov rdi, r11
shr rdi, 0x30
movzx edi, dil
xor rcx, rbx
mov rbx, rax
shr rbx, 0x28
mov qword [rsp + 0x30], rcx
lea rcx, [0x1401b4780]
movzx ebx, bl
mov rbx, qword [r9 + rbx*8]
xor rbx, qword [rcx + rdi*8]
mov rdi, qword [rsp + 0x30]
xor rdi, rbx
mov rbx, r10
movzx ecx, bh
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x38], rdi
mov rcx, qword [r15 + rcx*8]
shr rbx, 0x10
movzx ebx, bl
xor rcx, qword [r14 + rbx*8]
mov rbx, rsi
shr rbx, 0x38
mov rdi, rbx
mov rbx, qword [rsp + 0x28]
add rbx, 0x11
xor rbx, qword [r13 + rdi*8]
mov rdi, rax
lea r13, [0x1401b5f80]
shr rdi, 0x20
movzx edi, dil
xor rcx, rbx
mov rbx, r8
shr rbx, 0x18
movzx ebx, bl
mov rbx, qword [r13 + rbx*8]
lea r13, [0x1401b5780]
xor rbx, qword [r13 + rdi*8]
movzx edi, bpl
lea r13, [0x1401b4780]
xor rbx, qword [r12 + rdi*8]
mov rdi, rdx
xor rcx, rbx
mov rbx, r11
shr rdi, 0x30
shr rbx, 0x28
movzx edi, dil
movzx ebx, bl
mov rbx, qword [r9 + rbx*8]
xor rbx, qword [r13 + rdi*8]
lea r13, [0x1401b5f80]
movzx edi, r10b
xor rcx, rbx
mov rbx, qword [rsp + 0x58]
mov qword [rsp + 0x40], rcx
mov rcx, r8
shr rcx, 0x10
movzx ecx, cl
movzx ebx, bh
mov rbx, qword [r15 + rbx*8]
xor rbx, qword [r14 + rcx*8]
mov rcx, rax
shr rcx, 0x18
movzx ecx, cl
xor rbx, qword [r13 + rcx*8]
mov rcx, rsi
lea r13, [0x1401b4780]
shr rcx, 0x30
movzx ecx, cl
mov rcx, qword [r13 + rcx*8]
xor rcx, qword [r12 + rdi*8]
mov rdi, rbp
lea r13, [0x1401b3f80]
shr rdi, 0x38
mov r12, rdi
mov rdi, qword [rsp + 0x28]
add rdi, 0x21
xor rdi, qword [r13 + r12*8]
lea r13, [0x1401b5780]
lea r12, [0x1401b7780]
xor rcx, rdi
mov rdi, rdx
xor rcx, rbx
mov rbx, r11
shr rdi, 0x28
shr rbx, 0x20
movzx edi, dil
movzx ebx, bl
mov rbx, qword [r13 + rbx*8]
xor rbx, qword [r9 + rdi*8]
mov rdi, rax
lea r13, [0x1401b5f80]
shr rdi, 0x10
xor rcx, rbx
mov rbx, r8
mov qword [rsp + 0x30], rcx
movzx ecx, dil
mov rdi, r11
movzx ebx, bh
shr rdi, 0x18
mov rbx, qword [r15 + rbx*8]
xor rbx, qword [r14 + rcx*8]
movzx ecx, dil
mov rdi, rsi
shr rdi, 0x28
xor rbx, qword [r13 + rcx*8]
lea r13, [0x1401b3f80]
movzx ecx, dil
movzx edi, byte [rsp + 0x58]
mov rcx, qword [r9 + rcx*8]
lea r9, [0x1401b4780]
xor rcx, qword [r12 + rdi*8]
mov rdi, r10
shr rdi, 0x38
mov r12, rdi
mov rdi, qword [rsp + 0x28]
add rdi, 0x31
xor rdi, qword [r13 + r12*8]
lea r12, [0x1401b5780]
lea r13, [0x1401b5f80]
xor rcx, rdi
mov rdi, rbp
xor rcx, rbx
mov rbx, rdx
shr rbx, 0x20
shr rdi, 0x30
movzx edi, dil
movzx ebx, bl
mov rbx, qword [r12 + rbx*8]
xor rbx, qword [r9 + rdi*8]
mov rdi, r11
movzx r12d, r8b
shr rdi, 0x10
lea r9, [0x1401b3f80]
xor rcx, rbx
movzx ebx, ah
mov qword [rsp + 0x48], rcx
movzx ecx, dil
mov rdi, qword [r15 + rbx*8]
mov rbx, rdx
shr rbx, 0x18
xor rdi, qword [r14 + rcx*8]
movzx ecx, bl
mov rbx, rsi
shr rbx, 0x20
xor rdi, qword [r13 + rcx*8]
movzx ecx, bl
lea rbx, [0x1401b5780]
mov rcx, qword [rbx + rcx*8]
mov r13, rbx
lea rbx, [0x1401b7780]
xor rcx, qword [rbx + r12*8]
mov rbx, qword [rsp + 0x58]
shr rbx, 0x38
mov r12, rbx
mov rbx, qword [rsp + 0x28]
add rbx, 0x41
xor rbx, qword [r9 + r12*8]
lea r12, [0x1401b4f80]
xor rbx, rcx
xor rbx, rdi
mov rdi, rbp
shr rdi, 0x28
movzx ecx, dil
mov rdi, r10
shr rdi, 0x30
mov rcx, qword [r12 + rcx*8]
lea r12, [0x1401b4780]
movzx edi, dil
xor rcx, qword [r12 + rdi*8]
mov r12, rdx
shr r12, 0x10
xor rbx, rcx
mov rcx, r11
movzx edi, ch
movzx ecx, r12b
mov r12, qword [r15 + rdi*8]
mov rdi, rbp
xor r12, qword [r14 + rcx*8]
movzx r14d, al
shr rdi, 0x20
movzx ecx, dil
mov rdi, rsi
shr rdi, 0x18
xor r12, qword [r13 + rcx*8]
lea r13, [0x1401b5f80]
movzx ecx, dil
mov rdi, qword [r13 + rcx*8]
lea rcx, [0x1401b7780]
xor rdi, qword [rcx + r14*8]
mov rcx, qword [rsp + 0x28]
mov r14, r8
shr r14, 0x38
add rcx, 0x51
xor rcx, qword [r9 + r14*8]
lea r14, [0x1401b4f80]
xor rcx, rdi
mov rdi, r10
xor rcx, r12
mov r12, qword [rsp + 0x58]
shr rdi, 0x28
movzx edi, dil
mov rdi, qword [r14 + rdi*8]
lea r14, [0x1401b4780]
shr r12, 0x30
movzx r12d, r12b
xor rdi, qword [r14 + r12*8]
movzx r14d, r11b
xor rcx, rdi
movzx edi, dh
shr r11, 0x38
mov r12, rdi
mov rdi, rbp
mov qword [rsp + 0x50], rcx
lea rcx, [0x1401b6780]
shr rdi, 0x18
mov r12, qword [r15 + r12*8]
lea r15, [0x1401b7780]
shr rbp, 0x10
movzx edi, dil
movzx ebp, bpl
xor r12, qword [r13 + rdi*8]
mov rdi, r10
lea r13, [0x1401b5780]
shr r10, 0x18
shr rdi, 0x20
movzx r10d, r10b
movzx edi, dil
xor r12, qword [r13 + rdi*8]
mov rdi, rsi
shr rdi, 0x10
movzx edi, dil
mov rdi, qword [rcx + rdi*8]
xor rdi, qword [r15 + r14*8]
mov r14, rax
shr rax, 0x30
shr r14, 0x38
mov r15, r14
mov r14, qword [rsp + 0x28]
add r14, 0x61
xor r14, qword [r9 + r15*8]
mov r15, qword [rsp + 0x58]
lea r9, [0x1401b4f80]
xor rdi, r14
mov r14, r8
shr r8, 0x28
xor rdi, r12
mov r12, r15
shr r14, 0x30
shr r15, 0x20
shr r12, 0x28
movzx r14d, r14b
movzx r8d, r8b
movzx r12d, r12b
mov r12, qword [r9 + r12*8]
lea r9, [0x1401b4780]
xor r12, qword [r9 + r14*8]
mov r14, rcx
movzx r9d, r15b
lea r15, [0x1401b6f80]
xor r12, rdi
mov rdi, qword [rcx + rbp*8]
mov rcx, rsi
lea rbp, [0x1401b5f80]
movzx esi, ch
mov rcx, qword [rsp + 0x28]
xor rdi, qword [rbp + r10*8]
lea r10, [0x1401b3f80]
xor rdi, qword [r13 + r9*8]
movzx r9d, dl
mov rdx, qword [r15 + rsi*8]
lea rsi, [0x1401b7780]
xor rdx, qword [rsi + r9*8]
lea r9, [rcx + 0x71]
xor r9, qword [r10 + r11*8]
lea r11, [0x1401b4780]
xor rdx, r9
movzx r9d, al
xor rdx, rdi
lea rdi, [0x1401b4f80]
mov rax, qword [rdi + r8*8]
xor rax, qword [r11 + r9*8]
mov r8, rbx
shr r8, 0x20
movzx r9d, byte [rsp + 0x38]
movzx r8d, r8b
mov r8, qword [r13 + r8*8]
xor rax, rdx
mov rdx, qword [rsp + 0x50]
shr rdx, 0x28
movzx edx, dl
xor r8, qword [rdi + rdx*8]
mov rdx, r12
mov rdi, rsi
shr rdx, 0x30
movzx edx, dl
mov rdx, qword [r11 + rdx*8]
xor rdx, qword [rsi + r9*8]
mov r9, qword [rsp + 0x48]
xor r8, rdx
mov rdx, qword [rsp + 0x30]
shr r9, 0x18
movzx r9d, r9b
shr rdx, 0x10
movzx edx, dl
mov rdx, qword [r14 + rdx*8]
mov rcx, qword [rsp + 0x40]
xor rdx, qword [rbp + r9*8]
movzx esi, ch
mov rcx, qword [rsp + 0x30]
mov r9, rsi
mov rsi, rax
shr rsi, 0x38
mov r9, qword [r15 + r9*8]
mov r10, rsi
lea rsi, [0x1401b3f80]
xor r9, qword [rsi + r10*8]
lea r10, [0x1401b4f80]
xor rdx, r9
lea r9, [0x1401b4780]
xor r8, rdx
mov rdx, rax
mov r11, r8
mov r8, r12
shr rdx, 0x30
shr r8, 0x28
movzx edx, dl
movzx r8d, r8b
mov r8, qword [r10 + r8*8]
xor r8, qword [r9 + rdx*8]
mov rdx, rbx
mov r9, qword [rsp + 0x50]
shr rdx, 0x18
mov r10, qword [rsp + 0x38]
movzx edx, dl
mov rdx, qword [rbp + rdx*8]
shr r9, 0x20
shr r10, 0x38
movzx r9d, r9b
xor rdx, qword [r13 + r9*8]
mov r9, qword [rsp + 0x48]
shr r9, 0x10
xor r8, rdx
movzx r9d, r9b
movzx edx, ch
lea rcx, [0x1401b4780]
mov rdx, qword [r15 + rdx*8]
xor rdx, qword [r14 + r9*8]
movzx r9d, byte [rsp + 0x40]
mov r9, qword [rdi + r9*8]
xor r9, qword [rsi + r10*8]
mov r10, qword [rsp + 0x40]
xor rdx, r9
shr r10, 0x38
xor r8, rdx
mov rdx, qword [rsp + 0x50]
shr rdx, 0x18
movzx r9d, dl
mov rdx, r12
shr rdx, 0x20
mov r9, qword [rbp + r9*8]
lea rbp, [0x1401b4f80]
movzx edx, dl
xor r9, qword [r13 + rdx*8]
mov rdx, rax
shr rdx, 0x28
movzx edx, dl
mov rdx, qword [rbp + rdx*8]
xor rdx, qword [rsi + r10*8]
mov r10, rbx
mov rbp, r14
shr r10, 0x10
movzx esi, byte [rsp + 0x30]
movzx r10d, r10b
xor r9, rdx
mov rdx, qword [rsp + 0x48]
movzx edx, dh
mov rdx, qword [r15 + rdx*8]
xor rdx, qword [r14 + r10*8]
mov r10, qword [rsp + 0x38]
shr r10, 0x30
movzx r10d, r10b
mov r10, qword [rcx + r10*8]
xor r10, qword [rdi + rsi*8]
movzx esi, bh
mov rcx, rax
shr rcx, 0x20
xor rdx, r10
movzx r10d, cl
xor r9, rdx
mov qword [rsp + 0x60], r9
mov rdx, qword [rsp + 0x50]
mov r9, qword [r15 + rsi*8]
lea rsi, [0x1401b5f80]
mov rcx, rsi
shr rdx, 0x10
movzx edx, dl
xor r9, qword [r14 + rdx*8]
mov rdx, r12
lea r14, [0x1401b4780]
shr rdx, 0x18
movzx edx, dl
mov rdx, qword [rsi + rdx*8]
xor rdx, qword [r13 + r10*8]
lea rsi, [0x1401b3f80]
mov r10, qword [rsp + 0x30]
xor r9, rdx
mov rdx, qword [rsp + 0x40]
shr r10, 0x38
shr rdx, 0x30
movzx edx, dl
mov rdx, qword [r14 + rdx*8]
xor rdx, qword [rsi + r10*8]
lea r14, [0x1401b4f80]
mov r10, qword [rsp + 0x38]
movzx esi, byte [rsp + 0x48]
shr r10, 0x28
movzx r10d, r10b
mov r10, qword [r14 + r10*8]
xor r10, qword [rdi + rsi*8]
mov r14, rdi
mov rdi, r9
xor rdx, r10
xor rdi, rdx
mov rdx, qword [rsp + 0x50]
movzx esi, dh
mov rdx, r12
mov r9, qword [r15 + rsi*8]
shr rdx, 0x10
mov rsi, qword [rsp + 0x30]
movzx edx, dl
xor r9, qword [rbp + rdx*8]
mov rdx, rax
shr rdx, 0x18
shr rsi, 0x30
movzx edx, dl
mov rdx, qword [rcx + rdx*8]
movzx r10d, sil
lea rcx, [0x1401b4780]
mov rsi, qword [rsp + 0x48]
xor rdx, qword [rcx + r10*8]
movzx r10d, bl
mov rcx, r14
shr rsi, 0x38
xor r9, rdx
mov rdx, qword [rsp + 0x38]
shr rdx, 0x20
movzx edx, dl
mov rdx, qword [r13 + rdx*8]
xor rdx, qword [r14 + r10*8]
lea r14, [0x1401b4f80]
mov r10, qword [rsp + 0x40]
shr r10, 0x28
movzx r10d, r10b
mov r10, qword [r14 + r10*8]
lea r14, [0x1401b3f80]
xor r10, qword [r14 + rsi*8]
mov r14, r15
xor rdx, r10
lea r10, [0x1401b4f80]
xor r9, rdx
mov rdx, r12
mov qword [rsp + 0x58], r9
mov r9, qword [rsp + 0x30]
movzx esi, dh
mov rdx, rax
shr rdx, 0x10
mov r15, qword [r15 + rsi*8]
lea rsi, [0x1401b5f80]
movzx edx, dl
xor r15, qword [rbp + rdx*8]
shr r9, 0x28
movzx edx, r9b
mov r9, qword [rsp + 0x48]
mov rdx, qword [r10 + rdx*8]
lea r10, [0x1401b4780]
shr r9, 0x30
movzx r9d, r9b
xor rdx, qword [r10 + r9*8]
movzx r9d, byte [rsp + 0x50]
xor r15, rdx
mov rdx, qword [rsp + 0x38]
shr rdx, 0x18
movzx edx, dl
mov rdx, qword [rsi + rdx*8]
xor rdx, qword [rcx + r9*8]
mov rsi, rbx
mov r9, qword [rsp + 0x40]
shr rsi, 0x38
mov r10, rsi
lea rsi, [0x1401b3f80]
shr r9, 0x20
movzx r9d, r9b
mov r9, qword [r13 + r9*8]
xor r9, qword [rsi + r10*8]
movzx esi, ah
lea r10, [0x1401b4f80]
movzx eax, al
xor rdx, r9
mov r9, rsi
mov rsi, r14
xor r15, rdx
mov rdx, qword [rsp + 0x30]
mov r14, qword [r14 + r9*8]
mov r9, qword [rsp + 0x48]
shr rdx, 0x20
shr r9, 0x28
movzx edx, dl
xor r14, qword [r13 + rdx*8]
movzx edx, r9b
mov r9, rbx
shr rbx, 0x28
shr r9, 0x30
mov rdx, qword [r10 + rdx*8]
lea r10, [0x1401b4780]
movzx ebx, bl
movzx r9d, r9b
xor rdx, qword [r10 + r9*8]
mov r9, qword [rsp + 0x50]
lea r10, [0x1401b5f80]
shr r9, 0x38
xor r14, rdx
mov rdx, qword [rsp + 0x40]
shr rdx, 0x18
movzx edx, dl
mov rdx, qword [r10 + rdx*8]
lea r10, [0x1401b3f80]
xor rdx, qword [r10 + r9*8]
mov r9, qword [rsp + 0x38]
movzx r10d, r12b
shr r9, 0x10
movzx r9d, r9b
mov r9, qword [rbp + r9*8]
xor r9, qword [rcx + r10*8]
lea r10, [0x1401b5f80]
xor rdx, r9
mov r9, qword [rsp + 0x48]
xor r14, rdx
mov rdx, qword [rsp + 0x30]
shr r9, 0x20
shr rdx, 0x18
movzx r9d, r9b
movzx edx, dl
mov rdx, qword [r10 + rdx*8]
mov r10, qword [rsp + 0x50]
xor rdx, qword [r13 + r9*8]
lea r9, [0x1401b4f80]
lea r13, [0x1401b4780]
mov r9, qword [r9 + rbx*8]
mov rbx, qword [rsp + 0x38]
shr r10, 0x30
movzx ecx, r10b
lea r10, [0x1401b3f80]
xor r9, qword [r13 + rcx*8]
movzx ecx, bh
mov rcx, qword [rsi + rcx*8]
lea rsi, [0x1401b7780]
xor rdx, r9
xor rcx, qword [rsi + rax*8]
mov rax, qword [rsp + 0x40]
shr r12, 0x38
shr rax, 0x10
movzx eax, al
mov rax, qword [rbp + rax*8]
xor rax, qword [r10 + r12*8]
add qword [rsp + 0x28], 2
xor rcx, rax
mov rax, qword [rsp + 0x28]
xor rdx, rcx
cmp rax, 0xa
jne 0x14001cc10
vmovq xmm3, qword [rsp + 0x58]
mov rax, r14
mov rsi, qword [rsp + 0x68]
vmovq xmm2, rax
mov r14, qword [rsp + 0x1b0]
mov rdi, qword [rsp + 0x1a8]
vpinsrq xmm1, xmm2, rdx, 1
mov rbx, qword [rsp + 0x190]
sub rsi, r14
vpinsrq xmm0, xmm3, r15, 1
vinserti128 ymm0, ymm0, xmm1, 1
vpxor ymm0, ymm0, ymmword [rsp + 0x90]
vmovdqu ymmword [rsp + 0xf0], ymm0
mov eax, dword [rsi + 0x20]
vpxor xmm0, xmm0, xmm0
mov dword [rdi], eax
mov eax, r14d
mov rdi, qword [rsp + 0x1a8]
mov edx, dword [rax + rsi + 0x1c]
add rsi, 0x20
mov dword [rdi + rax - 4], edx
mov rax, qword [rsp + 0x1a8]
lea rdi, [rax + 4]
mov r13, rax
lea eax, [r14*8]
and rdi, 0xfffffffffffffffc
sub r13, rdi
sub rsi, r13
add r13d, r14d
shr r13d, 2
mov ecx, r13d
rep movsd dword [rdi], dword [rsi]
vmovdqu ymmword [rbx + 0x40], ymm0
vmovdqu ymmword [rbx + 0x60], ymm0
movbe qword [rbx + 0x80], rax
mov qword [rbx + 0x88], 0
vzeroupper
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov ebp, pe_nt_image_headers64
lea rdi, [rax + 2]
sub rbp, rdx
jmp 0x14001caf4