Function at 0x401000
Capabilities:
Get file version info

Disassembly:
push ebp
lea ebp, [esp - 0xb4]
sub esp, 0x134
mov eax, dword [0x449748]
push edi
xor edi, edi
cmp dword [0x44c998], edi
mov dword [ebp + 0xb0], eax
jne 0x40125e
push esi
mov esi, 0x104
push esi
call fcn.0042629a
push esi
mov dword [0x44c998], eax
call fcn.0042629a
cmp dword [0x44c998], edi
pop ecx
pop ecx
mov dword [0x44c99c], eax
je 0x40125d
cmp eax, edi
je 0x40125d
push esi
lea eax, [ebp - 0x54]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x40106d
mov byte [ebp - 0x54], al
push edi
lea eax, [ebp - 0x54]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
cmp esi, edi
jbe 0x40125d
lea eax, [esi + 2]
push ebx
push eax
call fcn.0042629a
pop ecx
mov ebx, eax
push ebx
push esi
push edi
lea eax, [ebp - 0x54]
push eax
mov dword [ebp - 0x70], ebx
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
je 0x40124d
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x80]
push eax
push str.StringFileInfo041104b0FileVersion
push ebx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x40124d
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x74]
push eax
push str.StringFileInfo041104b0FileDescription
push ebx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
mov esi, 0x43c616
jne 0x4010df
mov dword [ebp - 0x74], esi
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x58]
push eax
push str.StringFileInfo041104b0SpecialBuild
push ebx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x4010f9
mov dword [ebp - 0x58], esi
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x6c]
push eax
push str.StringFileInfo041104b0LegalCopyright
push ebx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x401113
mov dword [ebp - 0x6c], esi
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x78]
push eax
push str.StringFileInfo041104b0PrivateBuild
push ebx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x40112d
mov dword [ebp - 0x78], esi
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x7c]
push eax
lea eax, [ebp - 0x60]
push eax
push str._u__u__u__u
push dword [ebp - 0x80]
call fcn.004262ac
push dword [ebp - 0x6c]
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
push str._s_nAll_rights_reserved.
push dword [0x44c99c]
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcmpiA]
add esp, 0x24
push str.beta
push dword [ebp - 0x58]
call ebx
test eax, eax
mov edi, 0x43c570
jne 0x401181
mov dword [ebp - 0x58], edi
jmp 0x401196
push str.alpha
push dword [ebp - 0x58]
call ebx
test eax, eax
jne 0x401196
mov dword [ebp - 0x58], 0x43c564
push dword [ebp - 0x78]
push dword [ebp - 0x58]
push dword [ebp - 0x68]
push dword [ebp - 0x64]
push dword [ebp - 0x7c]
push dword [ebp - 0x60]
push dword [ebp - 0x74]
push str._s_version__u._u_u._02u_s___s_
push dword [0x44c998]
call esi
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x7c]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
mov ecx, dword [ebp - 0x64]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
imul eax, eax, 0x64
add eax, dword [ebp - 0x68]
add esp, 0x24
push edi
push dword [ebp - 0x58]
mov dword [0x44c9a4], eax
call esi
test eax, eax
je 0x401246
push str.Final_Beta
push dword [ebp - 0x58]
call ebx
test eax, eax
je 0x401246
push str.Release_Candidate
push dword [ebp - 0x58]
call ebx
test eax, eax
je 0x401246
push 0x43c564
push dword [ebp - 0x58]
call esi
test eax, eax
je 0x401246
push str.Public_Preview
push dword [ebp - 0x58]
call ebx
test eax, eax
je 0x401246
push str.Test_Release
push dword [ebp - 0x58]
call ebx
test eax, eax
je 0x401246
push str.Preview_Release
push dword [ebp - 0x58]
call esi
test eax, eax
mov byte [0x44c9a0], 0
jne 0x40124d
mov byte [0x44c9a0], 1
cmp dword [ebp - 0x70], 0
pop ebx
je 0x40125d
push dword [ebp - 0x70]
call fcn.004262e0
pop ecx
pop esi
mov ecx, dword [ebp + 0xb0]
pop edi
call fcn.00428306
add ebp, 0xb4
leave
ret