Function at 0x1400192d0
Capabilities:
Get file size
Parse pe header
Read file on windows

Disassembly:
push rbx
push r14
sub rsp, 0x88
mov r14, rdx
mov rbx, rcx
mov rcx, qword [rcx + 0x70]
lea rdx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
jne 0x140019304
mov eax, 1
add rsp, 0x88
pop r14
pop rbx
ret
mov r8d, dword [rsp + 0x48]
mov r9d, r8d
and r9d, 1
mov qword [rsp + 0xa8], rsi
mov eax, r8d
mov qword [rsp + 0x80], rdi
mov ecx, r9d
or ecx, 2
and al, 2
mov eax, r8d
cmove ecx, r9d
mov edx, ecx
or edx, 4
and al, 4
cmove edx, ecx
mov ecx, r8d
mov eax, edx
or eax, 0x10
and ecx, 0x10
cmove eax, edx
mov edx, eax
or edx, 0x20
and r8b, 0x20
cmove edx, eax
test ecx, ecx
je 0x140019360
bts edx, 0x1e
jmp 0x140019364
bts edx, 0x1f
mov rcx, qword [rbx + 0x70]
bts edx, 0x18
mov edi, edx
bts edi, 0x17
test r9d, r9d
cmovne edi, edx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [rbx + 0x60], eax
mov esi, edi
cmp eax, 0x28
jbe 0x14001949c
cmp dword [rbx + 0x1c], 0
jne 0x14001949c
mov rcx, qword [rbx + 0x70]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov rcx, qword [rbx + 0x70]
lea r9, [rsp + 0xb0]
mov r8d, 2
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, qword [rbx + 0x70]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x24]
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov rcx, qword [rbx + 0x70]
lea r9, [rsp + 0xb0]
mov r8d, 4
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, 0x54ad
cmp word [rsp + 0xa0], ax
jne 0x14001948a
mov edx, dword [rsp + 0xb8]
lea eax, [rdx + 0x34]
cmp dword [rbx + 0x60], eax
jbe 0x14001948a
mov rcx, qword [rbx + 0x70]
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov rcx, qword [rbx + 0x70]
lea r9, [rsp + 0xb0]
mov r8d, 4
mov qword [rsp + 0x20], 0
lea rdx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [rsp + 0x30]
cmp eax, 0x5a4d
je 0x140019484
cmp eax, 0x454e
je 0x140019484
cmp eax, 0x454c
je 0x140019484
cmp eax, 0x4550
jne 0x14001948a
mov esi, edi
bts esi, 0x16
mov rcx, qword [rbx + 0x70]
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov rcx, qword [rsp + 0x54]
movabs r10, 0xfe624e212ac18000
add rcx, r10
mov dword [r14 + 0x10], esi
movabs r9, 0xd6bf94d5e57a42bd
mov rax, r9
imul rcx
add rdx, rcx
mov rcx, qword [rsp + 0x5c]
sar rdx, 0x17
mov rax, rdx
mov qword [rsp + 0xa0], rcx
shr rax, 0x3f
add rdx, rax
lea r8, [rcx + r10]
mov dword [r14], edx
lea rcx, [rsp + 0xa0]
mov rax, r9
imul r8
mov rax, r9
add rdx, r8
sar rdx, 0x17
mov r8, rdx
shr r8, 0x3f
add rdx, r8
mov r8, qword [rsp + 0x4c]
mov dword [r14 + 4], edx
add r8, r10
imul r8
add rdx, r8
sar rdx, 0x17
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov dword [r14 + 8], edx
lea rdx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
movzx eax, word [rsp + 0x3a]
movzx ecx, word [rsp + 0x38]
and ax, 0xf
mov rdi, qword [rsp + 0x80]
sub cx, 0x3c
mov rsi, qword [rsp + 0xa8]
shl cx, 4
or cx, ax
movzx eax, word [rsp + 0x3e]
and eax, 0x1f
shl cx, 5
movzx edx, cx
movzx ecx, word [rsp + 0x42]
or edx, eax
movzx eax, word [rsp + 0x40]
and cx, 0x3f
shl ax, 6
or cx, ax
shl edx, 0x10
shl cx, 5
movzx eax, cx
or edx, eax
movzx eax, word [rsp + 0x44]
add ax, ax
and eax, 0x1f
or edx, eax
mov dword [r14 + 0xc], edx
xor eax, eax
add rsp, 0x88
pop r14
pop rbx
ret