Function at 0x496990
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xb
push 0
push 0
dec ecx
jne 0x496998
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
push ebp
push 0x496d11
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
xor eax, eax
mov dword [ebx + 0x57], eax
xor eax, eax
mov dword [ebx + 0x5b], eax
xor eax, eax
mov dword [ebx + 0x5f], eax
xor eax, eax
mov dword [ebx + 0x63], eax
lea eax, [ebx + 0x67]
call fcn.00404988
or esi, 0xffffffff
or edi, 0xffffffff
lea eax, [ebp - 0x1c]
mov ecx, 0x496d2c
mov edx, dword [ebx + 0x42]
call fcn.00404c8c
mov eax, dword [ebp - 0x1c]
call fcn.0040990c
test al, al
jne 0x496a14
lea eax, [ebp - 0x1c]
mov ecx, 0x496d40
mov edx, dword [ebx + 0x42]
call fcn.00404c8c
mov eax, dword [ebp - 0x1c]
call fcn.0040990c
test al, al
je 0x496ce9
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404e38
push eax
call sub.version.dll_GetFileVersionInfoSizeA
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x496ce9
mov eax, dword [ebp - 8]
call fcn.00402748
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0x20]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404e38
push eax
call sub.version.dll_GetFileVersionInfoA
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x496d4c
mov eax, dword [ebp - 0xc]
push eax
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x496a89
mov eax, dword [ebp - 0x10]
cmp dword [eax], 0xfeef04bd
jne 0x496a89
mov eax, dword [ebp - 0x10]
mov esi, dword [eax + 8]
mov eax, dword [ebp - 0x10]
mov edi, dword [eax + 0xc]
mov eax, dword [ebp - 0xc]
call fcn.00402768
cmp esi, 0xffffffff
je 0x496ce9
cmp edi, 0xffffffff
je 0x496ce9
mov eax, esi
call fcn.00407c5c
movzx eax, ax
mov dword [ebx + 0x57], eax
movzx eax, si
mov dword [ebx + 0x5b], eax
mov eax, edi
call fcn.00407c5c
movzx eax, ax
mov dword [ebx + 0x5f], eax
movzx eax, di
mov dword [ebx + 0x63], eax
mov eax, dword [ebx + 0x57]
test eax, eax
je 0x496ce9
cmp eax, 9
jg 0x496ce9
cmp dword [ebx + 0x5b], 0
jl 0x496ce9
cmp dword [ebx + 0x5b], 9
jg 0x496ce9
cmp dword [ebx + 0x5f], 0
jl 0x496ce9
cmp dword [ebx + 0x5f], 0x3e7
jg 0x496ce9
cmp dword [ebx + 0x63], 0
jl 0x496ce9
cmp dword [ebx + 0x63], 0x270f
jg 0x496ce9
lea edx, [ebp - 0x24]
mov eax, dword [ebx + 0x5f]
call fcn.004093b8
mov ecx, dword [ebp - 0x24]
lea eax, [ebp - 0x1c]
mov edx, 0x496d58
call fcn.00404c8c
lea edx, [ebp - 0x28]
mov eax, dword [ebx + 0x57]
call fcn.004093b8
push dword [ebp - 0x28]
lea edx, [ebp - 0x2c]
mov eax, dword [ebx + 0x5b]
call fcn.004093b8
push dword [ebp - 0x2c]
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404c40
mov edx, eax
sub edx, 2
mov ecx, 3
mov eax, dword [ebp - 0x1c]
call fcn.00404e98
push dword [ebp - 0x30]
lea eax, [ebx + 0x6f]
mov edx, 3
call fcn.00404d00
cmp dword [ebx + 0x63], 0x834
jle 0x496b91
sub dword [ebx + 0x63], 0x64
mov eax, dword [ebx + 0x63]
sub eax, 0x7d1
je 0x496ba5
dec eax
je 0x496bb4
sub eax, 2
je 0x496bc3
jmp 0x496bd0
lea eax, [ebx + 0x67]
mov edx, 0x496d64
call fcn.004049dc
jmp 0x496bd0
lea eax, [ebx + 0x67]
mov edx, 0x496d7c
call fcn.004049dc
jmp 0x496bd0
lea eax, [ebx + 0x67]
mov edx, 0x496d98
call fcn.004049dc
lea edx, [ebp - 0x34]
mov eax, dword [ebx + 0x63]
call fcn.004093b8
mov ecx, dword [ebp - 0x34]
lea eax, [ebp - 0x1c]
mov edx, 0x496db0
call fcn.00404c8c
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x1c]
call fcn.00404c40
mov edx, eax
sub edx, 3
mov ecx, 4
mov eax, dword [ebp - 0x1c]
call fcn.00404e98
lea edx, [ebp - 0x38]
mov eax, 0x3ea
call fcn.004093b8
push dword [ebp - 0x38]
push 0x496dc0
lea edx, [ebp - 0x3c]
mov eax, dword [ebx + 0x63]
call fcn.004093b8
push dword [ebp - 0x3c]
push 0x496dc0
lea edx, [ebp - 0x40]
mov eax, dword [ebx + 0x57]
call fcn.004093b8
push dword [ebp - 0x40]
push 0x496dc0
lea edx, [ebp - 0x44]
mov eax, dword [ebx + 0x5b]
call fcn.004093b8
push dword [ebp - 0x44]
push 0x496dc0
lea edx, [ebp - 0x48]
mov eax, dword [ebx + 0x5f]
call fcn.004093b8
push dword [ebp - 0x48]
lea eax, [ebx + 0x73]
mov edx, 9
call fcn.00404d00
lea edx, [ebp - 0x4c]
mov eax, dword [ebx + 0x57]
call fcn.004093b8
push dword [ebp - 0x4c]
push 0x496dc0
lea edx, [ebp - 0x50]
mov eax, dword [ebx + 0x5b]
call fcn.004093b8
push dword [ebp - 0x50]
push 0x496dc0
lea edx, [ebp - 0x54]
mov eax, dword [ebx + 0x5f]
call fcn.004093b8
push dword [ebp - 0x54]
lea eax, [ebx + 0x6b]
mov edx, 5
call fcn.00404d00
push 0x496dcc
push dword [ebx + 0x73]
push 0x496e0c
push 0x496e18
push 0x496e24
lea edx, [ebp - 0x58]
mov eax, dword [ebx + 0x3e]
call fcn.004093b8
push dword [ebp - 0x58]
lea eax, [ebx + 0x77]
mov edx, 6
call fcn.00404d00
mov byte [ebp - 1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x496d18
lea eax, [ebp - 0x58]
mov edx, 0xe
call fcn.004049ac
lea eax, [ebp - 0x1c]
mov edx, 2
call fcn.004049ac
ret