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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x24], 0
mov qword [rsp + 0x48], 0
mov dword [rsp + 0x28], 0
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x38], rax
jge 0x18001413d
nop
jl 0x18001413d
stosb byte [rdi], al
jge 0x18001414b
cdq
xor dword [rbp + 0x47], edi
cdq
adc al, 0x47
test byte [rdx + 0x30147d31], ch
invalid
mov rax, qword [rsp + 0x38]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x180014156
or bh, byte [rax + 1]
mov eax, 1
jmp 0x1800143d4
mov rax, qword [rsp + 0x38]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x38]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x30], rax
jb 0x18001419b
push rbp
push rcx
push rbx
nop
pop rbx
pop rcx
pop rbp
jae 0x18001419b
test byte [0x10c15c60c], bl
mov word [0x119717267], ds
fild dword [rdi + 0x74]
jge 0x180014207
jge 0x1800141d4
jge 0x18001416a
jl 0x180014201
test byte [rax + rsi + 0x7d42e18c], al
stosb byte [rdi], al
je 0x180014218
mov rax, qword [rsp + 0x30]
cmp dword [rax], 0x4550
je 0x1800141b2
mov eax, 1
jmp 0x1800143d4
mov dword [rsp + 0x20], 0
add byte [rax], al
add byte [rax], al
jmp 0x1800141c6
mov eax, dword [rsp + 0x20]
inc eax
mov dword [rsp + 0x20], eax
and bh, bh
ror byte [rcx + 0x48202444], 0x8b
and al, 0x30
mov rax, qword [rsp + 0x30]
movzx eax, word [rax + 6]
cmp dword [rsp + 0x20], eax
jae 0x1800143a9
invalid
adc eax, 1
add byte [rax], al
mov rax, qword [rsp + 0x30]
movzx eax, word [rax + 0x14]
mov rcx, qword [rsp + 0x30]
lea rax, [rcx + rax + 0x18]
mov ecx, dword [rsp + 0x20]
imul rcx, rcx, 0x28
add rax, rcx
mov qword [rsp + 0x40], rax
ja 0x180014228
nop
jbe 0x180014228
invalid
sbb eax, 0x47db9999
jo 0x180014255
jge 0x180014257
cdq
loope 0x180014230
loope 0x1800141bf
jl 0x180014247
adc al, 0x42
stosb byte [rdi], al
stosb byte [rdi], al
jl 0x1800141b6
jl 0x180014250
jge 0x1800141fc
invalid
mov r8d, 0x10
xor edx, edx
lea rcx, [rsp + 0x50]
call qword [0x18001ace8]
jo 0x180014267
push rdx
push rsp
push rax
push rcx
pop rcx
pop rax
pop rsp
pop rdx
jno 0x180014267
stosb byte [rdi], al
jo 0x1800141ce
xor byte [rcx], dh
xor dword [rdx + 0x7c747042], ebp
xor dword [rcx], esi
stosb byte [rdi], al
jo 0x1800142c5
je 0x1800142ce
jl 0x18001422e
fistp dword [rcx + 0x47db8442]
jl 0x1800141e7
cdq
test bl, bl
test bl, bl
jl 0x1800141e7
fild dword [rax + rsi*2 - 0x248bbdb9]
test byte [rbx + rbx*8 - 0x74b77374], cl
and al, 0x40
mov rax, qword [rsp + 0x40]
mov r8d, 8
mov r8d, 8
mov rdx, rax
lea rcx, [rsp + 0x50]
call qword [0x18001ad78]
jbe 0x1800142ac
ja 0x1800142ac
test cl, ah
adc al, 0x30
jo 0x18001426b
je 0x180014267
sbb eax, 0x848431aa
je 0x1800142c4
fld xword [rdx + 0x14e17c31]
adc al, 0x42
stosb byte [rdi], al
invalid
jo 0x1800142d8
sub dl, byte [rax + 0x51]
push rax
push rcx
nop
pop rcx
pop rax
jno 0x1800142d8
xor byte [rbp + rdi*2 + 0x31], bh
cdq
jl 0x18001432c
jl 0x1800142d2
sbb eax, 0x14e147e1
stosb byte [rdi], al
stosb byte [rdi], al
loope 0x18001424b
cdq
cdq
sbb eax, 0xaa841d31
je 0x180014340
je 0x180014303
invalid
lea rdx, [0x18001af60]
lea rcx, [rsp + 0x50]
lea ecx, [rsp + 0x50]
call qword [0x18001b028]
add byte [rax], al
test eax, eax
jne 0x1800143a4
mov dword [rsp + 0x24], 1
jno 0x180014326
push rsi
nop
pop rsi
jo 0x180014326
loope 0x1800142ad
jl 0x1800142e0
jo 0x1800142e8
test byte [rsp + rcx*4], dl
invalid
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 0xc]
mov rcx, qword [rsp + 0x70]
or al, 0x48
mov ecx, dword [rsp + 0x70]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x48], rax
jg 0x18001436a
push rax
push rsp
nop
pop rsp
pop rax
jle 0x18001436a
je 0x1800142ce
loope 0x180014394
cdq
invalid
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x28], eax
jge 0x1800143a2
nop
jl 0x1800143a2
jge 0x1800143bf
mov word [rdi + 0x74], es
invalid
xor dword [rcx + 0x7070aadb], ebx
adc al, 0x7d
xor dword [rdx + 0x31db847c], ebp
jmp 0x1800143a9
jmp 0x1800141bc
cmp dword [rsp + 0x24], 0
jne 0x1800143b7
mov eax, 1
jmp 0x1800143d4
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x48]
and al, 0x48
mov qword [rax], rcx
mov rax, qword [rsp + 0x80]
mov ecx, dword [rsp + 0x28]
mov dword [rax], ecx
xor eax, eax
add rsp, 0x68
ret