Function at 0x404810
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, 0xfffffff0
mov eax, 0x1938
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
call fcn.0040b8e8
sub esp, eax
mov eax, dword [ecx]
mov edi, dword [ecx + 0xc]
mov edx, dword [ecx + 8]
mov dword [ebp - 0x1918], eax
mov eax, dword [ecx + 4]
mov dword [ebp - 0x1910], edi
cmp eax, 0x110
je 0x404910
cmp eax, 0x111
je 0x4048b8
cmp eax, 0x82
je 0x404870
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 [0x41787c]
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 [0x41787c]
sub esp, 0xc
mov dword [eax + 0x4b8], 0
jmp 0x40485d
mov eax, edx
shr eax, 0x10
je 0x404d20
mov ebx, 1
cmp eax, 1
jne 0x40485f
mov eax, dword [ebp - 0x1918]
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 - 0x1918]
sub esp, 8
mov dword [esp + 4], 0x3fa
mov dword [esp], eax
call edi
mov edx, eax
sub esp, 8
mov eax, esi
call dbg.PropDlg_DisplayValue
jmp 0x40485f
mov edi, dword [ebp - 0x1910]
mov esi, dword [ebp - 0x1918]
lea eax, [ebp - 0x1818]
mov dword [esp + 8], 0x104
mov dword [esp + 4], eax
mov dword [0x41787c], edi
mov dword [esp], esi
call dword [sym.imp.user32.dll_GetWindowTextW]
lea eax, [edi + 0x24c]
sub esp, 0xc
mov dword [ebp - 0x1924], eax
mov dword [esp + 8], eax
lea eax, [ebp - 0x1818]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1018]
mov dword [esp], eax
mov eax, dword [sym.imp.user32.dll_wsprintfW]
mov dword [ebp - 0x191c], eax
call eax
mov ebx, dword [sym.imp.user32.dll_SetWindowTextW]
lea eax, [ebp - 0x1018]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [ebp - 0x1920], ebx
call ebx
lea edx, [ebp - 0x1818]
lea eax, [edi + 0x234]
mov ecx, 6
sub esp, 8
call dbg.format_date
mov eax, dword [sym.imp.user32.dll_GetDlgItem]
mov dword [esp], esi
lea esi, [ebp - 0x1818]
mov dword [esp + 4], 0x3f0
mov dword [ebp - 0x1914], eax
call eax
sub esp, 8
mov dword [esp + 4], esi
mov dword [esp], eax
call ebx
mov eax, dword [edi + 0x240]
xor edx, edx
sub esp, 8
mov esi, eax
mov eax, dword [edi + 0x23c]
or eax, edx
mov edi, eax
xor eax, eax
mov word [ebp - 0x798], ax
lea eax, [ebp - 0x798]
mov dword [ebp - 0x190c], eax
lea esi, [esi]
mov ecx, esi
mov eax, 0xcccccccd
add ecx, edi
adc ecx, 0
xor ebx, ebx
mul ecx
mov dword [ebp - 0x18fc], ebx
mov eax, edx
and edx, 0xfffffffc
shr eax, 2
add edx, eax
mov eax, esi
sub ecx, edx
mov edx, edi
sub eax, ecx
mov dword [ebp - 0x1900], ecx
movzx ecx, word [ebp - 0x1900]
sbb edx, ebx
mov dword [ebp - 0x1908], eax
mov eax, 0xcccccccd
imul ebx, edx, 0xcccccccd
mov dword [ebp - 0x1904], edx
imul edx, dword [ebp - 0x1908], 0xcccccccc
sub dword [ebp - 0x190c], 2
mov dword [ebp - 0x1900], esi
add ebx, edx
mul dword [ebp - 0x1908]
add edx, ebx
mov ebx, eax
and ebx, 1
shrd eax, edx, 1
lea ebx, [ebx + ebx*4]
shr edx, 1
mov esi, eax
mov eax, 9
lea ecx, [ebx + ecx + 0x30]
mov ebx, dword [ebp - 0x190c]
cmp eax, dword [ebp - 0x1900]
mov eax, 0
mov word [ebx], cx
mov ebx, edi
mov edi, edx
sbb eax, ebx
jb 0x404a00
mov edx, dword [ebp - 0x190c]
xor eax, eax
jmp 0x404abc
movzx ecx, word [edx + eax]
mov word [ebp + eax - 0x1818], cx
add eax, 2
test cx, cx
jne 0x404ab8
lea eax, [ebp - 0x1818]
mov dword [esp + 4], global_sByteFmt
mov dword [esp + 8], eax
lea eax, [ebp - 0x1018]
mov dword [esp], eax
mov eax, dword [ebp - 0x191c]
call eax
mov esi, dword [ebp - 0x1918]
mov edi, dword [ebp - 0x1914]
mov dword [esp + 4], 0x3f3
mov dword [esp], esi
call edi
lea edx, [ebp - 0x1018]
mov ebx, dword [ebp - 0x1920]
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 - 0x1924]
mov dword [ebp - 0x1920], ebx
sub esp, 8
mov dword [esp + 4], edx
mov dword [esp], eax
call ebx
mov ebx, dword [0x41787c]
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 - 0x1920]
mov dword [esp], eax
call ebx
mov eax, dword [ebp - 0x1910]
mov dword [ebp - 0x1914], edi
sub esp, 8
mov ebx, dword [eax + 0x220]
mov dword [esp], esi
mov dword [esp + 4], 0x3f4
mov dword [ebp - 0x1900], ebx
and ebx, 1
call edi
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 - 0x1910]
mov eax, dword [ebp - 0x1914]
sub esp, 0x10
mov ebx, dword [edx + 0x220]
mov dword [esp], esi
mov dword [esp + 4], 0x3f5
mov dword [ebp - 0x1900], ebx
shr ebx, 5
call eax
and ebx, 1
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 - 0x1910]
mov eax, dword [ebp - 0x1914]
sub esp, 0x10
mov ebx, dword [edx + 0x220]
mov dword [esp], esi
mov dword [esp + 4], 0x3f6
mov dword [ebp - 0x1900], ebx
shr ebx, 0xb
call eax
and ebx, 1
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 - 0x1910]
mov eax, dword [ebp - 0x1914]
sub esp, 0x10
mov ebx, dword [edx + 0x220]
mov dword [esp], esi
mov dword [esp + 4], 0x3f7
mov dword [ebp - 0x1900], ebx
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 - 0x1910]
mov eax, dword [ebp - 0x1914]
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 [0x41787c]
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 0x404d50
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 0x40485f
mov eax, dword [ebp - 0x1918]
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.user32.dll_EndDialog]
sub esp, 8
jmp 0x40485f
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 0x404d01
lea edx, [ebp - 0x18ec]
lea ebx, [ebp - 0x18f0]
mov dword [esp + 4], 0x40d28c
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 - 0x1900], eax
call eax
lea edx, [ebp - 0x18ec]
sub esp, 0x10
test eax, eax
je 0x404dea
cmp dword [ebp - 0x18ec], 0x34
je 0x404ffd
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 - 0x1900]
call eax
sub esp, 0x10
test eax, eax
je 0x404d01
mov eax, dword [ebp - 0x18f0]
mov ebx, dword [ebp - 0x18ec]
mov dword [esp + 4], 0x3f9
mov edx, dword [ebp - 0x1918]
add ebx, eax
mov dword [ebp - 0x190c], eax
mov dword [esp], edx
mov edx, dword [ebp - 0x1914]
mov dword [ebp - 0x1910], ebx
call edx
mov dword [ebp - 0x1908], eax
sub esp, 8
cmp dword [ebp - 0x190c], ebx
jae 0x404fad
mov ebx, dword [ebp - 0x190c]
mov dword [ebp - 0x190c], edi
lea esi, [esi]
mov eax, dword [str.Comments]
mov edi, 0x40c080
test eax, eax
jne 0x404e96
jmp 0x404f98
mov eax, dword [edi + 4]
add edi, 4
test eax, eax
je 0x404f98
lea edx, [ebp - 0x18e0]
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 - 0x18e0]
sub esp, 0x18
mov dword [esp + 0x10], eax
movzx eax, word [ebx + 2]
mov dword [esp + 0xc], eax
movzx eax, word [ebx]
mov dword [esp + 4], str.StringFileInfo_04x_04x_s
mov dword [esp + 8], eax
lea eax, [ebp - 0x818]
mov dword [esp], eax
mov eax, dword [ebp - 0x191c]
call eax
lea eax, [ebp - 0x18e4]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x18e8]
mov dword [esp + 8], eax
lea eax, [ebp - 0x818]
mov dword [esp + 4], eax
mov eax, dword [esi + 0x4b8]
mov dword [esp], eax
mov eax, dword [ebp - 0x1900]
call eax
sub esp, 0x10
test eax, eax
je 0x404e88
lea eax, [ebp - 0x18e0]
mov edx, dword [ebp - 0x190c]
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x1908]
mov dword [esp + 4], 0x180
mov dword [esp], eax
call edx
mov ecx, dword [ebp - 0x18e8]
mov edx, dword [ebp - 0x190c]
sub esp, 0x10
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x1908]
mov dword [esp + 0xc], ecx
mov dword [esp + 4], 0x19a
mov dword [esp], eax
call edx
sub esp, 0x10
jmp 0x404e88
add ebx, 4
cmp dword [ebp - 0x1910], ebx
ja 0x404e70
mov edi, dword [ebp - 0x190c]
mov esi, dword [ebp - 0x1908]
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 - 0x1918]
sub esp, 0x10
mov dword [esp], eax
mov eax, dword [ebp - 0x1914]
mov dword [esp + 4], 0x3fa
call eax
mov edx, eax
sub esp, 8
mov eax, esi
call dbg.PropDlg_DisplayValue
jmp 0x404d01
mov eax, dword [ebp - 0x18f0]
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 - 0x818]
mov dword [esp], ecx
mov dword [esp + 0x10], eax
call sym._swprintf.constprop.0
mov eax, dword [ebp - 0x1918]
lea ecx, [ebp - 0x818]
mov dword [esp + 4], 0x3f1
mov dword [esp + 8], ecx
mov dword [esp], eax
call dword [sym.imp.user32.dll_SetDlgItemTextW]
lea edx, [ebp - 0x18ec]
sub esp, 0xc
jmp 0x404dea