Function at 0x140197030
Capabilities:
Get file version info

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xd0]
sub rsp, 0x1d0
mov rax, qword [0x1402a76c0]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov rax, r8
mov qword [rsp + 0x78], rax
mov r12, rdx
mov r15, rcx
xor esi, esi
cmp qword [rcx + 0x10], rsi
je 0x14019742d
cmp qword [rdx + 0x10], rsi
je 0x14019742d
test rax, rax
je 0x14019742d
lea rcx, str.GetFileVersionHelper_____Start
call fcn.1401b6310
mov rcx, r15
cmp qword [r15 + 0x18], 8
jb 0x1401970a6
mov rcx, qword [r15]
xor edx, edx
call qword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov r13d, eax
test eax, eax
je 0x140197413
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x50], xmm0
lfence
mov ecx, r13d
call fcn.140006010
mov r14, rax
mov qword [rsp + 0x50], rax
lea rbx, [rax + r13]
mov qword [rsp + 0x60], rbx
mov r8d, r13d
xor edx, edx
mov rcx, rax
call fcn.1401e7e40
mov qword [rsp + 0x58], rbx
mov rbx, r14
mov qword [rsp + 0x70], rbx
cmp qword [r15 + 0x18], 8
jb 0x140197102
mov r15, qword [r15]
mov r9, rbx
mov r8d, r13d
xor edx, edx
mov rcx, r15
call qword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x1401973d3
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x40], rsi
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x40]
lea rdx, str.VarFileInfoTranslation
mov rcx, rbx
call qword [sym.imp.VERSION.dll_VerQueryValueW]
test eax, eax
je 0x1401973cc
mov eax, dword [rsp + 0x30]
and eax, 0xfffffffc
cmp eax, 4
jb 0x1401973db
xorps xmm0, xmm0
movups xmmword [rbp - 0x60], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x50], xmm1
xor r8d, r8d
lea rdx, [0x140251dfc]
lea rcx, [rbp - 0x60]
call fcn.140005520
nop
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp - 0x40]
call fcn.1401e7e40
mov rax, qword [rsp + 0x40]
movzx ecx, word [rax + 2]
movzx r9d, word [rax]
mov dword [rsp + 0x20], ecx
lea r8, str.StringFileInfo_04x_04x_
mov edx, 0x80
lea rcx, [rbp - 0x40]
call fcn.14002fb20
lea rax, [rbp - 0x40]
mov rdi, 0xffffffffffffffff
mov rbx, rdi
nop
inc rbx
cmp word [rax + rbx*2], 0
jne 0x1401971c0
mov rcx, qword [r12 + 0x10]
mov qword [rsp + 0x68], rcx
movabs rdx, 0x7ffffffffffffffe
mov rax, rdx
sub rax, rcx
cmp rax, rbx
jb 0x140197468
cmp qword [r12 + 0x18], 8
jb 0x1401971f9
mov r12, qword [r12]
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x70], xmm1
lea rax, [rcx + rbx]
mov qword [rsp + 0x48], rax
mov r15d, 7
lea r13, [rbp - 0x80]
cmp rax, r15
jbe 0x140197259
mov r15, rax
or r15, 7
cmp r15, rdx
jbe 0x140197356
mov r15, rdx
movabs rcx, 0x7fffffffffffffff
lfence
add rcx, rcx
call fcn.140006010
mov r13, rax
mov qword [rbp - 0x80], rax
mov r14, qword [rsp + 0x50]
mov rax, qword [rsp + 0x48]
mov qword [rbp - 0x70], rax
mov qword [rbp - 0x68], r15
add rbx, rbx
mov r8, rbx
lea rdx, [rbp - 0x40]
mov rcx, r13
call fcn.1401e7770
lea rcx, [rbx + r13]
mov r8, qword [rsp + 0x68]
add r8, r8
mov rdx, r12
call fcn.1401e7770
mov rax, qword [rsp + 0x48]
mov word [r13 + rax*2], si
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x1401972d2
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401972cd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14019746e
call fcn.1400079c0
movups xmm1, xmmword [rbp - 0x80]
movups xmmword [rbp - 0x60], xmm1
movups xmm2, xmmword [rbp - 0x70]
movdqu xmmword [rbp - 0x50], xmm2
mov qword [rsp + 0x38], rsi
lea rdx, [rbp - 0x60]
movq rcx, xmm1
psrldq xmm2, 8
movq rax, xmm2
cmp rax, 8
cmovae rdx, rcx
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.VERSION.dll_VerQueryValueW]
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x140197385
inc rdi
cmp word [rax + rdi*2], 0
jne 0x140197322
inc rdi
cmp rdi, 0x104
ja 0x14019737e
lfence
mov r8, qword [rsp + 0x38]
mov edx, 0x104
mov rcx, qword [rsp + 0x78]
call fcn.1401ebfa8
mov r14, qword [rsp + 0x50]
jmp 0x14019738a
mov eax, 0xa
cmp r15, rax
cmovb r15, rax
lea rcx, [r15 + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x140197462
jmp 0x14019723d
mov esi, 0x7a
jmp 0x14019738a
mov esi, 0x54f
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x1401973db
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1401973c5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140197474
call fcn.1400079c0
jmp 0x1401973db
mov esi, 0x54f
jmp 0x1401973db
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test r14, r14
je 0x14019741b
mov rdx, qword [rsp + 0x60]
sub rdx, r14
mov rax, r14
cmp rdx, 0x1000
jb 0x140197409
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14019745c
mov rcx, r14
call fcn.1400079c0
jmp 0x14019741b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov edx, esi
lea rcx, str.GetFileVersionHelper_____End:_d
call fcn.1401b6310
mov eax, esi
jmp 0x140197432
mov eax, MsiOpenDatabaseW
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.1401e2900
mov rbx, qword [rsp + 0x228]
add rsp, 0x1d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1401ec41c
nop
call fcn.1400019f0
nop
call fcn.140001a90
int3
call fcn.1401ec41c
nop
call fcn.1401ec41c
int3