Function at 0x14021c578
Capabilities:
Get file version info

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1b8
mov rbx, rdx
mov rdi, rcx
mov rax, qword [0x14030c028]
xor rax, rsp
mov qword [rsp + 0x1b0], rax
cmp byte [rcx + 0x17], 0
jns 0x14021c5a4
mov rcx, qword [rdi]
xor edx, edx
call sub.VERSION.dll_GetFileVersionInfoSizeW
test eax, eax
je 0x14021c643
mov ebp, eax
mov ecx, eax
call fcn.140255dbc
mov rsi, rax
cmp byte [rdi + 0x17], 0
mov rcx, rdi
jns 0x14021c5cb
mov rcx, qword [rdi]
xor edx, edx
mov r8d, ebp
mov r9, rsi
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x14021c715
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r8, [rsp + 0x58]
mov qword [r8], rax
lea r9, [rsp + 0x34]
mov dword [r9], 0xaaaaaaaa
lea rdx, [0x1402a960a]
mov rcx, rsi
call sub.VERSION.dll_VerQueryValueW
mov edi, eax
test eax, eax
je 0x14021c7d3
mov rax, qword [rsp + 0x58]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rbx + 0x10], xmm1
mov eax, dword [rax + 0x30]
mov dword [rbx + 0x30], eax
movups xmmword [rbx + 0x20], xmm2
movups xmmword [rbx], xmm0
mov eax, dword [rbx + 0x18]
and dword [rbx + 0x1c], eax
jmp 0x14021c82c
mov ecx, 1
call fcn.1400f6360
test al, al
je 0x14021c70e
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x715
je 0x14021c70e
call sub.KERNEL32.dll_GetLastError
mov dword [rsp + 0x20], eax
lea rdx, str....._third_partycrashpadcrashpadutilwinmodule_version.cc
lea rcx, [rsp + 0x70]
mov r8d, 0x1f
mov r9d, 1
call fcn.1400f7550
lea rcx, [rsp + 0x80]
lea rdx, str.GetFileVersionInfoSize:
mov r8d, 0x18
call fcn.14001eb4a
mov rsi, rax
movzx eax, byte [rdi + 0x17]
test al, al
mov rcx, qword [rdi]
cmovns rcx, rdi
lea rdx, [rsp + 0x48]
mov qword [rdx], rcx
cmovs rax, qword [rdi + 8]
mov qword [rdx + 8], rax
lea rdi, [rsp + 0x58]
mov rcx, rdi
call fcn.140103680
movzx r8d, byte [rdi + 0x17]
test r8b, r8b
jns 0x14021c6e8
mov r8, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
mov rcx, rsi
mov rdx, rdi
call fcn.14001eb4a
cmp byte [rsp + 0x6f], 0
jns 0x14021c704
mov rcx, qword [rsp + 0x58]
call fcn.140255d7c
lea rcx, [rsp + 0x70]
call fcn.1400f7640
xor edi, edi
jmp 0x14021c83f
mov ecx, 1
call fcn.1400f6360
test al, al
je 0x14021c7cf
call sub.KERNEL32.dll_GetLastError
mov dword [rsp + 0x20], eax
lea rdx, str....._third_partycrashpadcrashpadutilwinmodule_version.cc
lea rcx, [rsp + 0x70]
mov r8d, 0x26
mov r9d, 1
call fcn.1400f7550
lea rcx, [rsp + 0x80]
lea rdx, str.GetFileVersionInfo:
mov r8d, 0x14
call fcn.14001eb4a
mov rbx, rax
movzx eax, byte [rdi + 0x17]
test al, al
mov rcx, qword [rdi]
cmovns rcx, rdi
lea rdx, [rsp + 0x38]
mov qword [rdx], rcx
cmovs rax, qword [rdi + 8]
mov qword [rdx + 8], rax
lea rdi, [rsp + 0x58]
mov rcx, rdi
call fcn.140103680
movzx r8d, byte [rdi + 0x17]
test r8b, r8b
jns 0x14021c7a9
mov r8, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x58]
mov rcx, rbx
mov rdx, rdi
call fcn.14001eb4a
cmp byte [rsp + 0x6f], 0
jns 0x14021c7c5
mov rcx, qword [rsp + 0x58]
call fcn.140255d7c
lea rcx, [rsp + 0x70]
call fcn.1400f7640
xor edi, edi
jmp 0x14021c832
mov ecx, 1
call fcn.1400f6360
test al, al
je 0x14021c82c
call sub.KERNEL32.dll_GetLastError
mov dword [rsp + 0x20], eax
lea rdx, str....._third_partycrashpadcrashpadutilwinmodule_version.cc
lea rbx, [rsp + 0x70]
mov rcx, rbx
mov r8d, 0x30
mov r9d, 1
call fcn.1400f7550
lea rcx, [rsp + 0x80]
lea rdx, str.VerQueryValue
mov r8d, 0xd
call fcn.14001eb4a
mov rcx, rbx
call fcn.1400f7640
test edi, edi
setne dil
test rsi, rsi
je 0x14021c83f
mov rcx, rsi
call fcn.140255dc4
mov rcx, qword [rsp + 0x1b0]
xor rcx, rsp
call fcn.140257200
mov eax, edi
add rsp, 0x1b8
pop rbx
pop rbp
pop rdi
pop rsi
ret