Function at 0x14000fa50
Capabilities:
Get file version info

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x2b0]
sub rsp, 0x3b0
mov rax, qword [0x1400a0f20]
xor rax, rsp
mov qword [rbp + 0x2a0], rax
mov r15d, dword [rcx + 0x58]
movzx r14d, dl
mov r12, qword [rcx + 0x50]
mov r13, rcx
mov byte [rsp + 0x40], dl
mov ecx, 3
lea rdx, str.vgsvcPageSharingRegisterModule_n
call fcn.140002470
lea rdx, [rsp + 0x58]
lea rcx, [r13 + 0x168]
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov ebx, eax
test eax, eax
jne 0x14000fadd
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.vgsvcPageSharingRegisterModule:_GetFileVersionInfoSize_failed_with__d_n
mov ecx, 3
mov r8d, eax
call fcn.140002470
jmp 0x14000fd95
mov rcx, rbx
lea rdx, [0x140054850]
call fcn.14001ed50
mov qword [rsp + 0x48], rax
test rax, rax
je 0x14000fd95
mov r9, rax
lea rcx, [r13 + 0x168]
mov r8d, ebx
xor edx, edx
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
jne 0x14000fb31
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.vgsvcPageSharingRegisterModule:_GetFileVersionInfo_failed_with__d_n
mov ecx, 3
mov r8d, eax
call fcn.140002470
jmp 0x14000fd8b
mov rcx, qword [rsp + 0x48]
lea r9, [rsp + 0x44]
lea r8, [rsp + 0x60]
mov qword [rsp + 0x3e8], rsi
lea rdx, str.VarFileInfoTranslation
call sub.VERSION.dll_VerQueryValueA
mov esi, dword [rsp + 0x44]
test eax, eax
je 0x14000fd66
cmp esi, 4
jb 0x14000fd66
xor edi, edi
shr esi, 2
mov qword [rsp + 0x50], rdi
mov ebx, edi
mov byte [r13 + 0x28], dil
test esi, esi
je 0x14000fbf0
mov r14d, edi
mov rax, qword [rsp + 0x60]
lea r8, str.StringFileInfo_04x_04xFileVersion
mov edx, 0x100
movzx ecx, word [r14 + rax + 2]
movzx r9d, word [r14 + rax]
mov dword [rsp + 0x20], ecx
lea rcx, [rbp + 0x1a0]
call fcn.1400177a0
mov rcx, qword [rsp + 0x48]
lea r9, [rsp + 0x5c]
lea r8, [rsp + 0x50]
lea rdx, [rbp + 0x1a0]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x14000fbd7
inc ebx
add r14, 4
cmp ebx, esi
jb 0x14000fb80
jmp 0x14000fbea
mov r8, qword [rsp + 0x50]
lea rcx, [r13 + 0x28]
mov edx, 0x10
call fcn.1400292e0
movzx r14d, byte [rsp + 0x40]
cmp ebx, esi
jne 0x14000fc0a
lea rdx, str.vgsvcPageSharingRegisterModule:_no_file_version_found__n
mov ecx, 3
call fcn.140002470
jmp 0x14000fd83
test r14b, r14b
je 0x14000fcef
movabs rsi, 0x100010004
nop dword [rax]
mov r8d, 0x30
lea rdx, [rsp + 0x68]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x14000fcd3
cmp dword [rbp - 0x78], 0x1000
jne 0x14000fcab
cmp dword [rbp - 0x70], 0x1000000
jne 0x14000fcab
mov eax, dword [rbp - 0x74]
cmp eax, 0x20
ja 0x14000fcab
bt rsi, rax
jae 0x14000fcab
mov rdx, qword [rsp + 0x68]
mov rbx, rdx
mov rcx, qword [rbp - 0x80]
cmp rdx, qword [r13 + 0x50]
je 0x14000fc99
lea rax, [rdx + rcx]
cmp rdx, rax
jae 0x14000fc99
mov rcx, rbx
call fcn.140001500
mov rcx, qword [rbp - 0x80]
add rbx, 0x1000
mov rdx, qword [rsp + 0x68]
lea rax, [rcx + rdx]
cmp rbx, rax
jb 0x14000fc78
mov eax, edi
add rax, rax
inc edi
mov qword [rbp + rax*8 - 0x60], rdx
mov dword [rbp + rax*8 - 0x58], ecx
jmp 0x14000fcb4
mov rcx, qword [rbp - 0x80]
mov rdx, qword [rsp + 0x68]
mov eax, r15d
lea r12, [rcx + rdx]
cmp rax, rcx
jbe 0x14000fcfc
sub r15d, ecx
cmp edi, 0x20
jae 0x14000fcfc
test r15d, r15d
jne 0x14000fc20
jmp 0x14000fcfc
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rdx, str.vgsvcPageSharingRegisterModule:_VirtualQueryEx_failed_with__d_n
mov ecx, 3
mov r8d, eax
call fcn.140002470
jmp 0x14000fcfc
mov qword [rbp - 0x60], r12
mov edi, 1
mov dword [rbp - 0x58], r15d
mov eax, dword [r13 + 0x58]
lea r9, [r13 + 0x28]
mov dword [rsp + 0x30], edi
lea r8, [r13 + 0x68]
mov dword [rsp + 0x28], eax
lea rdx, str.vgsvcPageSharingRegisterModule:_VbglR3RegisterSharedModule__s__s_base_p_size_x_cregions_d_n
mov rax, qword [r13 + 0x50]
mov ecx, 3
mov qword [rsp + 0x20], rax
call fcn.140002470
mov r9d, dword [r13 + 0x58]
lea rax, [rbp - 0x60]
mov r8, qword [r13 + 0x50]
lea rdx, [r13 + 0x28]
mov qword [rsp + 0x28], rax
lea rcx, [r13 + 0x68]
mov dword [rsp + 0x20], edi
call fcn.140053180
test eax, eax
jns 0x14000fd83
mov r8d, eax
lea rdx, str.vgsvcPageSharingRegisterModule:_VbglR3RegisterSharedModule_failed_with__Rrc_n
mov ecx, 3
call fcn.140002470
jmp 0x14000fd83
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, esi
lea rdx, str.vgsvcPageSharingRegisterModule:_VerQueryValue_failed_with__d__cb_d__n
mov r8d, eax
mov ecx, 3
call fcn.140002470
mov rsi, qword [rsp + 0x3e8]
mov rcx, qword [rsp + 0x48]
call fcn.14001ed80
mov rcx, qword [rbp + 0x2a0]
xor rcx, rsp
call fcn.140001250
lea r11, [rsp + 0x3b0]
mov rbx, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret