Function at 0x404780
Capabilities:
Get file version info

Disassembly:
sub esp, 0x6c
push ebx
mov ebx, dword [esp + 0x74]
push esi
push edi
push 8
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongA]
mov esi, eax
mov eax, dword [esp + 0x80]
sub eax, 0xf
je 0x4049bd
sub eax, 0x101
je 0x4047e4
dec eax
jne 0x4047c2
mov eax, dword [esp + 0x84]
cmp ax, 1
je 0x4047cd
cmp ax, 2
je 0x4047cd
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x6c
ret 0x10
push 1
push ebx
call dword [sym.imp.USER32.dll_EndDialog]
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x6c
ret 0x10
mov esi, dword [esp + 0x88]
push ebp
push esi
push 8
push ebx
call dword [sym.imp.USER32.dll_SetWindowLongA]
lea eax, [esp + 0x18]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov ecx, dword [esi + 0x14]
push 0
push 0x34
push 0x1a
push 0x28
push 0x444854
push ecx
call fcn.0042a840
test eax, eax
mov dword [esp + 0x80], eax
je 0x404865
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
sub edi, ecx
cmp edi, 0x10c
jge 0x40483a
mov edi, 0x10c
mov esi, dword [esp + 0x24]
mov ebp, dword [esp + 0x1c]
sub esi, ebp
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
add esi, 0x27
push 4
push esi
push edi
push 1
call ebp
sub eax, esi
cdq
sub eax, edx
sar eax, 1
push eax
push 0
call ebp
sub eax, edi
jmp 0x404895
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, dword [sym.imp.USER32.dll_GetSystemMetrics]
sub esi, edi
mov edi, dword [esp + 0x24]
sub edi, edx
push 5
push edi
push esi
push 1
call ebp
sub eax, edi
cdq
sub eax, edx
sar eax, 1
push eax
push 0
call ebp
sub eax, esi
cdq
sub eax, edx
sar eax, 1
push eax
push 0
push ebx
call dword [sym.imp.USER32.dll_SetWindowPos]
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea edx, [esp + 0x28]
push str.DEMO32.EXE
push edx
call ebp
lea eax, [esp + 0x80]
lea ecx, [esp + 0x28]
push eax
push ecx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
test esi, esi
je 0x404926
mov eax, dword [0x4442c4]
lea edx, [esi + 0xa]
push edx
push eax
call fcn.0042d3b0
mov edi, eax
lea edx, [esp + 0x28]
mov ecx, dword [esp + 0x80]
push edi
push esi
push ecx
push edx
call sub.VERSION.dll_GetFileVersionInfoA
lea eax, [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
push ecx
push 0x444868
push edi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x40491a
mov edx, dword [esp + 0x10]
push edx
push 0x7c
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov eax, dword [0x4442c4]
push edi
push eax
call fcn.0042d4d0
lea ecx, [esp + 0x28]
push str.DS32.DLL
push ecx
call ebp
lea edx, [esp + 0x80]
lea eax, [esp + 0x28]
push edx
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
pop ebp
test esi, esi
je 0x4049a2
mov edx, dword [0x4442c4]
lea ecx, [esi + 0xa]
push ecx
push edx
call fcn.0042d3b0
mov edi, eax
lea ecx, [esp + 0x24]
mov eax, dword [esp + 0x7c]
push edi
push esi
push eax
push ecx
call sub.VERSION.dll_GetFileVersionInfoA
lea edx, [esp + 0x10]
lea eax, [esp + 0xc]
push edx
push eax
push str.StringFileInfo040904e4ProductVersion
push edi
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x404995
mov ecx, dword [esp + 0xc]
push ecx
push 0x7d
push ebx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov edx, dword [0x4442c4]
push edi
push edx
call fcn.0042d4d0
push 1
push ebx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SetFocus]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x6c
ret 0x10
lea eax, [esp + 0x38]
push eax
push ebx
call dword [sym.imp.USER32.dll_BeginPaint]
lea ecx, [esp + 0x14]
push ecx
push ebx
call dword [sym.imp.USER32.dll_GetClientRect]
mov edx, dword [esi + 0x14]
push 0
push 0x34
push 0x1a
push 0x28
push str.Dummy
push edx
call fcn.0042a840
push 0x29a
mov dword [esp + 0x80], eax
mov eax, dword [0x447518]
push eax
call dword [sym.imp.USER32.dll_LoadBitmapA]
mov edi, eax
test edi, edi
je 0x404a67
mov eax, dword [esp + 0x7c]
test eax, eax
je 0x404a67
mov ecx, dword [esp + 0x38]
push ecx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov esi, eax
push edi
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push 0xcc0020
push 0
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
push 0
push esi
push 0x27
add edx, 0xffffffd4
push 0x102
add eax, 0xfffffefe
mov ecx, dword [esp + 0x50]
push edx
cdq
sub eax, edx
sar eax, 1
push eax
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
lea edx, [esp + 0x38]
push edx
push ebx
call dword [sym.imp.USER32.dll_EndPaint]
pop edi
pop esi
mov eax, 1
pop ebx
add esp, 0x6c
ret 0x10