Function at 0x402230
Capabilities:
Get common file path
Get file version info
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xad0
push 0x64
mov eax, dword [0x40c604]
push eax
call dword [sym.imp.KERNEL32.DLL_WaitForSingleObject]
neg eax
sbb eax, eax
inc eax
mov dword [ebp - 8], eax
call fcn.00407d3d
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x3c
mov edx, dword [ecx + 0x411e68]
mov dword [ebp - 0x814], edx
mov eax, dword [ebp - 4]
imul eax, eax, 0x3c
add eax, 0x411e74
push eax
push str._s__
lea ecx, [ebp - 0x40c]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea edx, [ebp - 0x40c]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
cmp dword [0x40ca60], 0
je 0x402330
mov dword [ebp - 0x91c], 0
push 0
push 2
call dword [0x40c3c8]
mov dword [ebp - 0x91c], eax
mov dword [ebp - 0xa44], 0x128
lea ecx, [ebp - 0xa44]
push ecx
mov edx, dword [ebp - 0x91c]
push edx
call dword [0x40c3c4]
mov eax, dword [ebp - 0x814]
cmp eax, dword [ebp - 0xa3c]
jne 0x402306
lea ecx, [ebp - 0xa20]
push ecx
lea edx, [ebp - 0x918]
push edx
call sub.MSVCRT.dll_strcpy
add esp, 8
jmp 0x40231e
lea eax, [ebp - 0xa44]
push eax
mov ecx, dword [ebp - 0x91c]
push ecx
call dword [0x40c3c0]
test eax, eax
jne 0x4022e0
mov edx, dword [ebp - 0x91c]
push edx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x402520
mov eax, dword [ebp - 0x814]
push eax
push 0
push 0x410
call dword [sym.imp.KERNEL32.DLL_OpenProcess]
mov dword [ebp - 0xa50], eax
cmp dword [ebp - 0xa50], 0
jne 0x40236c
push str.ERROR:_OpenProcess___failed.
lea ecx, [ebp - 0x918]
push ecx
call sub.MSVCRT.dll_strcpy
add esp, 8
jmp 0x40296a
mov dword [ebp - 0xa4c], 4
lea edx, [ebp - 0xa4c]
push edx
push 4
lea eax, [ebp - 0xa48]
push eax
mov ecx, dword [ebp - 0xa50]
push ecx
call dword [0x40c3cc]
test eax, eax
jne 0x4023bd
push str.ERROR:_EnumProcessModules___failed.
lea edx, [ebp - 0x918]
push edx
call sub.MSVCRT.dll_strcpy
add esp, 8
mov eax, dword [ebp - 0xa50]
push eax
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x402965
push 0x400
lea ecx, [ebp - 0x918]
push ecx
mov edx, dword [ebp - 0xa48]
push edx
mov eax, dword [ebp - 0xa50]
push eax
call dword [0x40c3d4]
mov dword [ebp - 0xa54], eax
mov ecx, dword [ebp - 0xa50]
push ecx
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
lea edx, [ebp - 0x918]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
cmp eax, 4
jbe 0x402465
lea eax, [ebp - 0x918]
push eax
lea ecx, [ebp - 0x40c]
push ecx
call sub.MSVCRT.dll_strcpy
add esp, 8
mov byte [ebp - 0x408], 0
push str.___
lea edx, [ebp - 0x40c]
push edx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x402465
lea eax, [ebp - 0x914]
push eax
lea ecx, [ebp - 0x40c]
push ecx
call sub.MSVCRT.dll_strcpy
add esp, 8
lea edx, [ebp - 0x40c]
push edx
lea eax, [ebp - 0x918]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
lea ecx, [ebp - 0x918]
push ecx
call sub.MSVCRT.dll_strlen
add esp, 4
cmp eax, 0xc
jbe 0x402520
lea edx, [ebp - 0x918]
push edx
lea eax, [ebp - 0x40c]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
mov byte [ebp - 0x400], 0
push str.SystemRoot_
lea ecx, [ebp - 0x40c]
push ecx
call sub.MSVCRT.dll_strcmp
add esp, 8
test eax, eax
jne 0x402520
lea edx, [ebp - 0x90c]
push edx
lea eax, [ebp - 0x40c]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
push 0x104
lea ecx, [ebp - 0x918]
push ecx
call dword [sym.imp.KERNEL32.DLL_GetWindowsDirectoryA]
lea edx, [ebp - 0x918]
push edx
call sub.MSVCRT.dll_strlen
add esp, 4
movsx eax, byte [ebp + eax - 0x919]
cmp eax, 0x5c
je 0x40250a
push 0x40b248
lea ecx, [ebp - 0x918]
push ecx
call sub.MSVCRT.dll_strcat
add esp, 8
lea edx, [ebp - 0x40c]
push edx
lea eax, [ebp - 0x918]
push eax
call sub.MSVCRT.dll_strcat
add esp, 8
lea ecx, [ebp - 0x918]
push ecx
push 0x402
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea eax, [ebp - 0x80c]
push eax
lea ecx, [ebp - 0x40c]
push ecx
mov edx, dword [ebp - 0x814]
push edx
call fcn.00407d78
add esp, 0xc
lea eax, [ebp - 0x80c]
push eax
push 0x409
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea edx, [ebp - 0x40c]
push edx
push 0x40a
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x3c
mov edx, dword [ecx + 0x411e98]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4025b7
push 0x400
lea eax, [ebp - 0x40c]
push eax
mov ecx, dword [ebp - 4]
imul ecx, ecx, 0x3c
mov edx, dword [ecx + 0x411e98]
push edx
call dword [sym.imp.USER32.dll_GetWindowTextA]
jmp 0x4025cb
push str._no_window_
lea eax, [ebp - 0x40c]
push eax
call sub.MSVCRT.dll_strcpy
add esp, 8
lea ecx, [ebp - 0x40c]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 2
push 0
lea eax, [ebp - 0x918]
push eax
call dword [sym.imp.KERNEL32.DLL_LoadLibraryExA]
mov dword [0x40c470], eax
mov dword [0x40c474], 0
cmp dword [0x40c470], 0
je 0x402635
push 0
push 0x402a80
push 0xe
mov ecx, dword [0x40c470]
push ecx
call dword [sym.imp.KERNEL32.DLL_EnumResourceNamesA]
mov edx, dword [0x40c3dc]
push edx
mov eax, dword [0x40c470]
push eax
call fcn.00402973
add esp, 8
mov dword [0x40c474], eax
cmp dword [0x40c474], 0
jne 0x402652
push 0x6c
mov ecx, dword [0x40ca58]
push ecx
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [0x40c474], eax
mov edx, dword [0x40c474]
push edx
push 1
push 0x172
push 0x403
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [ebp - 0xc]
push ecx
lea edx, [ebp - 0x918]
push edx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x810], eax
cmp dword [ebp - 0x810], 0
je 0x402951
mov eax, dword [ebp - 0x810]
push eax
call dword [sym.imp.MSVCRT.dll_malloc]
add esp, 4
mov dword [ebp - 0xacc], eax
mov ecx, dword [ebp - 0xacc]
push ecx
mov edx, dword [ebp - 0x810]
push edx
push 0
lea eax, [ebp - 0x918]
push eax
call sub.VERSION.dll_GetFileVersionInfoA
lea ecx, [ebp - 0xac0]
push ecx
lea edx, [ebp - 0xac8]
push edx
push str.VarFileInfoTranslation
mov eax, dword [ebp - 0xacc]
push eax
call sub.VERSION.dll_VerQueryValueA
cmp dword [ebp - 0xac0], 0
je 0x402941
mov ecx, dword [ebp - 0xac8]
xor edx, edx
mov dx, word [ecx + 2]
push edx
mov eax, dword [ebp - 0xac8]
xor ecx, ecx
mov cx, word [eax]
push ecx
push str.StringFileInfo_04x_04x_
lea edx, [ebp - 0xabc]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea eax, [ebp - 0xabc]
push eax
lea ecx, [ebp - 0x40c]
push ecx
call sub.MSVCRT.dll_strcpy
add esp, 8
push 0x40b290
lea edx, [ebp - 0x40c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
lea eax, [ebp - 0xac4]
push eax
lea ecx, [ebp - 0xa58]
push ecx
lea edx, [ebp - 0x40c]
push edx
mov eax, dword [ebp - 0xacc]
push eax
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x40278a
mov ecx, dword [ebp - 0xa58]
push ecx
push 0x404
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea eax, [ebp - 0xabc]
push eax
lea ecx, [ebp - 0x40c]
push ecx
call sub.MSVCRT.dll_strcpy
add esp, 8
push 0x40b2a0
lea edx, [ebp - 0x40c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
lea eax, [ebp - 0xac4]
push eax
lea ecx, [ebp - 0xa58]
push ecx
lea edx, [ebp - 0x40c]
push edx
mov eax, dword [ebp - 0xacc]
push eax
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x4027ef
mov ecx, dword [ebp - 0xa58]
push ecx
push 0x408
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea eax, [ebp - 0xabc]
push eax
lea ecx, [ebp - 0x40c]
push ecx
call sub.MSVCRT.dll_strcpy
add esp, 8
push 0x40b2ac
lea edx, [ebp - 0x40c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
lea eax, [ebp - 0xac4]
push eax
lea ecx, [ebp - 0xa58]
push ecx
lea edx, [ebp - 0x40c]
push edx
mov eax, dword [ebp - 0xacc]
push eax
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x402854
mov ecx, dword [ebp - 0xa58]
push ecx
push 0x405
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea eax, [ebp - 0xabc]
push eax
lea ecx, [ebp - 0x40c]
push ecx
call sub.MSVCRT.dll_strcpy
add esp, 8
push 0x40b2bc
lea edx, [ebp - 0x40c]
push edx
call sub.MSVCRT.dll_strcat
add esp, 8
lea eax, [ebp - 0xac4]
push eax
lea ecx, [ebp - 0xa58]
push ecx
lea edx, [ebp - 0x40c]
push edx
mov eax, dword [ebp - 0xacc]
push eax
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x4028b9
mov ecx, dword [ebp - 0xa58]
push ecx
push 0x406
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea eax, [ebp - 0xac4]
push eax
lea ecx, [ebp - 0xad0]
push ecx
push 0x40b2c8
mov edx, dword [ebp - 0xacc]
push edx
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x402941
mov eax, dword [ebp - 0xad0]
mov ecx, dword [eax + 0xc]
and ecx, 0xffff
push ecx
mov edx, dword [ebp - 0xad0]
mov eax, dword [edx + 0xc]
shr eax, 0x10
push eax
mov ecx, dword [ebp - 0xad0]
mov edx, dword [ecx + 8]
and edx, 0xffff
push edx
mov eax, dword [ebp - 0xad0]
mov ecx, dword [eax + 8]
shr ecx, 0x10
push ecx
push str._u._02u._04u._04u
lea edx, [ebp - 0x40c]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
lea eax, [ebp - 0x40c]
push eax
push 0x407
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov edx, dword [ebp - 0xacc]
push edx
call dword [sym.imp.MSVCRT.dll_free]
add esp, 4
cmp dword [ebp - 8], 0
je 0x402963
mov eax, dword [0x40c604]
push eax
call dword [sym.imp.KERNEL32.DLL_ReleaseMutex]
jmp 0x40296f
jmp 0x402520
jmp 0x402520
mov esp, ebp
pop ebp
ret