Function at 0x14004a230
Capabilities:
Get file size
Parse pe header

Disassembly:
mov qword [rsp + 0x20], rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xc30
mov rax, qword [0x1401a5020]
xor rax, rsp
mov qword [rsp + 0xc20], rax
mov r12d, r8d
mov rdi, rdx
mov r14, rcx
xor bl, bl
mov byte [rsp + 0x40], bl
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0xa10]
call fcn.140081700
nop
mov r8d, 0x206
lea rdx, [rsp + 0xa10]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
je 0x14004a574
mov eax, 0x5a4d
cmp ax, word [rdi]
je 0x14004a2ab
xor al, al
jmp 0x14004a57e
movsxd rsi, dword [rdi + 0x3c]
add rsi, rdi
cmp dword [rsi], 0x4550
je 0x14004a2c1
xor al, al
jmp 0x14004a57e
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [rbx + 1]
lea rcx, [rsp + 0xa10]
call qword [sym.imp.KERNEL32.dll_CreateFileA]
mov rdi, rax
mov byte [rsp + 0x8d0], bl
mov r15d, ebx
cmp rax, 0xffffffffffffffff
je 0x14004a370
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r15d, eax
lea r9, [rsp + 0x8c0]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileTime]
test eax, eax
je 0x14004a367
mov rcx, qword [rsp + 0x8c0]
mov qword [rsp + 0x50], rcx
mov byte [rsp + 0x8d0], bl
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x14004a367
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x8d0]
call fcn.14004a1a0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r8d, r12d
lea rdx, str.Module__d_r_n
mov rcx, r14
call fcn.14004a0e0
lea r8, [rsp + 0xa10]
lea rdx, str._s_r_n
mov rcx, r14
call fcn.14004a0e0
mov r9d, dword [rsi + 0x50]
mov r8, qword [rsi + 0x30]
lea rdx, str.Image_Base:_0x_08x__Image_Size:_0x_08x_r_n
mov rcx, r14
call fcn.14004a0e0
mov r9d, dword [rsi + 8]
mov r8d, dword [rsi + 0x58]
lea rdx, str.Checksum:___0x_08x__Time_Stamp:_0x_08x_r_n
mov rcx, r14
call fcn.14004a0e0
lea r9, [rsp + 0x8d0]
mov r8d, r15d
lea rdx, str.File_Size:____10d__File_Time:___s_r_n
mov rcx, r14
call fcn.14004a0e0
lea rdx, str.Version_Information:_r_n
mov rcx, r14
call fcn.14004a0e0
lea rdx, [rsp + 0xa10]
lea rcx, [rsp + 0x70]
call fcn.1400495f0
lea rdx, [rsp + 0x940]
lea rcx, [rsp + 0x70]
call fcn.140049aa0
lea r8, [rsp + 0x940]
lea rdx, str.___Company:_____s_r_n
mov rcx, r14
call fcn.14004a0e0
lea rdx, [rsp + 0x940]
lea rcx, [rsp + 0x70]
call fcn.140049b40
lea r8, [rsp + 0x940]
lea rdx, str.___Product:_____s_r_n
mov rcx, r14
call fcn.14004a0e0
lea rdx, [rsp + 0x940]
lea rcx, [rsp + 0x70]
call fcn.140049af0
lea r8, [rsp + 0x940]
lea rdx, str.___FileDesc:____s_r_n
mov rcx, r14
call fcn.14004a0e0
lea r8, [rsp + 0x8c0]
mov qword [rsp + 0x58], r8
mov edx, ebx
mov dword [rsp + 0x44], ebx
cmp edx, 4
jge 0x14004a4b2
movsxd rax, edx
movzx ecx, word [rsp + rax*2 + 0x7c]
mov word [r8], cx
add r8, 2
mov qword [rsp + 0x58], r8
inc edx
mov dword [rsp + 0x44], edx
jmp 0x14004a490
movzx eax, word [rsp + 0x8c6]
movzx ecx, word [rsp + 0x8c4]
movzx r9d, word [rsp + 0x8c2]
movzx r8d, word [rsp + 0x8c0]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rdx, str.___FileVer:_____d._d._d._d_r_n
mov rcx, r14
call fcn.14004a0e0
lea rdx, [rsp + 0x8c0]
mov qword [rsp + 0x60], rdx
mov dword [rsp + 0x48], ebx
cmp ebx, 4
jge 0x14004a51c
movsxd rax, ebx
movzx ecx, word [rsp + rax*2 + 0x84]
mov word [rdx], cx
add rdx, 2
mov qword [rsp + 0x60], rdx
inc ebx
jmp 0x14004a4f8
movzx eax, word [rsp + 0x8c6]
movzx edx, word [rsp + 0x8c4]
movzx r9d, word [rsp + 0x8c2]
movzx r8d, word [rsp + 0x8c0]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], edx
lea rdx, str.___ProdVer:_____d._d._d._d_r_n
mov rcx, r14
call fcn.14004a0e0
lea rcx, [rsp + 0x70]
call fcn.1400499d0
lea rdx, [0x140161920]
mov rcx, r14
call fcn.14004a0e0
mov bl, 1
mov byte [rsp + 0x40], bl
jmp 0x14004a57b
movzx eax, bl
mov rcx, qword [rsp + 0xc20]
xor rcx, rsp
call fcn.140050f90
mov rbx, qword [rsp + 0xc78]
add rsp, 0xc30
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret