Function at 0x40b4a1
Capabilities:
Get file version info

Disassembly:
push 0x294
mov eax, 0x47245d
call fcn.00459c76
mov edi, edx
mov dword [ebp - 0x244], edi
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor edi, edi
mov ebx, ecx
push edi
push ebx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov esi, eax
cmp esi, edi
jne 0x40b4d7
xor al, al
call fcn.00459cf9
ret
lea eax, [ebp - 0x22c]
push eax
call fcn.0040d5fb
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x22c]
mov dword [ebp - 4], edi
call fcn.0040bdd0
lea eax, [ebp - 0x22c]
call fcn.0040be4f
push eax
push esi
push edi
push ebx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
jne 0x40b541
cmp dword [ebp - 0x220], edi
je 0x40b521
push dword [ebp - 0x220]
call fcn.00453664
pop ecx
push dword [ebp - 0x22c]
mov dword [ebp - 0x220], edi
mov dword [ebp - 0x21c], edi
mov dword [ebp - 0x218], edi
call fcn.00453664
pop ecx
jmp 0x40b4cf
lea eax, [ebp - 0x268]
push eax
lea eax, [ebp - 0x240]
push eax
push 0x47efb0
lea eax, [ebp - 0x22c]
call fcn.0040be4f
push eax
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x40b50d
xor eax, eax
push 0x1fe
mov word [ebp - 0x214], ax
lea eax, [ebp - 0x212]
push edi
push eax
call fcn.0045f360
mov eax, dword [ebp - 0x240]
mov eax, dword [eax]
add esp, 0xc
rol eax, 0x10
push eax
push str.StringFileInfo_08XFileVersion
lea eax, [ebp - 0x214]
push 0x100
push eax
call fcn.00455b9a
add esp, 0x10
lea eax, [ebp - 0x23c]
push eax
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x214]
push eax
lea eax, [ebp - 0x22c]
mov dword [ebp - 0x230], edi
mov dword [ebp - 0x23c], edi
call fcn.0040be4f
push eax
call sub.VERSION.dll_VerQueryValueW
test eax, eax
jne 0x40b61d
cmp dword [ebp - 0x220], edi
je 0x40b5f6
push dword [ebp - 0x220]
call fcn.00453664
pop ecx
xor bl, bl
push dword [ebp - 0x22c]
mov dword [ebp - 0x220], edi
mov dword [ebp - 0x21c], edi
mov dword [ebp - 0x218], edi
call fcn.00453664
pop ecx
mov al, bl
jmp 0x40b4d1
mov ecx, dword [ebp - 0x230]
mov edx, dword [ebp - 0x23c]
xor eax, eax
push str.__:.__t_n
lea esi, [ebp - 0x284]
mov word [ecx + edx*2 + 2], ax
call fcn.004095a2
mov byte [ebp - 4], 1
push dword [ebp - 0x230]
lea esi, [ebp - 0x2a0]
call fcn.004095a2
mov eax, esi
push eax
lea eax, [ebp - 0x264]
push eax
lea edi, [ebp - 0x284]
mov byte [ebp - 4], 2
call fcn.0040d489
pop ecx
pop ecx
xor ebx, ebx
push ebx
push 1
call fcn.004095f2
push ebx
push 1
mov esi, edi
call fcn.004095f2
mov esi, dword [ebp - 0x258]
cmp esi, dword [ebp - 0x254]
jbe 0x40b697
call fcn.00455b8a
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x234], esi
mov esi, dword [ebp - 0x254]
mov dword [ebp - 0x238], eax
cmp dword [ebp - 0x258], esi
jbe 0x40b6bc
call fcn.00455b8a
mov eax, dword [ebp - 0x264]
mov dword [ebp - 0x24c], eax
mov dword [ebp - 0x248], esi
jmp 0x40b70a
cmp ebx, 4
jge 0x40b71f
lea esi, [ebp - 0x238]
call fcn.0040cf8f
cmp dword [eax + 0x18], 8
jb 0x40b6eb
mov eax, dword [eax + 4]
jmp 0x40b6ee
add eax, 4
push eax
call fcn.00455cf0
pop ecx
mov ecx, dword [ebp - 0x244]
lea esi, [ebp - 0x238]
mov dword [ecx + ebx*4], eax
call fcn.0040c804
inc ebx
lea edi, [ebp - 0x24c]
lea esi, [ebp - 0x238]
call fcn.0040bec1
test al, al
jne 0x40b6d0
lea esi, [ebp - 0x264]
call fcn.0040c7df
push dword [ebp - 0x264]
call fcn.00453664
cmp dword [ebp - 0x220], 0
pop ecx
je 0x40b74b
push dword [ebp - 0x220]
call fcn.00453664
pop ecx
mov bl, 1
xor edi, edi
jmp 0x40b5f8