Function at 0x4db664
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc4
mov esi, dword [ebp + 8]
mov eax, dword [0x596ff8]
xor eax, ebp
mov dword [ebp - 0x10], eax
lea ebx, [esi + 2]
test byte [esi], 1
mov eax, ebx
je 0x4db68a
mov eax, dword [esi + 8]
push 0
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
test eax, eax
je 0x4db71f
mov edi, eax
push eax
call fcn.00512923
add esp, 4
test byte [esi], 1
mov ecx, ebx
je 0x4db6af
mov ecx, dword [esi + 8]
push eax
push edi
push 0
push ecx
mov edi, eax
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x4db78a
xor eax, eax
dec eax
lea ecx, [ebp - 0xc8]
mov dword [ecx], eax
lea edx, [ebp - 0xcc]
mov dword [edx], eax
push edx
push ecx
push 0x543100
mov esi, edi
push edi
call sub.VERSION.dll_VerQueryValueW
mov edi, eax
test eax, eax
je 0x4db7e2
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0xc8]
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 0x4db829
push 1
call fcn.0042ae10
add esp, 4
test al, al
je 0x4db8ff
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x715
je 0x4db8ff
call fcn.0042b8e0
lea ecx, [ebp - 0xbc]
push eax
push 1
push 0x1f
push str..._.._third_party_crashpad_crashpad_util_win_module_version.cc
call fcn.0042ba80
lea eax, [ebp - 0xb4]
push 0x18
push str.GetFileVersionInfoSize:
push eax
call fcn.00401c91
add esp, 0xc
mov edi, eax
movzx eax, byte [esi]
test al, 1
je 0x4db8a2
mov ebx, dword [esi + 8]
mov eax, dword [esi + 4]
jmp 0x4db8a4
push 1
call fcn.0042ae10
add esp, 4
test al, al
je 0x4db893
call fcn.0042b8e0
lea ecx, [ebp - 0xbc]
push eax
push 1
push 0x26
push str..._.._third_party_crashpad_crashpad_util_win_module_version.cc
call fcn.0042ba80
lea eax, [ebp - 0xb4]
push 0x14
push str.GetFileVersionInfo:
push eax
call fcn.00401c91
add esp, 0xc
movzx ecx, byte [esi]
test cl, 1
mov dword [ebp - 0xd0], eax
je 0x4db830
mov ebx, dword [esi + 8]
mov ecx, dword [esi + 4]
jmp 0x4db832
push 1
call fcn.0042ae10
add esp, 4
test al, al
je 0x4db829
call fcn.0042b8e0
lea ebx, [ebp - 0xbc]
mov ecx, ebx
push eax
push 1
push 0x30
push str..._.._third_party_crashpad_crashpad_util_win_module_version.cc
call fcn.0042ba80
lea eax, [ebp - 0xb4]
push 0xd
push str.VerQueryValue
push eax
call fcn.00401c91
add esp, 0xc
mov ecx, ebx
call fcn.0042bb30
test edi, edi
setne bl
jmp 0x4db897
shr ecx, 1
lea esi, [ebp - 0xc8]
push ecx
push ebx
push esi
call fcn.00438930
add esp, 0xc
movzx eax, byte [esi]
test al, 1
je 0x4db858
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc0]
jmp 0x4db860
shr eax, 1
lea ecx, [ebp - 0xc7]
mov edx, dword [ebp - 0xd0]
push eax
push ecx
push edx
call fcn.00401c91
add esp, 0xc
test byte [ebp - 0xc8], 1
je 0x4db888
push dword [ebp - 0xc0]
call fcn.005128f8
add esp, 4
lea ecx, [ebp - 0xbc]
call fcn.0042bb30
xor ebx, ebx
mov esi, edi
push esi
call fcn.0051292c
add esp, 4
jmp 0x4db901
shr eax, 1
lea esi, [ebp - 0xc8]
push eax
push ebx
push esi
call fcn.00438930
add esp, 0xc
movzx eax, byte [esi]
test al, 1
je 0x4db8ca
mov eax, dword [ebp - 0xc4]
mov ecx, dword [ebp - 0xc0]
jmp 0x4db8d2
shr eax, 1
lea ecx, [ebp - 0xc7]
push eax
push ecx
push edi
call fcn.00401c91
add esp, 0xc
test byte [ebp - 0xc8], 1
je 0x4db8f4
push dword [ebp - 0xc0]
call fcn.005128f8
add esp, 4
lea ecx, [ebp - 0xbc]
call fcn.0042bb30
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00512931
mov eax, ebx
add esp, 0xc4
pop esi
pop edi
pop ebx
pop ebp
ret