Function at 0x1400c8d60
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
vmovups xmmword [rsp + 0x120], xmm6
vmovups xmmword [rsp + 0x130], xmm7
mov eax, pe_nt_image_headers64
mov r15, qword [rsp + 0x1b0]
mov rbx, qword [rcx + 0x88]
sarx r8d, eax, r8d
mov r10d, edx
mov rdx, qword [rcx + 0x40]
vmovq xmm7, rcx
mov eax, r8d
neg eax
and eax, r10d
or eax, r8d
mov byte [rsp + 0xd0], al
cmp rdx, 0x37
ja 0x1400c9aa0
mov esi, 0x40
inc rbx
sub rsi, rdx
lea rax, [rsp + 0xd0]
lea rcx, [rsp + 0xd1]
lea r8, [rsi - 9]
xor edx, edx
mov qword [rsp + 0x1a8], r9
vmovq xmm6, rax
call sym.memset
bswap rbx
mov r8, rsi
vmovq rdx, xmm6
vmovq rcx, xmm7
mov qword [rsp + rsi + 0xc8], rbx
call sym.groestl_small_core
xor edi, edi
lea r13, [0x140336800]
mov qword [rsp + 0x1b0], r15
vmovq rax, xmm7
vmovdqu64 zmm1, zmmword [rax + 0x48]
lea rax, [0x140338800]
vmovq xmm17, rax
lea rax, [0x140338000]
vmovq xmm16, rax
lea rax, [0x140339000]
vmovq xmm5, rax
lea rax, [0x140337800]
vmovq xmm4, rax
lea rax, [0x140337000]
vmovq xmm3, rax
lea rax, [0x140335800]
vmovdqu64 zmmword [rsp + 0x50], zmm1
vmovq xmm2, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x58]
vmovq xmm1, rax
mov rbx, qword [rsp + 0x70]
lea rax, [0x140336000]
mov r14, qword [rsp + 0x50]
mov r8, qword [rsp + 0x68]
vmovq xmm20, rax
mov r11, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
mov r10, qword [rsp + 0x80]
mov r9, rdx
vmovq xmm19, rbx
vmovq xmm0, r14
mov rbx, r8
mov rdx, r11
nop dword [rax + rax]
lea r11, [rdi + 0x10]
vmovq rax, xmm2
lea r8, [rdi + 0x30]
mov rbp, rdx
xor r11, r9
lea r9, [rdi + 0x20]
xor r8, rbx
lea rbx, [rdi + 0x40]
xor r9, rax
vmovq rax, xmm19
vmovq r14, xmm0
vmovq rdx, xmm17
xor rbx, rax
lea rax, [rdi + 0x50]
xor r14, rdi
vmovq r12, xmm1
xor rcx, rax
lea rax, [rdi + 0x60]
movzx r15d, r14b
xor r10, rax
lea rax, [rdi + 0x70]
xor rbp, rax
mov rax, r11
movzx esi, ah
mov rax, r9
shr rax, 0x10
mov rsi, qword [rdx + rsi*8]
vmovq rdx, xmm16
movzx eax, al
xor rsi, qword [rdx + rax*8]
vmovq rdx, xmm5
lea rax, [rdi + 1]
xor rax, qword [rdx + r15*8]
mov r15, rbx
vmovq rdx, xmm4
shr r15, 0x20
movzx r15d, r15b
xor rsi, rax
mov rax, r8
shr rax, 0x18
movzx eax, al
mov rax, qword [rdx + rax*8]
vmovq rdx, xmm3
xor rax, qword [rdx + r15*8]
mov rdx, rbp
shr rdx, 0x38
mov r15, rdx
vmovq rdx, xmm1
xor rax, qword [rdx + r15*8]
mov r15, r10
vmovq rdx, xmm20
shr r15, 0x30
movzx r15d, r15b
xor rsi, rax
mov rax, rcx
shr rax, 0x28
movzx eax, al
mov rax, qword [r13 + rax*8]
xor rax, qword [rdx + r15*8]
vmovq rdx, xmm17
mov r15, r14
shr r15, 0x38
xor rsi, rax
mov rax, r9
mov qword [rsp + 0x28], rsi
movzx esi, ah
mov rax, r8
shr rax, 0x10
mov rsi, qword [rdx + rsi*8]
vmovq rdx, xmm16
movzx eax, al
xor rsi, qword [rdx + rax*8]
vmovq rdx, xmm1
lea rax, [rdi + 0x11]
xor rax, qword [rdx + r15*8]
mov r15, rcx
vmovq rdx, xmm4
shr r15, 0x20
movzx r15d, r15b
xor rsi, rax
mov rax, rbx
shr rax, 0x18
movzx eax, al
mov rax, qword [rdx + rax*8]
vmovq rdx, xmm3
xor rax, qword [rdx + r15*8]
movzx r15d, r11b
vmovq rdx, xmm5
xor rax, qword [rdx + r15*8]
mov rdx, rbp
xor rsi, rax
mov rax, r10
shr rax, 0x28
shr rdx, 0x30
movzx r15d, dl
movzx eax, al
vmovq rdx, xmm20
mov rax, qword [r13 + rax*8]
xor rax, qword [rdx + r15*8]
vmovq rdx, xmm17
movzx r15d, r9b
xor rsi, rax
mov rax, r8
mov qword [rsp + 0x40], rsi
movzx esi, ah
mov rax, rbx
shr rax, 0x10
mov rsi, qword [rdx + rsi*8]
vmovq rdx, xmm16
movzx eax, al
xor rsi, qword [rdx + rax*8]
mov rax, rcx
vmovq rdx, xmm4
shr rax, 0x18
movzx eax, al
xor rsi, qword [rdx + rax*8]
mov rax, r14
vmovq rdx, xmm20
shr rax, 0x30
movzx eax, al
mov rax, qword [rdx + rax*8]
vmovq rdx, xmm5
xor rax, qword [rdx + r15*8]
mov rdx, r11
lea r15, [rdi + 0x21]
shr rdx, 0x38
xor r15, qword [r12 + rdx*8]
mov rdx, rbp
shr rdx, 0x28
xor rax, r15
movzx r15d, dl
vmovq rdx, xmm3
xor rsi, rax
mov rax, r10
shr rax, 0x20
movzx eax, al
mov rax, qword [rdx + rax*8]
xor rax, qword [r13 + r15*8]
vmovq rdx, xmm17
movzx r15d, r8b
xor rsi, rax
mov rax, rcx
mov qword [rsp + 0x30], rsi
shr rax, 0x10
movzx esi, bh
mov rsi, qword [rdx + rsi*8]
movzx eax, al
vmovq rdx, xmm16
xor rsi, qword [rdx + rax*8]
mov rax, r10
vmovq rdx, xmm4
shr rax, 0x18
movzx eax, al
xor rsi, qword [rdx + rax*8]
mov rax, r14
vmovq rdx, xmm5
shr rax, 0x28
movzx eax, al
mov rax, qword [r13 + rax*8]
xor rax, qword [rdx + r15*8]
mov rdx, r9
lea r15, [rdi + 0x31]
shr rdx, 0x38
xor r15, qword [r12 + rdx*8]
vmovq rdx, xmm3
mov qword [rsp + 0x48], rbp
xor rax, r15
mov r15, r11
xor rsi, rax
mov rax, rbp
shr r15, 0x30
shr rax, 0x20
movzx r15d, r15b
movzx eax, al
mov rax, qword [rdx + rax*8]
vmovq rdx, xmm20
xor rax, qword [rdx + r15*8]
mov rdx, rsi
vmovq r15, xmm17
movzx esi, ch
mov rsi, qword [r15 + rsi*8]
vmovq r15, xmm16
xor rdx, rax
mov rax, r10
shr rax, 0x10
mov qword [rsp + 0x38], rdx
vmovq rdx, xmm3
movzx eax, al
xor rsi, qword [r15 + rax*8]
mov rax, rbp
vmovq r15, xmm4
shr rax, 0x18
movzx eax, al
xor rsi, qword [r15 + rax*8]
mov rax, r14
movzx r15d, bl
shr rax, 0x20
movzx eax, al
mov rax, qword [rdx + rax*8]
vmovq rdx, xmm5
xor rax, qword [rdx + r15*8]
mov r15, r8
shr r15, 0x38
vmovq xmm0, r15
lea r15, [rdi + 0x41]
vmovq rdx, xmm0
xor r15, qword [r12 + rdx*8]
vmovq rdx, xmm20
xor rax, r15
mov r15, r9
xor rsi, rax
mov rax, r11
shr r15, 0x30
shr rax, 0x28
movzx r15d, r15b
movzx eax, al
mov rax, qword [r13 + rax*8]
xor rax, qword [rdx + r15*8]
xor rsi, rax
mov rax, r10
movzx eax, ah
vmovq xmm0, rax
mov rax, rbp
shr rax, 0x10
vmovq rdx, xmm0
movzx r15d, al
vmovq rax, xmm17
mov rax, qword [rax + rdx*8]
vmovq rdx, xmm16
xor rax, qword [rdx + r15*8]
mov r15, r11
vmovq rdx, xmm3
shr r15, 0x20
movzx r15d, r15b
xor rax, qword [rdx + r15*8]
mov r15, r14
movzx edx, cl
shr r15, 0x18
vmovq xmm0, rdx
vmovq rdx, xmm4
movzx r15d, r15b
vmovq rbp, xmm0
mov r15, qword [rdx + r15*8]
vmovq rdx, xmm5
xor r15, qword [rdx + rbp*8]
mov rdx, rbx
lea rbp, [rdi + 0x51]
shr rdx, 0x38
vmovq xmm0, rbp
mov rbp, rdx
vmovq rdx, xmm0
xor rdx, qword [r12 + rbp*8]
xor r15, rdx
mov rdx, r8
xor rax, r15
mov r15, r9
shr rdx, 0x30
shr r15, 0x28
movzx ebp, dl
vmovq rdx, xmm20
movzx r15d, r15b
mov r15, qword [r13 + r15*8]
xor r15, qword [rdx + rbp*8]
vmovq rbp, xmm17
mov rdx, qword [rsp + 0x48]
movzx edx, dh
xor rax, r15
mov r15, r11
vmovq xmm0, qword [rbp + rdx*8]
shr r15, 0x18
vmovq rbp, xmm4
movzx r15d, r15b
vmovq rdx, xmm0
xor rdx, qword [rbp + r15*8]
mov r15, r9
vmovq rbp, xmm3
shr r15, 0x20
movzx r15d, r15b
xor rdx, qword [rbp + r15*8]
mov r15, r14
movzx ebp, r10b
shr r15, 0x10
vmovq xmm2, rbp
vmovq rbp, xmm16
shr r11, 0x10
movzx r15d, r15b
shr r9, 0x18
movzx r11d, r11b
shr r10, 0x38
mov r15, qword [rbp + r15*8]
vmovq rbp, xmm5
movzx r9d, r9b
vmovq xmm0, rdx
vmovq rdx, xmm2
xor r15, qword [rbp + rdx*8]
mov rdx, rcx
lea rbp, [rdi + 0x61]
shr rcx, 0x30
shr rdx, 0x38
vmovq xmm2, rbp
movzx ecx, cl
mov rbp, rdx
vmovq rdx, xmm2
xor rdx, qword [r12 + rbp*8]
vmovq rbp, xmm0
vmovq r12, xmm20
xor r15, rdx
mov rdx, r8
shr r8, 0x20
shr rdx, 0x28
xor r15, rbp
movzx r8d, r8b
movzx ebp, dl
mov rdx, rbx
shr rbx, 0x28
shr rdx, 0x30
vmovq xmm0, rbp
movzx ebx, bl
movzx ebp, dl
vmovq xmm2, rbp
vmovq rbp, xmm0
vmovq xmm0, qword [r13 + rbp*8]
vmovq rbp, xmm2
vmovq rdx, xmm0
xor rdx, qword [r12 + rbp*8]
vmovq rbp, xmm16
mov r11, qword [rbp + r11*8]
vmovq rbp, xmm4
xor r11, qword [rbp + r9*8]
vmovq rbp, xmm3
vmovq r9, xmm1
xor r11, qword [rbp + r8*8]
vmovq rbp, xmm17
xor r15, rdx
mov rdx, r14
movzx edx, dh
mov r14, rdx
movzx edx, byte [rsp + 0x48]
mov r8, qword [rbp + r14*8]
vmovq r14, xmm5
vmovq rbp, xmm5
xor r8, qword [r14 + rdx*8]
mov r14, rax
shr r14, 0x28
mov rdx, r8
lea r8, [rdi + 0x71]
xor r8, qword [r9 + r10*8]
mov r10, qword [rsp + 0x28]
mov r9, qword [rsp + 0x30]
xor rdx, r8
shr r9, 0x10
xor r11, rdx
mov rdx, qword [r13 + rbx*8]
xor rdx, qword [r12 + rcx*8]
mov rcx, rsi
shr rcx, 0x20
mov rbx, qword [rsp + 0x40]
movzx r8d, r9b
vmovq r9, xmm1
movzx ecx, cl
xor r11, rdx
movzx edx, r14b
vmovq r14, xmm3
mov r14, qword [r14 + rcx*8]
mov rcx, r15
xor r14, qword [r13 + rdx*8]
shr rcx, 0x30
movzx edx, cl
movzx ecx, r10b
mov rdx, qword [r12 + rdx*8]
xor rdx, qword [rbp + rcx*8]
vmovq rbp, xmm16
mov r12, qword [rsp + 0x38]
xor r14, rdx
mov rdx, r12
shr rdx, 0x18
movzx ecx, dl
mov rdx, qword [rbp + r8*8]
vmovq rbp, xmm4
mov r8, r11
xor rdx, qword [rbp + rcx*8]
shr r8, 0x38
movzx ecx, bh
vmovq rbp, xmm17
mov rcx, qword [rbp + rcx*8]
xor rcx, qword [r9 + r8*8]
mov r8, r15
vmovq rbp, xmm4
shr r8, 0x28
xor rdx, rcx
movzx ecx, r8b
mov r8, r11
shr r8, 0x30
xor r14, rdx
mov r9, qword [r13 + rcx*8]
vmovq rcx, xmm20
movzx edx, r8b
mov r8, rsi
vmovq xmm0, r14
mov r14, r12
xor r9, qword [rcx + rdx*8]
shr r8, 0x18
mov rcx, rax
movzx r8d, r8b
shr rcx, 0x20
mov rdx, qword [rbp + r8*8]
movzx ecx, cl
vmovq rbp, xmm3
xor rdx, qword [rbp + rcx*8]
mov rcx, qword [rsp + 0x30]
vmovq rbp, xmm17
xor r9, rdx
movzx edx, ch
mov r8, rdx
mov rdx, r12
mov r12, rbx
shr rdx, 0x10
movzx ecx, dl
mov rdx, qword [rbp + r8*8]
vmovq rbp, xmm16
mov r8, r10
xor rdx, qword [rbp + rcx*8]
movzx ecx, bl
mov rbx, r10
vmovq r10, xmm5
mov rcx, qword [r10 + rcx*8]
shr r8, 0x38
vmovq r10, xmm1
xor rcx, qword [r10 + r8*8]
mov r10, rsi
shr r10, 0x10
xor rdx, rcx
movzx ecx, r10b
vmovq r10, xmm17
xor r9, rdx
mov rdx, r14
mov r14, qword [rsp + 0x30]
movzx edx, dh
mov r10, qword [r10 + rdx*8]
xor r10, qword [rbp + rcx*8]
mov rcx, rbx
vmovq rbp, xmm5
shr rcx, 0x30
vmovq rbx, xmm20
movzx r8d, r14b
movzx ecx, cl
mov rdx, qword [rbx + rcx*8]
xor rdx, qword [rbp + r8*8]
mov rcx, rax
vmovq rbp, xmm4
shr rcx, 0x18
mov r8, r12
vmovq rbx, xmm1
shr r8, 0x38
xor r10, rdx
movzx edx, cl
mov rcx, r15
shr rcx, 0x20
mov rdx, qword [rbp + rdx*8]
vmovq rbp, xmm3
movzx ecx, cl
xor rdx, qword [rbp + rcx*8]
mov rcx, r11
mov rbp, r12
mov r12, qword [rsp + 0x28]
shr rcx, 0x28
movzx ecx, cl
mov rcx, qword [r13 + rcx*8]
xor rcx, qword [rbx + r8*8]
xor rdx, rcx
xor r10, rdx
vmovq xmm2, r10
mov r10, r15
shr r10, 0x18
movzx r8d, r10b
mov r10, r11
shr r10, 0x20
movzx ecx, r10b
vmovq r10, xmm4
mov rbx, qword [r10 + r8*8]
vmovq r10, xmm3
movzx r8d, byte [rsp + 0x38]
xor rbx, qword [r10 + rcx*8]
mov r10, rax
mov rcx, rsi
shr r10, 0x10
movzx edx, ch
movzx ecx, r10b
vmovq r10, xmm17
mov rdx, qword [r10 + rdx*8]
vmovq r10, xmm16
xor rdx, qword [r10 + rcx*8]
mov rcx, r12
vmovq r10, xmm5
shr rcx, 0x28
movzx ecx, cl
xor rbx, rdx
mov rdx, qword [r13 + rcx*8]
xor rdx, qword [r10 + r8*8]
mov r10, rbp
shr r10, 0x30
mov r8, r14
vmovq rbp, xmm17
movzx ecx, r10b
vmovq r10, xmm20
shr r8, 0x38
mov rcx, qword [r10 + rcx*8]
vmovq r10, xmm1
xor rcx, qword [r10 + r8*8]
mov r10, r15
movzx r8d, sil
shr r10, 0x10
xor rdx, rcx
movzx ecx, r10b
xor rbx, rdx
movzx edx, ah
mov r10, qword [rbp + rdx*8]
vmovq rbp, xmm16
mov rdx, r11
xor r10, qword [rbp + rcx*8]
mov rcx, r14
shr rdx, 0x18
vmovq rbp, xmm4
shr rcx, 0x30
vmovq r14, xmm20
movzx edx, dl
movzx ecx, cl
mov rdx, qword [rbp + rdx*8]
vmovq rbp, xmm3
xor rdx, qword [r14 + rcx*8]
mov rcx, r12
mov r12, qword [rsp + 0x40]
shr rcx, 0x20
mov r14, qword [rsp + 0x38]
movzx ecx, cl
xor r10, rdx
mov rdx, qword [rbp + rcx*8]
vmovq rbp, xmm5
xor rdx, qword [rbp + r8*8]
mov r8, r12
vmovq rbp, xmm1
shr r8, 0x28
movzx ecx, r8b
mov r8, r14
shr r8, 0x38
mov rcx, qword [r13 + rcx*8]
xor rcx, qword [rbp + r8*8]
vmovq rbp, xmm17
vmovq r8, xmm20
xor rdx, rcx
mov rcx, r15
xor r10, rdx
mov rdx, r11
movzx ecx, ch
vmovq xmm19, r10
mov r10, qword [rsp + 0x30]
shr rdx, 0x10
mov rcx, qword [rbp + rcx*8]
movzx edx, dl
vmovq rbp, xmm16
xor rcx, qword [rbp + rdx*8]
vmovq rbp, xmm5
shr r10, 0x28
movzx edx, r10b
mov r10, r14
shr r10, 0x30
mov rdx, qword [r13 + rdx*8]
movzx r10d, r10b
xor rdx, qword [r8 + r10*8]
mov r10, qword [rsp + 0x28]
movzx r8d, al
shr r10, 0x18
xor rcx, rdx
movzx r10d, r10b
vmovq rdx, xmm4
mov rdx, qword [rdx + r10*8]
xor rdx, qword [rbp + r8*8]
mov r8, r12
vmovq rbp, xmm3
shr r8, 0x20
movzx r10d, r8b
mov r8, rsi
shr r8, 0x38
vmovq xmm18, r8
mov r8, qword [rbp + r10*8]
vmovq r10, xmm1
vmovq rbp, xmm18
xor r8, qword [r10 + rbp*8]
mov r10, qword [rsp + 0x30]
vmovq rbp, xmm17
shr r10, 0x20
xor rdx, r8
movzx r10d, r10b
xor rcx, rdx
mov rdx, r11
movzx r11d, r11b
movzx edx, dh
mov r8, qword [rbp + rdx*8]
vmovq rbp, xmm3
mov rdx, r14
vmovq r14, xmm20
xor r8, qword [rbp + r10*8]
mov r10, rsi
shr rdx, 0x28
vmovq rbp, xmm4
shr r10, 0x30
movzx edx, dl
shr rsi, 0x28
movzx r10d, r10b
mov rdx, qword [r13 + rdx*8]
movzx esi, sil
xor rdx, qword [r14 + r10*8]
vmovq r14, xmm1
xor r8, rdx
mov rdx, r12
shr rdx, 0x18
movzx r10d, dl
mov rdx, rax
shr rax, 0x30
shr rdx, 0x38
vmovq xmm18, rdx
mov rdx, qword [rbp + r10*8]
mov r10, qword [rsp + 0x28]
vmovq rbp, xmm18
xor rdx, qword [r14 + rbp*8]
movzx ebp, r15b
shr r15, 0x38
vmovq xmm18, rbp
vmovq rbp, xmm16
shr r10, 0x10
vmovq r14, xmm18
movzx r10d, r10b
mov r10, qword [rbp + r10*8]
vmovq rbp, xmm5
xor r10, qword [rbp + r14*8]
vmovq r14, xmm4
xor r10, rdx
xor r10, r8
mov r8, qword [rsp + 0x30]
shr r8, 0x18
movzx edx, r8b
mov r8, qword [rsp + 0x38]
mov rdx, qword [r14 + rdx*8]
vmovq r14, xmm3
shr r8, 0x20
movzx r8d, r8b
xor rdx, qword [r14 + r8*8]
movzx r8d, al
mov rax, qword [r13 + rsi*8]
vmovq rsi, xmm20
xor rax, qword [rsi + r8*8]
vmovq rsi, xmm17
xor rdx, rax
mov rax, qword [rsp + 0x28]
movzx eax, ah
mov r8, qword [rsi + rax*8]
mov rax, r12
vmovq rsi, xmm16
xor r8, qword [rbp + r11*8]
shr rax, 0x10
movzx eax, al
mov rax, qword [rsi + rax*8]
vmovq rsi, xmm1
xor rax, qword [rsi + r15*8]
xor rax, r8
xor rdx, rax
add rdi, 2
cmp rdi, 0xa
jne 0x1400c8ee0
vmovdqu64 zmm1, zmmword [rsp + 0x50]
mov r11, rdx
mov rdx, r9
mov qword [rsp + 0xb8], rcx
vmovq qword [rsp + 0x90], xmm0
mov qword [rsp + 0x98], rdx
vmovq qword [rsp + 0xa0], xmm2
mov r15, qword [rsp + 0x1b0]
mov qword [rsp + 0xa8], rbx
vmovq qword [rsp + 0x160], xmm19
mov qword [rsp + 0xc0], r10
vmovq rax, xmm6
mov qword [rsp + 0xc8], r11
vpxorq zmm0, zmm1, zmmword [rsp + 0x90]
sub rax, r15
mov r9, qword [rsp + 0x1a8]
lea rsi, [rax + 0x20]
lea rdi, [r9 + 4]
mov rcx, r9
and rdi, 0xfffffffffffffffc
sub rcx, rdi
vshufi64x2 zmm0, zmm0, zmm0, 0xee
vmovdqu ymmword [rsp + 0xd0], ymm0
mov eax, dword [rax + 0x20]
vpxor xmm0, xmm0, xmm0
mov dword [r9], eax
mov eax, r15d
mov edx, dword [rsi + rax - 4]
sub rsi, rcx
add ecx, r15d
shr ecx, 2
mov dword [r9 + rax - 4], edx
vmovq rax, xmm7
rep movsd dword [rdi], dword [rsi]
vmovdqu64 zmmword [rax + 0x40], zmm0
vmovq rdi, xmm7
lea eax, [r15*8]
movbe qword [rdi + 0x80], rax
mov qword [rdi + 0x88], 0
vzeroupper
vmovups xmm6, xmmword [rsp + 0x120]
vmovups xmm7, xmmword [rsp + 0x130]
add rsp, 0x148
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov esi, pe_nt_image_headers64
add rbx, 2
sub rsi, rdx
jmp 0x1400c8dd1