Function at 0x404640
Capabilities:
Access peb ldr_data
Get file version info
Get graphical window text
Get kernel32 base address
Get number of processors
Get process heap flags
Get process heap force flags

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff8
mov eax, 0x191c
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
call fcn.00401068
sub esp, eax
mov eax, dword [ecx]
mov edi, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x1900], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x18f8], edi
cmp eax, 0x110
je 0x404740
cmp eax, 0x111
je 0x4046e8
cmp eax, 0x82
je 0x4046a0
xor ebx, ebx
lea esp, [ebp - 0x10]
mov eax, ebx
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
mov edx, dword [0x40c924]
mov eax, dword fs:[0x18]
mov edx, dword [edx + 0x4b8]
mov dword [esp + 4], 0
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [0x40c924]
sub esp, 0xc
mov dword [eax + 0x4b8], 0
jmp 0x40468d
mov eax, edx
shr eax, 0x10
je 0x404b10
mov ebx, 1
cmp eax, 1
jne 0x40468f
mov eax, dword [ebp - 0x1900]
mov edi, dword [sym.imp.user32.dll_GetDlgItem]
mov dword [esp + 4], 0x3f9
mov dword [esp], eax
call edi
mov esi, eax
mov eax, dword [ebp - 0x1900]
sub esp, 8
mov dword [esp + 4], 0x3fa
mov dword [esp], eax
call edi
mov edx, eax
sub esp, 8
mov eax, esi
call sym._PropDlg_DisplayValue
jmp 0x40468f
mov edi, dword [ebp - 0x18f8]
mov ebx, dword [ebp - 0x1900]
lea eax, [ebp - 0x1810]
mov dword [esp + 8], 0x104
mov dword [esp + 4], eax
mov dword [0x40c924], edi
mov dword [esp], ebx
call dword [sym.imp.user32.dll_GetWindowTextW]
lea eax, [edi + 0x24c]
sub esp, 0xc
mov dword [ebp - 0x190c], eax
mov dword [esp + 8], eax
lea eax, [ebp - 0x1810]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1010]
mov dword [esp], eax
mov eax, dword [sym.imp.user32.dll_wsprintfW]
mov dword [ebp - 0x1904], eax
call eax
mov esi, dword [sym.imp.user32.dll_SetWindowTextW]
lea eax, [ebp - 0x1010]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [ebp - 0x1908], esi
call esi
mov ecx, 6
lea eax, [edi + 0x234]
lea edx, [ebp - 0x1810]
sub esp, 8
call sym._format_date
mov eax, dword [sym.imp.user32.dll_GetDlgItem]
mov dword [esp], ebx
mov dword [esp + 4], 0x3f0
mov dword [ebp - 0x18fc], eax
call eax
lea edx, [ebp - 0x1810]
sub esp, 8
mov dword [esp + 4], edx
mov dword [esp], eax
call esi
xor eax, eax
mov ecx, dword [edi + 0x240]
mov esi, dword [edi + 0x23c]
mov word [ebp - 0x790], ax
sub esp, 8
lea edi, [ebp - 0x790]
mov ebx, ecx
nop
mov dword [esp], ebx
sub edi, 2
mov dword [esp + 4], esi
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0
call sym.___umoddi3
mov dword [ebp - 0x18f0], ebx
add eax, 0x30
mov dword [ebp - 0x18ec], esi
mov word [edi], ax
mov dword [esp], ebx
mov dword [esp + 4], esi
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], 0
mov word [ebp - 0x18f4], ax
call sym.___udivdi3
mov ecx, dword [ebp - 0x18f0]
mov esi, edx
mov edx, 9
mov ebx, eax
cmp edx, ecx
mov edx, 0
sbb edx, dword [ebp - 0x18ec]
jb 0x404820
movzx ebx, word [ebp - 0x18f4]
xor eax, eax
jmp 0x4048a4
movzx ebx, word [edi + eax]
mov word [ebp + eax - 0x1810], bx
add eax, 2
test bx, bx
jne 0x4048a0
lea eax, [ebp - 0x1810]
mov dword [esp + 4], 0x415b7c
mov dword [esp + 8], eax
lea eax, [ebp - 0x1010]
mov dword [esp], eax
mov eax, dword [ebp - 0x1904]
call eax
mov esi, dword [ebp - 0x1900]
mov edi, dword [ebp - 0x18fc]
mov dword [esp + 4], 0x3f3
mov dword [esp], esi
call edi
lea edx, [ebp - 0x1010]
mov ebx, dword [ebp - 0x1908]
sub esp, 8
mov dword [esp + 4], edx
mov dword [esp], eax
call ebx
sub esp, 8
mov dword [esp], esi
mov dword [esp + 4], 0x3ee
call edi
mov edx, dword [ebp - 0x190c]
mov dword [ebp - 0x1908], ebx
sub esp, 8
mov dword [esp + 4], edx
mov dword [esp], eax
call ebx
mov ebx, dword [0x40c924]
sub esp, 8
mov dword [esp], esi
mov dword [esp + 4], 0x3ef
call edi
sub esp, 8
mov dword [esp + 4], ebx
mov ebx, dword [ebp - 0x1908]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x18f8]
mov dword [ebp - 0x18fc], edi
sub esp, 8
mov ecx, dword [eax + 0x220]
mov dword [esp], esi
mov dword [esp + 4], 0x3f4
mov ebx, ecx
mov dword [ebp - 0x18ec], ecx
call edi
and ebx, 1
mov edi, dword [sym.imp.user32.dll_SendMessageW]
sub esp, 8
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0xf1
mov dword [esp], eax
call edi
mov edx, dword [ebp - 0x18f8]
mov eax, dword [ebp - 0x18fc]
sub esp, 0x10
mov ecx, dword [edx + 0x220]
mov dword [esp], esi
mov dword [esp + 4], 0x3f5
mov ebx, ecx
mov dword [ebp - 0x18ec], ecx
call eax
shr ebx, 5
sub esp, 8
and ebx, 1
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0xf1
mov dword [esp], eax
call edi
mov edx, dword [ebp - 0x18f8]
mov eax, dword [ebp - 0x18fc]
sub esp, 0x10
mov ecx, dword [edx + 0x220]
mov dword [esp], esi
mov dword [esp + 4], 0x3f6
mov ebx, ecx
mov dword [ebp - 0x18ec], ecx
call eax
shr ebx, 0xb
sub esp, 8
and ebx, 1
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0xf1
mov dword [esp], eax
call edi
mov edx, dword [ebp - 0x18f8]
mov eax, dword [ebp - 0x18fc]
sub esp, 0x10
mov ecx, dword [edx + 0x220]
mov dword [esp], esi
mov dword [esp + 4], 0x3f7
mov ebx, ecx
mov dword [ebp - 0x18ec], ecx
shr ebx, 1
and ebx, 1
call eax
sub esp, 8
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0xf1
mov dword [esp], eax
call edi
mov edx, dword [ebp - 0x18f8]
mov eax, dword [ebp - 0x18fc]
sub esp, 0x10
mov ebx, dword [edx + 0x220]
mov dword [esp], esi
mov dword [esp + 4], 0x3f8
call eax
shr ebx, 2
sub esp, 8
and ebx, 1
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0xf1
mov dword [esp], eax
call edi
mov esi, dword [0x40c924]
sub esp, 0x10
mov dword [esp + 4], 0
mov dword [esp], esi
call dword [sym.imp.version.dll_GetFileVersionInfoSizeW]
sub esp, 8
mov ebx, eax
test eax, eax
jne 0x404b40
lea esp, [ebp - 0x10]
mov ebx, 1
pop ecx
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 0x10
lea eax, [edx - 1]
mov ebx, 1
cmp eax, 1
ja 0x40468f
mov eax, dword [ebp - 0x1900]
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.user32.dll_EndDialog]
sub esp, 8
jmp 0x40468f
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov dword [esi + 0x4b8], eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], esi
call dword [sym.imp.version.dll_GetFileVersionInfoW]
sub esp, 0x10
test eax, eax
je 0x404af1
lea edx, [ebp - 0x18e4]
lea ebx, [ebp - 0x18e8]
mov dword [esp + 4], 0x415b74
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov eax, dword [esi + 0x4b8]
mov dword [esp], eax
mov eax, dword [sym.imp.version.dll_VerQueryValueW]
mov dword [ebp - 0x18ec], eax
call eax
lea edx, [ebp - 0x18e4]
sub esp, 0x10
test eax, eax
je 0x404bda
cmp dword [ebp - 0x18e4], 0x34
je 0x404ded
mov dword [esp + 0xc], edx
mov dword [esp + 8], ebx
mov dword [esp + 4], str.VarFileInfoTranslation
mov eax, dword [esi + 0x4b8]
mov dword [esp], eax
mov eax, dword [ebp - 0x18ec]
call eax
sub esp, 0x10
test eax, eax
je 0x404af1
mov eax, dword [ebp - 0x18e8]
mov ebx, dword [ebp - 0x18e4]
mov dword [esp + 4], 0x3f9
mov edx, dword [ebp - 0x1900]
add ebx, eax
mov dword [ebp - 0x1908], eax
mov dword [esp], edx
mov edx, dword [ebp - 0x18fc]
mov dword [ebp - 0x18f8], ebx
call edx
mov dword [ebp - 0x18f0], eax
sub esp, 8
cmp dword [ebp - 0x1908], ebx
jae 0x404d9d
mov dword [ebp - 0x18f4], edi
mov edi, dword [ebp - 0x1908]
lea esi, [esi]
mov eax, dword [str.Comments]
mov ebx, 0x40c8e0
test eax, eax
jne 0x404c86
jmp 0x404d88
mov eax, dword [ebx + 4]
add ebx, 4
test eax, eax
je 0x404d88
lea edx, [ebp - 0x18d8]
mov dword [esp + 0x14], 0x64
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
lea eax, [ebp - 0x18d8]
sub esp, 0x18
mov dword [esp + 0x10], eax
movzx eax, word [edi + 2]
mov dword [esp + 0xc], eax
movzx eax, word [edi]
mov dword [esp + 4], str.StringFileInfo_04x_04x_s
mov dword [esp + 8], eax
lea eax, [ebp - 0x810]
mov dword [esp], eax
mov eax, dword [ebp - 0x1904]
call eax
lea eax, [ebp - 0x18dc]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x18e0]
mov dword [esp + 8], eax
lea eax, [ebp - 0x810]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x4b8]
mov dword [esp], eax
mov eax, dword [ebp - 0x18ec]
call eax
sub esp, 0x10
test eax, eax
je 0x404c78
lea eax, [ebp - 0x18d8]
mov edx, dword [ebp - 0x18f4]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x18f0]
mov dword [esp + 4], 0x180
mov dword [esp], eax
call edx
mov edx, dword [ebp - 0x18e0]
sub esp, 0x10
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x18f0]
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x18f4]
mov dword [esp + 4], 0x19a
mov dword [esp], eax
call edx
sub esp, 0x10
jmp 0x404c78
add edi, 4
cmp dword [ebp - 0x18f8], edi
ja 0x404c60
mov edi, dword [ebp - 0x18f4]
mov esi, dword [ebp - 0x18f0]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp], esi
mov dword [esp + 4], 0x186
call edi
mov eax, dword [ebp - 0x1900]
sub esp, 0x10
mov dword [esp], eax
mov eax, dword [ebp - 0x18fc]
mov dword [esp + 4], 0x3fa
call eax
mov edx, eax
sub esp, 8
mov eax, esi
call sym._PropDlg_DisplayValue
jmp 0x404af1
mov eax, dword [ebp - 0x18e8]
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 8]
mov dword [esp + 8], str._d._d._d._d
mov dword [esp + 4], 0x400
movzx eax, dx
mov dword [esp + 0x18], eax
mov eax, edx
shr eax, 0x10
mov dword [esp + 0x14], eax
movzx eax, cx
shr ecx, 0x10
mov dword [esp + 0xc], ecx
lea ecx, [ebp - 0x810]
mov dword [esp], ecx
mov dword [esp + 0x10], eax
call sym._swprintf.constprop.0
mov eax, dword [ebp - 0x1900]
lea ecx, [ebp - 0x810]
mov dword [esp + 4], 0x3f1
mov dword [esp + 8], ecx
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetDlgItemTextW]
lea edx, [ebp - 0x18e4]
sub esp, 0xc
jmp 0x404bda