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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
mov qword [rsp + 8], rcx
push rdi
push r14
push r15
sub rsp, 0x110
mov rbx, r9
mov r15, r8
mov rdi, rdx
test rdx, rdx
je 0x140090b87
cmp dword [r8], 0x4000
jb 0x140090b87
test rbx, rbx
je 0x140090b87
cmp word [r9], 0
je 0x140090b87
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [r9 + rax*2], 0
jne 0x140090900
inc eax
lea rdx, [0x14014fdc0]
and eax, 0xfffffff8
lea r14d, [rax*2 + 0x10]
mov ecx, r14d
mov ebp, r14d
call fcn.14002e8b0
mov rsi, rax
test rax, rax
je 0x140090b87
mov r8d, ebp
mov rdx, rbx
mov rcx, rax
call fcn.14014cbf0
test r14d, r14d
je 0x14009097e
xor dl, dl
lea r10, [0x1401bd1e0]
xor r8d, r8d
mov rcx, rsi
mov r9d, ebp
nop dword [rax + rax]
mov rax, r8
lea rcx, [rcx + 1]
and eax, 0xf
inc r8
add dl, byte [r10 + rax*4]
xor byte [rcx - 1], dl
movzx edx, byte [rcx - 1]
sub r9, 1
jne 0x140090960
xor bl, bl
mov eax, 0x5a4d
cmp word [rdi], ax
jne 0x140090b7a
movsxd rax, dword [rdi + 0x3c]
mov r8d, dword [r15]
cmp eax, r8d
jge 0x140090b7a
cmp dword [rax + rdi], 0x4550
mov rdx, rax
jne 0x140090b7a
movzx eax, word [rax + rdi + 4]
mov r9d, 0x14c
cmp ax, r9w
je 0x1400909cd
mov ecx, 0x8664
cmp ax, cx
jne 0x140090b7a
lea rcx, [rdx + rdi]
movups xmm0, xmmword [rcx + 0x18]
movups xmm1, xmmword [rcx + 0x28]
cmp ax, r9w
jne 0x140090a71
lea rax, [rsp + 0x20]
mov r9d, 0x98
movups xmmword [rax], xmm0
movups xmm0, xmmword [rcx + 0x38]
movups xmmword [rax + 0x10], xmm1
movups xmm1, xmmword [rcx + 0x48]
movups xmmword [rax + 0x20], xmm0
movups xmm0, xmmword [rcx + 0x58]
movups xmmword [rax + 0x30], xmm1
movups xmm1, xmmword [rcx + 0x68]
movups xmmword [rax + 0x40], xmm0
movups xmm0, xmmword [rcx + 0x78]
movups xmmword [rax + 0x50], xmm1
movups xmmword [rax + 0x60], xmm0
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx + 0x88]
sub rcx, 0xffffffffffffff68
movups xmmword [rax - 0x10], xmm0
movups xmm1, xmmword [rcx]
movups xmm0, xmmword [rcx + 0x10]
movups xmmword [rax], xmm1
movups xmm1, xmmword [rcx + 0x20]
movups xmmword [rax + 0x10], xmm0
movups xmm0, xmmword [rcx + 0x30]
movups xmmword [rax + 0x20], xmm1
movups xmm1, xmmword [rcx + 0x40]
movups xmmword [rax + 0x30], xmm0
movups xmm0, xmmword [rcx + 0x50]
movups xmmword [rax + 0x40], xmm1
movups xmmword [rax + 0x50], xmm0
mov rax, qword [rsp + 0xa0]
jmp 0x140090b02
lea rax, [rsp + 0x20]
mov r9d, 0xa8
movups xmmword [rax], xmm0
movups xmm0, xmmword [rcx + 0x38]
movups xmmword [rax + 0x10], xmm1
movups xmm1, xmmword [rcx + 0x48]
movups xmmword [rax + 0x20], xmm0
movups xmm0, xmmword [rcx + 0x58]
movups xmmword [rax + 0x30], xmm1
movups xmm1, xmmword [rcx + 0x68]
movups xmmword [rax + 0x40], xmm0
movups xmm0, xmmword [rcx + 0x78]
movups xmmword [rax + 0x50], xmm1
movups xmmword [rax + 0x60], xmm0
lea rax, [rax + 0x80]
movups xmm0, xmmword [rcx + 0x88]
sub rcx, 0xffffffffffffff68
movups xmmword [rax - 0x10], xmm0
movups xmm1, xmmword [rcx]
movups xmm0, xmmword [rcx + 0x10]
movups xmmword [rax], xmm1
movups xmm1, xmmword [rcx + 0x20]
movups xmmword [rax + 0x10], xmm0
movups xmm0, xmmword [rcx + 0x30]
movups xmmword [rax + 0x20], xmm1
movups xmm1, xmmword [rcx + 0x40]
movups xmmword [rax + 0x30], xmm0
movups xmm0, xmmword [rcx + 0x50]
movups xmmword [rax + 0x40], xmm1
movups xmm1, xmmword [rcx + 0x60]
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x60], xmm1
mov rax, qword [rsp + 0xb0]
mov rcx, rax
mov qword [rsp + 0x130], rax
shr rcx, 0x20
add rdx, r9
test r14d, r14d
je 0x140090b4e
test rdx, rdx
je 0x140090b4e
test eax, eax
je 0x140090b4e
test ecx, ecx
je 0x140090b4e
cmp rdx, r8
jge 0x140090b7a
lea ecx, [r8 + r14]
shr rax, 0x20
mov dword [r15], ecx
add eax, r14d
mov dword [rsp + 0x134], eax
mov rcx, qword [rsp + 0x130]
mov qword [rdx + rdi], rcx
jmp 0x140090b55
mov eax, dword [rsp + 0x134]
mov ecx, dword [rsp + 0x130]
test ecx, ecx
je 0x140090b7a
test eax, eax
je 0x140090b7a
sub rax, rbp
mov r8, rbp
add rax, rdi
mov rdx, rsi
add rcx, rax
call fcn.14014cbf0
mov bl, 1
mov rcx, rsi
call fcn.14002e8a8
movzx eax, bl
jmp 0x140090b89
xor al, al
lea r11, [rsp + 0x110]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rdi
ret