Function at 0x14009f450
Capabilities:
Get file version info

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x10], rdx
mov qword [r11 + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0x1f0
mov rax, qword [0x1401761c0]
xor rax, rsp
mov qword [rsp + 0x1e8], rax
mov rsi, rcx
mov rbx, rdx
mov qword [rsp + 0x20], rdx
xorps xmm0, xmm0
movups xmmword [r11 - 0x68], xmm0
xor r14d, r14d
mov qword [r11 - 0x58], r14
mov qword [r11 - 0x50], 7
mov word [r11 - 0x68], r14w
mov byte [r11 - 0x78], r14b
lea rax, [r11 - 0x68]
mov qword [r11 - 0x70], rax
mov edx, 4
mov rax, qword gs:[0x58]
mov rcx, qword [rax]
mov eax, dword [rdx + rcx]
cmp dword [0x14017d528], eax
jle 0x14009f4f8
lea rcx, [0x14017d528]
call fcn.1400b8cf0
cmp dword [0x14017d528], 0xffffffff
jne 0x14009f4f8
call fcn.1400b6e8c
mov qword [0x14017d520], rax
lea rcx, [0x14017d528]
call fcn.1400b8c80
mov r8, qword [0x14017d520]
lea rdx, str..sys
mov rcx, rbx
call fcn.14003dbf0
test al, al
je 0x14009f68e
call fcn.14006d910
test al, al
jne 0x14009f7bf
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], r14
mov r8d, 3
lea rdx, [0x14014d1f8]
lea rcx, [rsp + 0x28]
call fcn.14000c360
nop
xorps xmm0, xmm0
movups xmmword [rsp + 0x1c0], xmm0
mov qword [rsp + 0x1d0], r14
mov qword [rsp + 0x1d8], r14
mov r8d, 3
lea rdx, [0x14014d200]
lea rcx, [rsp + 0x1c0]
call fcn.14000c360
nop
lea rcx, [rsp + 0x48]
call fcn.14009e5d0
nop
lea r9, [rsp + 0x28]
lea r8, [rsp + 0x1c0]
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.14009ec00
mov rdi, rax
lea rax, [rsp + 0x1a0]
cmp rax, rdi
je 0x14009f648
mov rdx, qword [rsp + 0x1b8]
cmp rdx, 7
jbe 0x14009f604
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x1a0]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009f5ff
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009f818
call fcn.1400b8a80
mov qword [rsp + 0x1b0], r14
mov qword [rsp + 0x1b8], 7
mov word [rsp + 0x1a0], r14w
movups xmm0, xmmword [rdi]
movups xmmword [rsp + 0x1a0], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rsp + 0x1b0], xmm1
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], 7
mov word [rdi], r14w
lea rcx, [rsp + 0x70]
call fcn.14000c080
nop
lea rcx, [rsp + 0x48]
call fcn.14000c080
nop
lea rcx, [rsp + 0x1c0]
call fcn.14000c080
nop
lea rcx, [rsp + 0x28]
call fcn.14000c080
lea rdx, [rsp + 0x1a0]
mov rcx, rbx
call fcn.14009ee30
test al, al
je 0x14009f81e
lea rdi, [rsp + 0x1a0]
cmp qword [rsp + 0x1b0], 0
cmove rdi, rbx
mov rcx, rdi
cmp qword [rdi + 0x18], 7
jbe 0x14009f6b0
mov rcx, qword [rdi]
lea rdx, [rsp + 0x1e0]
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov r14d, eax
test eax, eax
je 0x14009f846
mov rcx, r14
call fcn.1400b8fa8
mov rbx, rax
mov qword [rsp + 0x1c0], rax
cmp qword [rdi + 0x18], 7
jbe 0x14009f6e6
mov rdi, qword [rdi]
mov r9, rbx
mov r8d, r14d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x14009f877
lea r9, [rsp + 0x1e4]
lea r8, [rsp + 0x180]
lea rdx, [0x140143394]
mov rcx, rbx
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x14009f8a7
mov rcx, qword [rsp + 0x180]
cmp dword [rcx], 0xfeef04bd
jne 0x14009f8d7
mov edx, dword [rcx + 0xc]
mov ecx, dword [rcx + 8]
mov eax, ecx
shr eax, 0x10
mov word [rsi], ax
mov word [rsi + 2], cx
mov eax, edx
shr eax, 0x10
mov word [rsi + 4], ax
mov word [rsi + 6], dx
mov rcx, rbx
call fcn.1400b8a80
nop
cmp byte [rsp + 0x190], 0
jne 0x14009f78b
lea rax, [rsp + 0x190]
mov qword [rsp + 0x1c0], rax
lea rcx, [rsp + 0x1c0]
call fcn.1400a0140
nop
lea rcx, [rsp + 0x1a0]
call fcn.14000c080
mov rax, rsi
mov rcx, qword [rsp + 0x1e8]
xor rcx, rsp
call fcn.1400b89f0
mov rbx, qword [rsp + 0x220]
add rsp, 0x1f0
pop r14
pop rdi
pop rsi
ret
lea rax, str.Cannot_query_a_.sys_file_version_from_PPL_process_
mov qword [rsp + 0x1c0], rax
mov qword [rsp + 0x1c8], 0x36
movaps xmm0, xmmword [rsp + 0x1c0]
movdqa xmmword [rsp + 0x1c0], xmm0
mov r8, rbx
lea rdx, [rsp + 0x1c0]
lea rcx, [rsp + 0x90]
call fcn.14009ffa0
lea rdx, [0x140172368]
lea rcx, [rsp + 0x90]
call fcn.1400bb9a0
nop
call fcn.1400c8950
nop
lea rdx, str.Unable_to_make_a_.sys_copy
lea rcx, [rsp + 0xb8]
call fcn.1400aa660
lea rdx, [0x140172368]
lea rcx, [rsp + 0xb8]
call fcn.1400bb9a0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea r8, [0x140155620]
lea rcx, [rsp + 0xe0]
call fcn.1400aa6a0
lea rdx, [0x140172368]
lea rcx, [rsp + 0xe0]
call fcn.1400bb9a0
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea r8, [0x140155728]
lea rcx, [rsp + 0x108]
call fcn.1400aa6a0
lea rdx, [0x140172368]
lea rcx, [rsp + 0x108]
call fcn.1400bb9a0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea r8, [0x140155740]
lea rcx, [rsp + 0x130]
call fcn.1400aa6a0
lea rdx, [0x140172368]
lea rcx, [rsp + 0x130]
call fcn.1400bb9a0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea r8, str.VerQueryValueW_signature_is_invalid
lea rcx, [rsp + 0x158]
call fcn.1400aa6a0
lea rdx, [0x140172368]
lea rcx, [rsp + 0x158]
call fcn.1400bb9a0
int3