Function at 0x402ff0
Capabilities:
Get file version info

Disassembly:
sub esp, 0x15c
cmp dword [esp + 0x168], 1
push ebx
push esi
push edi
push ebp
jne 0x4031ae
lea eax, [esp + 0x24]
mov ecx, dword [esp + 0x170]
push eax
push ecx
call sub.VERSION.dll_GetFileVersionInfoSizeA
push eax
mov ebp, eax
push 8
mov esi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
call esi
push eax
mov ebx, dword [sym.imp.KERNEL32.dll_HeapAlloc]
call ebx
mov edi, eax
test edi, edi
jne 0x403046
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x15c
ret
mov eax, dword [esp + 0x170]
push edi
push ebp
push 0
push eax
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
jne 0x403077
push edi
push 0
call esi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x15c
ret
lea eax, [esp + 0x28]
lea ecx, [esp + 0x10]
push eax
push ecx
push 0x407114
push edi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x4030ac
push edi
push 0
call esi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x15c
ret
mov eax, dword [esp + 0x10]
push edi
push 0
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x28], edx
call esi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ecx, [esp + 0x24]
mov edi, dword [esp + 0x174]
push ecx
push edi
call sub.VERSION.dll_GetFileVersionInfoSizeA
push eax
mov ebp, eax
push 8
call esi
push eax
call ebx
mov ebx, eax
test ebx, ebx
jne 0x4030fc
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x15c
ret
push ebx
push ebp
push 0
push edi
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
jne 0x403126
push ebx
push 0
call esi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x15c
ret
lea eax, [esp + 0x28]
lea ecx, [esp + 0x10]
push eax
push ecx
push 0x407114
push ebx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x40315b
push ebx
push 0
call esi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x15c
ret
mov eax, dword [esp + 0x10]
push ebx
push 0
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x1c], ecx
mov edx, dword [eax + 8]
mov dword [esp + 0x20], edx
call esi
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
lea ecx, [esp + 0x14]
lea edx, [esp + 0x1c]
push ecx
mov esi, dword [sym.imp.KERNEL32.dll_CompareFileTime]
push edx
call esi
test eax, eax
jle 0x40319f
mov eax, 1
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x15c
ret
jge 0x4031bb
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x15c
ret
mov edi, dword [esp + 0x174]
mov esi, dword [sym.imp.KERNEL32.dll_CompareFileTime]
lea eax, [esp + 0x2c]
mov ecx, dword [esp + 0x170]
push eax
mov ebp, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
push ecx
call ebp
cmp eax, 0xffffffff
jne 0x4031e5
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x15c
ret
push eax
mov ebx, dword [sym.imp.KERNEL32.dll_FindClose]
call ebx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x2c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], ecx
push edx
push edi
call ebp
cmp eax, 0xffffffff
jne 0x40321b
mov eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x15c
ret
push eax
call ebx
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x1c]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
mov dword [esp + 0x18], ecx
push eax
push edx
call esi
test eax, eax
mov eax, 1
jg 0x403245
xor eax, eax
pop ebp
pop edi
pop esi
pop ebx
add esp, 0x15c
ret