Function at 0x14000cde0
Capabilities:
Encode data using xor
Parse pe header

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 7]
sub rsp, 0xd0
mov rax, qword [0x140021040]
xor rax, rsp
mov qword [rbp - 0x29], rax
mov rax, qword [rbp + 0x7f]
xor ebx, ebx
mov qword [rbp - 0x51], rax
mov rdi, rdx
mov eax, 0x5a4d
mov qword [rsp + 0x40], rdx
mov qword [rbp - 0x39], rbx
mov qword [rbp - 0x49], rbx
cmp word [rdx], ax
jne 0x14000d2d7
movsxd rsi, dword [rdx + 0x3c]
add rsi, rdx
cmp dword [rsi], 0x4550
jne 0x14000d2d7
mov eax, 0x20b
cmp word [rsi + 0x18], ax
jne 0x14000d2d7
mov r12d, dword [rsi + 0x50]
lea r9d, [rbx + 4]
mov edx, r12d
xor ecx, ecx
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r15, rax
test rax, rax
je 0x14000d2d7
movzx ecx, word [rsi + 0x14]
mov qword [rsp + 0x38], rbx
mov eax, dword [rcx + rsi + 0x24]
sub r12d, eax
mov dword [rsp + 0x30], eax
mov eax, dword [rbp + 0x67]
cmp eax, 1
jne 0x14000ceac
mov edx, r12d
lea r8, [rsp + 0x38]
call fcn.14000cb70
jmp 0x14000cee5
cmp eax, 2
jne 0x14000cedd
mov edx, r12d
call fcn.1400060a0
mov r13, rax
test rax, rax
je 0x14000ceed
mov r8d, r12d
mov rdx, rax
call fcn.140006570
test al, al
jne 0x14000cf03
mov r8d, r12d
mov rdx, r13
call fcn.1400062f0
jmp 0x14000ceed
mov r8d, r12d
call fcn.140007290
mov r13, rax
test rax, rax
jne 0x14000cf03
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualFree]
jmp 0x14000d2d7
mov r8d, dword [rsi + 0x54]
mov rdx, rdi
mov rcx, r15
call sub.VCRUNTIME140.dll_memcpy
movzx edi, word [rsi + 0x14]
mov r14d, ebx
add rdi, 0x28
cmp bx, word [rsi + 6]
jae 0x14000cf5f
mov rbx, qword [rsp + 0x40]
add rdi, rsi
nop dword [rax + rax]
test dword [rdi + 0x14], 0x80
ja 0x14000cf4d
mov edx, dword [rdi + 4]
mov ecx, dword [rdi - 4]
add rdx, rbx
mov r8d, dword [rdi]
add rcx, r15
call sub.VCRUNTIME140.dll_memcpy
movzx eax, word [rsi + 6]
inc r14d
add rdi, 0x28
cmp r14d, eax
jl 0x14000cf30
xor ebx, ebx
mov eax, dword [rsp + 0x30]
lea rcx, [rsp + 0x48]
mov r14, r13
mov rdx, r15
sub r13, rax
mov rdi, r13
sub rdi, qword [rsi + 0x30]
call fcn.14000de20
mov rdx, rdi
mov rcx, rax
call fcn.14000d320
mov rdx, r13
mov rcx, r15
call fcn.14000d420
test al, al
je 0x14000d2d7
mov rdx, r15
lea rcx, [rsp + 0x48]
call fcn.14000df70
mov rdx, rax
call fcn.14000d4d0
test al, al
je 0x14000d296
mov r8d, dword [rsp + 0x30]
mov rdx, r14
add r8, r15
mov r9d, r12d
call fcn.140005fb0
mov rdi, qword [rsp + 0x38]
test al, al
je 0x14000d29b
mov esi, dword [rsi + 0x28]
lea rdx, [rbp - 0x39]
mov r9d, r12d
lea rcx, [rbp - 0x49]
mov r8, r14
mov qword [rsp + 0x20], rdi
add rsi, r13
call fcn.140010180
test al, al
je 0x14000d29b
mov r9, qword [rbp - 0x49]
lea rdx, [rsp + 0x30]
mov rax, qword [rbp - 0x39]
mov r8, rsi
cmp byte [rbp + 0x6f], 0
mov dword [rsp + 0x30], ebx
cmovne r9, r14
mov qword [rsp + 0x20], rax
call fcn.14000d800
test al, al
je 0x14000d29b
mov rax, qword [rbp - 0x51]
mov esi, dword [rsp + 0x30]
test rax, rax
je 0x14000d03b
mov dword [rax], esi
cmp dword [0x140021088], 2
movups xmm0, xmmword [0x14001a830]
movzx eax, word [0x14001a858]
movups xmm1, xmmword [0x14001a840]
mov word [rbp - 0x59], ax
movups xmmword [rsp + 0x48], xmm0
movsd xmm0, qword [0x14001a850]
movsd qword [rbp - 0x61], xmm0
movups xmmword [rbp - 0x71], xmm1
jl 0x14000d1b6
movdqa xmm5, xmmword [0x14001ac30]
lea rcx, [rsp + 0x48]
movdqa xmm4, xmmword [0x14001ace0]
movaps xmmword [rsp + 0xc0], xmm6
movdqa xmm6, xmmword [0x14001ac70]
movaps xmmword [rsp + 0xb0], xmm7
movdqa xmm7, xmmword [0x14001ac90]
nop dword [rax]
movd xmm2, ebx
lea eax, [rbx + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 0x10]
paddd xmm2, xmm5
add ebx, 8
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm7
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 0x10]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
movd xmm2, eax
pshufd xmm2, xmm2, 0
xorps xmm3, xmm0
movq qword [rcx - 0x10], xmm3
paddd xmm2, xmm5
movdqa xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
mov eax, ebx
punpckldq xmm1, xmm2
pmuldq xmm0, xmm4
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, 5
movdqa xmm0, xmm1
psrld xmm0, 0x1f
paddd xmm0, xmm1
pmulld xmm0, xmm6
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
movq xmm2, xmm7
pshufhw xmm1, xmm0, 0xd8
movq xmm0, qword [rcx - 8]
pshufd xmm3, xmm1, 0xd8
paddw xmm3, xmm2
xorps xmm3, xmm0
movq qword [rcx - 8], xmm3
cmp ebx, 0x10
jl 0x14000d0b0
movaps xmm7, xmmword [rsp + 0xb0]
movaps xmm6, xmmword [rsp + 0xc0]
cmp eax, 0x15
jge 0x14000d203
movsxd rax, ebx
lea r8, [rsp + 0x48]
lea r8, [r8 + rax*2]
nop dword [rax]
nop word [rax + rax]
mov eax, 0x8fb823ef
lea r8, [r8 + 2]
imul ebx
add edx, ebx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
movzx eax, dx
imul ecx, eax, 0x39
movzx eax, bx
inc ebx
sub ax, cx
add ax, 0x38
xor word [r8 - 2], ax
cmp ebx, 0x15
jl 0x14000d1d0
mov rcx, qword [sym.imp.MSVCP140.dll_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t___std::wcout]
lea rdx, [rsp + 0x48]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___void_const____ptr64____ptr64]
mov rcx, rax
lea rdx, [0x14000cb50]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::ios_base____ptr64____cdecl___class_std::ios_base____ptr64_____ptr64]
mov rcx, rax
mov edx, esi
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___long_int____ptr64]
mov rcx, rax
lea rdx, [0x14000b8b0]
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64___cdecl_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t__::operator___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64____cdecl___class_std::basic_ostream_wchar_t__struct_std::char_traits_wchar_t______ptr64_____ptr64]
cmp byte [rbp + 0x57], 0
je 0x14000d271
mov eax, dword [rbp + 0x67]
mov rdx, r14
cmp eax, 1
jne 0x14000d287
mov r8, rdi
call fcn.140006d50
test al, al
je 0x14000d271
mov rdx, rdi
call fcn.140006ff0
test al, al
je 0x14000d271
mov rdx, rdi
call fcn.140007550
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov rax, r14
jmp 0x14000d2d9
cmp eax, 2
jne 0x14000d26c
mov r8d, r12d
call fcn.1400062f0
jmp 0x14000d271
mov rdi, qword [rsp + 0x38]
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, dword [rbp + 0x67]
mov rdx, r14
cmp eax, 1
jne 0x14000d306
mov r8, rdi
call fcn.140006d50
test al, al
je 0x14000d2d7
mov rdx, rdi
call fcn.140006ff0
test al, al
je 0x14000d2d7
mov rdx, rdi
call fcn.140007550
xor eax, eax
mov rcx, qword [rbp - 0x29]
xor rcx, rsp
call fcn.140013550
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
cmp eax, 2
jne 0x14000d2d2
mov r8d, r12d
call fcn.1400062f0
jmp 0x14000d2d7