Function at 0x4020f0
Capabilities:
Get file version info

Disassembly:
sub esp, 0x80
mov eax, dword [0x443350]
push esi
push edi
mov edi, dword [esp + 0x8c]
mov dword [esp + 0x84], eax
lea eax, [esp + 0x1c]
push eax
push edi
mov dword [esp + 0x24], 0
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov esi, eax
test esi, esi
jne 0x402154
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
push ecx
push str.Version
push edx
call dword [sym.imp.MSVCR71.dll_wcsncpy]
add esp, 0xc
pop edi
pop esi
mov ecx, dword [esp + 0x7c]
call fcn.00426448
add esp, 0x80
ret
push ebx
push ebp
push esi
call dword [sym.imp.MSVCR71.dll_malloc]
add esp, 4
mov ebx, eax
push ebx
push esi
push 0
push edi
mov dword [esp + 0x28], ebx
call sub.VERSION.dll_GetFileVersionInfoW
lea eax, [esp + 0x20]
push eax
lea ecx, [esp + 0x20]
push ecx
push str.VarFileInfoTranslation
push ebx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
mov esi, dword [sym.imp.MSVCR71.dll__snwprintf]
je 0x4021ca
mov eax, dword [esp + 0x1c]
movzx edx, word [eax + 2]
movzx eax, word [eax]
push edx
push eax
push 0x433ac8
lea ecx, [esp + 0x34]
push 0x64
push ecx
call esi
add esp, 0x14
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x30]
push ecx
push ebx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
mov edi, dword [esp + 0x10]
jne 0x4021ce
mov edi, dword [esp + 0x20]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x14]
push eax
push 0x433ac4
push ebx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x4023be
mov ecx, dword [esp + 0x10]
test dword [ecx + 8], 0xffff0000
je 0x402359
mov ebx, dword [ecx + 0xc]
mov eax, ebx
and eax, 0xffff
xor edx, edx
mov ebp, 0x64
div ebp
test edx, edx
je 0x40228c
test ebx, 0xffff0000
je 0x40225b
mov eax, ebx
xor edx, edx
and eax, 0xffff
div ebp
mov ecx, dword [ecx + 8]
mov eax, dword [esp + 0x9c]
shr ebx, 0x10
push edx
push ebx
mov edx, ecx
and edx, 0xffff
push edx
shr ecx, 0x10
push ecx
mov ecx, dword [esp + 0xa8]
push edi
push str._s_version__d._d._d_beta__d
push eax
push ecx
call esi
add esp, 0x20
jmp 0x4023be
mov ecx, dword [ecx + 8]
mov eax, dword [esp + 0x9c]
push edx
mov edx, ecx
and edx, 0xffff
push edx
shr ecx, 0x10
push ecx
mov ecx, dword [esp + 0xa4]
push edi
push str._s_version__d._d_beta__d
push eax
push ecx
call esi
add esp, 0x1c
jmp 0x4023be
test eax, eax
je 0x40231b
test ebx, 0xffff0000
je 0x4022e8
mov ebx, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
mov edx, ebx
and edx, 0xffff
mov eax, 0x51eb851f
mul edx
shr edx, 5
add edx, 0x60
push edx
mov edx, dword [esp + 0x9c]
mov eax, ecx
shr ebx, 0x10
push ebx
and eax, 0xffff
push eax
shr ecx, 0x10
push ecx
mov ecx, dword [esp + 0xac]
push edi
push str._s_version__d._d._d_c
push ecx
push edx
call esi
add esp, 0x20
jmp 0x4023be
mov ecx, dword [ecx + 8]
mov edx, dword [esp + 0x98]
add eax, 0x60
push eax
mov eax, ecx
and eax, 0xffff
push eax
shr ecx, 0x10
push ecx
mov ecx, dword [esp + 0xa8]
push edi
push str._s_version__d._d_c
push ecx
push edx
call esi
add esp, 0x1c
jmp 0x4023be
mov ecx, dword [ecx + 8]
mov edx, dword [esp + 0x98]
mov eax, ecx
shr ebx, 0x10
shr ecx, 0x10
and eax, 0xffff
test ebx, ebx
je 0x40234f
push ebx
push eax
push ecx
mov ecx, dword [esp + 0xa8]
push edi
push str._s_version__d._d._d
push ecx
push edx
call esi
add esp, 0x1c
jmp 0x4023be
push eax
push ecx
push edi
push str._s_version__d._d
jmp 0x4023b0
mov eax, dword [ecx + 0xc]
test eax, 0xffff
je 0x402396
mov edx, eax
and edx, 0xffff
push edx
mov edx, dword [esp + 0x9c]
shr eax, 0x10
push eax
mov eax, dword [ecx + 8]
mov ecx, dword [esp + 0xa4]
and eax, 0xffff
push eax
push edi
push str._s_Beta__d._d_beta__d
push ecx
push edx
call esi
add esp, 0x1c
jmp 0x4023be
mov edx, dword [esp + 0x98]
shr eax, 0x10
push eax
mov eax, dword [ecx + 8]
and eax, 0xffff
push eax
push edi
push str._s_Beta__d._d
mov ecx, dword [esp + 0xac]
push ecx
push edx
call esi
add esp, 0x18
mov eax, dword [esp + 0x18]
push eax
call dword [sym.imp.MSVCR71.dll_free]
mov ecx, dword [esp + 0x90]
add esp, 4
pop ebp
pop ebx
pop edi
pop esi
call fcn.00426448
add esp, 0x80
ret