Function at 0x407a80
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4e86d6
mov eax, dword fs:[0]
push eax
sub esp, 0x31c
mov eax, dword [0x529474]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x103
lea eax, [ebp - 0x113]
push 0
push eax
mov esi, ecx
mov dword [ebp - 0x328], 0
mov byte [ebp - 0x114], 0
call fcn.00416190
push 0x103
lea ecx, [ebp - 0x2df]
push 0
push ecx
mov byte [ebp - 0x2e0], 0
call fcn.00416190
add esp, 0x18
cmp esi, 0x64
jb 0x407e9f
push esi
push 0
push 0x42a
call dword [0x53e934]
mov esi, eax
test esi, esi
je 0x407e9f
mov eax, dword [0x5399f8]
inc eax
mov dword [0x5399f8], eax
cmp eax, 0x22dc
jbe 0x407b2b
xor eax, eax
mov dword [0x5399f8], eax
push 0x104
lea edx, [ebp - 0x114]
push edx
and eax, 0x189
push 0
or eax, 0x24
push esi
mov dword [0x53e928], eax
call dword [sym.imp.PSAPI.DLL_GetModuleFileNameExA]
lea eax, [ebp - 0x114]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407b56
sub eax, edx
cmp eax, 4
jae 0x407b88
push 0x104
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.00416190
lea ecx, [ebp - 0x114]
push ecx
mov ecx, esi
call fcn.00407810
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
lea eax, [ebp - 0x114]
mov dword [0x53e928], 0x3ff1
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407ba2
sub eax, edx
cmp eax, 4
jae 0x407bbe
call dword [sym.imp.KERNEL32.DLL_GetLastError]
or eax, 0xffffffff
jmp 0x407ea1
push 0
push 0
push 0x104
lea edx, [ebp - 0x2e0]
push edx
push 0
push 0
push 0
lea eax, [ebp - 0x114]
push 0
push eax
call fcn.00413cf2
lea eax, [ebp - 0x2e0]
add esp, 0x24
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x407bf0
sub eax, edx
cmp eax, 1
jbe 0x407c12
lea ecx, [ebp - 0x2e0]
push ecx
call fcn.00407500
test eax, eax
jne 0x407df1
mov eax, dword [0x5399fc]
inc eax
mov dword [0x5399fc], eax
cmp eax, 0x22dc
jbe 0x407c2b
xor eax, eax
mov dword [0x5399fc], eax
and eax, 0x189
or eax, 0x24
lea edx, [ebp - 0x328]
mov dword [0x53e928], eax
push edx
lea eax, [ebp - 0x114]
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeA]
mov esi, eax
test esi, esi
je 0x407e9f
add esi, 0x10
lea edi, [esi + 1]
push edi
call fcn.004123c6
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x407e9f
push edi
push 0
push ebx
call fcn.00416190
add esp, 0xc
push ebx
push esi
xor edi, edi
push edi
lea ecx, [ebp - 0x114]
push ecx
call dword [sym.imp.VERSION.dll_GetFileVersionInfoA]
test eax, eax
je 0x407e70
push 0xc7
lea edx, [ebp - 0x1db]
push edi
push edx
mov dword [ebp - 0x31c], edi
mov byte [ebp - 0x1dc], 0
call fcn.00416190
add esp, 0xc
lea eax, [ebp - 0x31c]
push eax
lea ecx, [ebp - 0x324]
push ecx
push 0x537278
push ebx
mov dword [ebp - 0x324], edi
call dword [sym.imp.VERSION.dll_VerQueryValueA]
test eax, eax
je 0x407e64
mov eax, dword [0x539a00]
inc eax
mov dword [0x539a00], eax
cmp eax, 0x22dc
jbe 0x407cf8
xor eax, eax
mov dword [0x539a00], eax
and eax, 0x189
or eax, 0x24
mov dword [0x53e928], eax
mov eax, dword [ebp - 0x324]
movzx edx, word [eax + 2]
movzx eax, word [eax]
push edx
push eax
push str._04x_04x_
lea ecx, [ebp - 0x1dc]
push 0xc8
push ecx
call fcn.004139a5
add esp, 0x14
push 0x5372b0
lea ecx, [ebp - 0x2fc]
call fcn.00403640
lea edx, [ebp - 0x2fc]
push edx
lea eax, [ebp - 0x1dc]
mov dword [ebp - 4], edi
call fcn.00402030
lea eax, [ebp - 0x2fc]
push eax
mov eax, 0x5372c8
call fcn.00402030
mov eax, dword [ebp - 0x2fc]
mov esi, 0x10
mov dword [ebp - 0x320], edi
cmp dword [ebp - 0x2e8], esi
jae 0x407d82
lea eax, [ebp - 0x2fc]
lea ecx, [ebp - 0x31c]
push ecx
lea edx, [ebp - 0x320]
push edx
push eax
push ebx
call dword [sym.imp.VERSION.dll_VerQueryValueA]
test eax, eax
je 0x407e1e
mov eax, dword [ebp - 0x320]
push eax
lea ecx, [ebp - 0x318]
call fcn.00403640
push ebx
mov byte [ebp - 4], 1
call fcn.00413bc8
add esp, 4
cmp dword [ebp - 0x304], esi
jb 0x407dfb
mov eax, dword [ebp - 0x318]
cmp eax, edi
je 0x407e03
push eax
call fcn.00407500
cmp eax, edi
je 0x407e03
lea ecx, [ebp - 0x318]
call fcn.00401fd0
lea ecx, [ebp - 0x2fc]
call fcn.00401fd0
mov eax, 1
jmp 0x407ea1
lea eax, [ebp - 0x318]
jmp 0x407dd1
lea ecx, [ebp - 0x318]
call fcn.00401fd0
lea ecx, [ebp - 0x2fc]
call fcn.00401fd0
jmp 0x407e9f
call dword [sym.imp.KERNEL32.DLL_GetLastError]
test eax, eax
je 0x407e4e
mov eax, dword [0x539a04]
inc eax
mov dword [0x539a04], eax
cmp eax, 0x22dc
jbe 0x407e41
xor eax, eax
mov dword [0x539a04], eax
and eax, 0x189
or eax, 0x24
mov dword [0x53e928], eax
push ebx
call fcn.00413bc8
add esp, 4
lea ecx, [ebp - 0x2fc]
call fcn.00401fd0
jmp 0x407e9f
mov dword [0x53e928], 0x3ff1
jmp 0x407e96
mov eax, dword [0x539a08]
inc eax
mov dword [0x539a08], eax
cmp eax, 0x22dc
jbe 0x407e89
xor eax, eax
mov dword [0x539a08], eax
and eax, 0x189
or eax, 0x24
mov dword [0x53e928], eax
push ebx
call fcn.00413bc8
add esp, 4
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004123d1
mov esp, ebp
pop ebp
ret