Function at 0x48ca40
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x70
mov eax, dword [0x511014]
xor eax, ebp
mov dword [esp + 0x68], eax
pcmpeqd xmm0, xmm0
lea esi, [esp + 0x20]
movdqa xmmword [esi + 0x30], xmm0
movdqa xmmword [esi + 0x20], xmm0
movdqa xmmword [esi + 0x10], xmm0
movdqa xmmword [esi], xmm0
lea ebx, [esp + 4]
push 0x4c
push str....._base_file_version_info_win.cc
push str.CreateFileVersionInfoWin
push ebx
call fcn.00454af0
add esp, 0x10
xor edi, edi
mov ecx, esi
push edi
push edi
push ebx
call fcn.0046afe0
test byte [0x512ba0], 0x19
jne 0x48ccb7
mov dword [esp + 0x14], 0xffffffff
mov edi, dword [ebp + 0xc]
cmp byte [edi + 0xb], 0
jns 0x48cab7
mov edi, dword [edi]
mov ebx, dword [ebp + 8]
lea eax, [esp + 0x14]
push eax
push edi
call sub.VERSION.dll_GetFileVersionInfoSizeW
test eax, eax
je 0x48cc5d
mov dword [esp], edi
js 0x48cce9
mov esi, eax
push eax
call fcn.00494aa6
add esp, 4
mov edi, eax
mov ecx, eax
neg ecx
lea eax, [esi - 1]
cmp ecx, eax
cmovae ecx, eax
inc ecx
mov eax, edi
cmp ecx, 0x21
jb 0x48cb21
mov eax, ecx
and eax, 0x1f
mov edx, 0x20
cmovne edx, eax
sub ecx, edx
lea eax, [edi + ecx]
xor edx, edx
pxor xmm0, xmm0
movdqu xmmword [edi + edx], xmm0
movdqu xmmword [edi + edx + 0x10], xmm0
add edx, 0x20
cmp ecx, edx
jne 0x48cb0f
mov ebx, esi
add ebx, edi
test eax, eax
je 0x48cc84
mov byte [eax], 0
inc eax
cmp eax, ebx
jne 0x48cb25
push edi
push esi
push dword [esp + 0x1c]
push dword [esp + 0xc]
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x48cc9f
mov dword [esp + 4], 0
lea eax, [esp + 0x18]
mov dword [eax], 0xffffffff
push eax
lea eax, [esp + 8]
push eax
push str.VarFileInfoTranslation
push edi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x48cc9f
mov eax, dword [esp + 4]
mov dword [esp], eax
test eax, eax
je 0x48cc9f
push 0x1c
call fcn.00494aa6
add esp, 4
mov esi, eax
mov eax, edi
shr eax, 0xe
mov ecx, edi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x518914]
bt ecx, eax
mov eax, dword [esp]
movzx edx, word [eax]
movzx ecx, word [eax + 2]
mov dword [esi], fcn.0042a2b0
mov dword [esi + 4], edi
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
jae 0x48cc65
push edi
mov ebx, ecx
mov word [esp + 4], dx
call fcn.00455550
movzx edx, word [esp + 4]
mov ecx, ebx
add esp, 4
mov ebx, dword [ebp + 8]
mov dword [esi + 0x10], edi
mov word [esi + 0x14], dx
mov word [esi + 0x16], cx
mov dword [esp + 4], 0
mov dword [esp + 0x18], 0xffffffff
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 8]
push eax
push 0x504ee0
push edi
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x48ccee
mov edi, dword [esp + 4]
mov eax, edi
shr eax, 0xe
mov ecx, edi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x518914]
bt ecx, eax
jae 0x48cc76
push edi
call fcn.00455550
add esp, 4
mov dword [esi + 0x18], edi
mov dword [ebx], esi
lea ecx, [esp + 0x20]
call fcn.004840c0
mov ecx, dword [esp + 0x68]
xor ecx, ebp
call fcn.00496ce3
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [ebx], 0
jmp 0x48cc3f
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x520914], 1
jmp 0x48cbdc
mov eax, edi
shr eax, 0x15
mov byte [eax + 0x520914], 1
jmp 0x48cc3a
push str.null_pointer_given_to_construct_at
push str.__location___nullptr
push 0x23
push str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
push str._s:_d:_assertion__s_failed:__s
call fcn.004be7c0
mov ebx, dword [ebp + 8]
mov dword [ebx], 0
test edi, edi
je 0x48cc3f
push edi
call fcn.00494aa1
add esp, 4
jmp 0x48cc3f
lea edx, [esp + 0x14]
lea eax, [esp + 4]
mov dword [edx], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], edi
sub esp, 8
movq xmm0, qword [esp + 0x20]
movq qword [esp], xmm0
mov ecx, str.ScopedBlockingCall
call fcn.004d8680
add esp, 8
jmp 0x48caa4
call fcn.004a8580
int3