Function at 0x1012fb90
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xc8
mov esi, dword [ebp + 8]
mov eax, dword [0x101b9014]
xor eax, ebp
mov dword [esp + 0xc0], eax
cmp byte [esi + 0xb], 0
mov eax, esi
jns 0x1012fbba
mov eax, dword [esi]
push 0
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
test eax, eax
je 0x1012fc45
mov edi, eax
push eax
call fcn.10145c03
add esp, 4
cmp byte [esi + 0xb], 0
mov ecx, esi
jns 0x1012fbdb
mov ecx, dword [esi]
push eax
push edi
push 0
push ecx
mov edi, eax
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x1012fd05
xor eax, eax
dec eax
lea ecx, [esp + 8]
mov dword [ecx], eax
lea edx, [esp + 4]
mov dword [edx], eax
push edx
push ecx
push 0x101a0662
mov esi, edi
push edi
call sub.VERSION.dll_VerQueryValueW
mov edi, eax
test eax, eax
je 0x1012fdb9
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 8]
movups xmm0, xmmword [ecx]
movups xmm1, xmmword [ecx + 0x10]
movups xmmword [eax + 0x10], xmm1
mov edx, dword [ecx + 0x30]
mov dword [eax + 0x30], edx
movups xmm1, xmmword [ecx + 0x20]
movups xmmword [eax + 0x20], xmm1
movups xmmword [eax], xmm0
mov ecx, dword [eax + 0x18]
and dword [eax + 0x1c], ecx
jmp 0x1012fe01
xor ebx, ebx
cmp dword [0x101bee4c], 1
jg 0x1012fe15
cmp dword [0x101bac40], 0
je 0x1012fe15
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x715
je 0x1012fcfe
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x18]
push eax
push 1
push 0x1f
push str....._third_partycrashpadcrashpadutilwinmodule_version.cc
call fcn.10066f30
lea eax, [esp + 0x20]
push 0x18
push str.GetFileVersionInfoSize:
push eax
call fcn.10034b83
add esp, 0xc
mov edi, eax
movzx eax, byte [esi + 0xb]
test al, al
jns 0x1012fcae
mov eax, dword [esi + 4]
mov esi, dword [esi]
xor ecx, ecx
lea ebx, [esp + 8]
mov dword [ebx + 4], ecx
mov dword [ebx], ecx
mov dword [ebx + 8], ecx
push ebx
push eax
push esi
call fcn.10078390
add esp, 0xc
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x1012fcd7
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 8]
push eax
push ebx
push edi
call fcn.10034b83
add esp, 0xc
cmp byte [esp + 0x13], 0
jns 0x1012fcf5
push dword [esp + 8]
call fcn.10145bd4
add esp, 4
lea ecx, [esp + 0x18]
call fcn.100670a0
xor ebx, ebx
jmp 0x1012fe15
xor ebx, ebx
cmp dword [0x101bee4c], 1
jg 0x1012fdb5
cmp dword [0x101bac40], 0
mov eax, edi
je 0x1012fe08
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [esp + 0x18]
push eax
push 1
push 0x26
push str....._third_partycrashpadcrashpadutilwinmodule_version.cc
call fcn.10066f30
lea eax, [esp + 0x20]
push 0x14
push str.GetFileVersionInfo:
push eax
call fcn.10034b83
add esp, 0xc
mov dword [esp], eax
movzx eax, byte [esi + 0xb]
test al, al
jns 0x1012fd60
mov eax, dword [esi + 4]
mov esi, dword [esi]
xor ecx, ecx
lea ebx, [esp + 8]
mov dword [ebx + 4], ecx
mov dword [ebx], ecx
mov dword [ebx + 8], ecx
push ebx
push eax
push esi
call fcn.10078390
add esp, 0xc
movzx eax, byte [ebx + 0xb]
test al, al
jns 0x1012fd89
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 8]
push eax
push ebx
push dword [esp + 8]
call fcn.10034b83
add esp, 0xc
cmp byte [esp + 0x13], 0
jns 0x1012fdaa
push dword [esp + 8]
call fcn.10145bd4
add esp, 4
lea ecx, [esp + 0x18]
call fcn.100670a0
xor ebx, ebx
mov eax, edi
jmp 0x1012fe08
cmp dword [0x101bee4c], 1
jg 0x1012fe01
cmp dword [0x101bac40], 0
je 0x1012fe01
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ebx, [esp + 0x18]
mov ecx, ebx
push eax
push 1
push 0x30
push str....._third_partycrashpadcrashpadutilwinmodule_version.cc
call fcn.10066f30
lea eax, [esp + 0x20]
push 0xd
push str.VerQueryValue
push eax
call fcn.10034b83
add esp, 0xc
mov ecx, ebx
call fcn.100670a0
test edi, edi
setne bl
mov eax, esi
test eax, eax
je 0x1012fe15
push eax
call fcn.10145c0c
add esp, 4
mov ecx, dword [esp + 0xc0]
xor ecx, ebp
call fcn.101465a3
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret