Function at 0x415e40
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x418c50
mov eax, dword fs:[0]
push eax
sub esp, 0x2a4
mov eax, dword [0x422040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x2a4], edi
mov esi, dword [ebp + 8]
push 0x100
push 0
mov dword [ebp - 0x29c], esi
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x2a8], eax
lea eax, [ebp - 0x110]
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [esi + 8]
add esp, 0xc
mov dword [ebp - 0x290], eax
lea eax, [ebp - 0x110]
mov dword [ebp - 0x280], eax
lea eax, [ebp - 0x294]
mov dword [ebp - 0x294], 5
push eax
push 0
push 0x1005
push dword [edi + 0x20]
mov dword [ebp - 0x28c], 0
mov dword [ebp - 0x27c], 0x100
call dword [sym.imp.USER32.dll_SendMessageA]
push dword [esi + 0x18]
xorps xmm0, xmm0
movups xmmword [ebp - 0x158], xmm0
mov dword [ebp - 0x158], 3
movups xmmword [ebp - 0x1b4], xmm0
mov dword [ebp - 0x1b4], 3
movups xmmword [ebp - 0x148], xmm0
movups xmmword [ebp - 0x1a4], xmm0
call dword [sym.imp.mfc140.dll_Ordinal_4865]
mov dword [ebp - 0x298], eax
lea eax, [esi + 0x1c]
push eax
mov dword [ebp - 0x2a0], eax
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
xorps xmm0, xmm0
movlpd qword [ebp - 0x138], xmm0
mov dword [ebp - 0x134], 0
mov dword [ebp - method.CFont.virtual_0], vtable.CFont.0
mov ecx, dword [ebp - 0x298]
push 0x5a
mov dword [ebp - 4], 0
push dword [ecx + 8]
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push 0x3c
mov esi, eax
lea eax, [ebp - 0x194]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x2a8]
add esp, 0xc
test eax, eax
je 0x4165d8
mov eax, dword [eax]
cmp eax, 0x45434452
je 0x415fc9
cmp eax, 0x4544534b
je 0x415fc9
push 0x41bd28
lea eax, [ebp - 0x178]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x48
push esi
push 8
call dword [sym.imp.KERNEL32.dll_MulDiv]
jmp 0x416027
lea eax, [ebp - 0x260]
mov dword [ebp - 0x260], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x416000
cmp dword [ebp - 0x25c], 6
jne 0x415ff7
cmp dword [ebp - 0x254], 0xece
jbe 0x416000
push 0x41bd28
jmp 0x416005
push str.Arial_Black
lea eax, [ebp - 0x178]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x48
push esi
push 8
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [ebp - 0x184], 1
neg eax
mov dword [ebp - 0x194], eax
lea eax, [ebp - 0x194]
push eax
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
push eax
lea ecx, [ebp - 0x138]
call dword [sym.imp.mfc140.dll_Ordinal_2520]
mov esi, dword [ebp - 0x298]
lea ecx, [ebp - 0x138]
push ecx
mov ecx, esi
mov eax, dword [esi]
mov eax, dword [eax + 0x30]
call eax
cmp dword [edi + 0xac], 0
mov dword [ebp - 0x2b0], eax
jne 0x4160c6
push 0
push 0
push 0
push 0
push 0xa6
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.USER32.dll_LoadImageA]
mov dword [edi + 0xac], eax
test eax, eax
je 0x4160c6
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.mfc140.dll_Ordinal_4865]
push dword [eax + 4]
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push dword [edi + 0xac]
mov dword [edi + 0xb0], eax
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [edi + 0xb4], eax
cmp dword [edi + 0x94], 0
jne 0x4161a4
lea eax, [ebp - 0x158]
xor esi, esi
push eax
push esi
push 0x1019
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x41619e
lea eax, [edi + 0x84]
nop dword [eax]
mov ecx, dword [ebp - 0x29c]
mov ecx, dword [ecx + 8]
test esi, esi
jle 0x416122
push eax
push 0
push esi
push ecx
mov ecx, edi
call dword [sym.imp.mfc140.dll_Ordinal_6946]
lea ecx, [edi + 0x84]
jmp 0x416152
push 0
push eax
push ecx
mov ecx, edi
call dword [sym.imp.mfc140.dll_Ordinal_5814]
push 0
push 0
push 0x101d
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [edi + 0x84]
mov dword [edi + 0x8c], eax
mov dword [ecx], 0
push dword [edi + 0x9c]
push dword [edi + 0x98]
call fcn.0040acf0
test eax, eax
jne 0x416194
mov dword [edi + 0x94], eax
inc esi
lea eax, [ebp - 0x158]
push eax
push esi
push 0x1019
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
lea eax, [edi + 0x84]
jne 0x416100
jmp 0x41619e
mov dword [edi + 0x94], 1
mov esi, dword [ebp - 0x298]
mov eax, dword [ebp - 0x29c]
test byte [eax + 0x10], 1
je 0x416271
cmp dword [edi + 0x94], 0
je 0x416271
push dword [ebp - 0x2a0]
lea eax, [ebp - 0x130]
push eax
mov eax, dword [sym.imp.USER32.dll_CopyRect]
call eax
mov eax, dword [ebp - 0x2a8]
mov esi, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x128]
add esi, 4
mov edx, dword [ebp - 0x12c]
add ecx, 0xfffffffc
mov eax, dword [eax]
inc edx
mov dword [ebp - 0x130], esi
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x12c], edx
cmp eax, 0x45434452
je 0x416216
cmp eax, 0x4544534b
jne 0x416242
sub dword [ebp - 0x124], 3
lea eax, [edx - 1]
sub ecx, esi
mov dword [ebp - 0x12c], eax
lea eax, [ecx*8]
sub eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
add eax, esi
mov dword [ebp - 0x128], eax
xor eax, eax
cmp dword [edi + 0x80], eax
setne al
lea eax, [eax*2 + 0xb]
push eax
call dword [sym.imp.USER32.dll_GetSysColor]
mov ecx, dword [ebp - 0x298]
push eax
lea eax, [ebp - 0x130]
push eax
call dword [sym.imp.mfc140.dll_Ordinal_4640]
jmp 0x4162b5
push dword [ebp - 0x2a0]
lea eax, [ebp - 0x130]
push eax
mov eax, dword [sym.imp.USER32.dll_CopyRect]
call eax
mov edi, dword [sym.imp.USER32.dll_GetSysColor]
push 5
call edi
push eax
lea eax, [ebp - 0x130]
mov ecx, esi
push eax
call dword [sym.imp.mfc140.dll_Ordinal_4640]
mov esi, dword [esi]
push 8
call edi
mov ecx, dword [ebp - 0x298]
push eax
call dword [esi + 0x38]
mov edi, dword [ebp - 0x2a4]
lea eax, [ebp - 0x158]
xor esi, esi
push eax
push esi
push 0x1019
push dword [edi + 0x20]
mov dword [ebp - 0x2a4], esi
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
je 0x4165c7
nop dword [eax + eax]
mov eax, dword [ebp - 0x2a8]
mov dword [ebp - 0x2ac], 0
mov eax, dword [eax]
cmp eax, 0x45434452
je 0x416494
cmp eax, 0x4544534b
je 0x416494
test esi, esi
jle 0x416358
lea eax, [ebp - 0x1b4]
push eax
push esi
push 0x1019
push dword [edi + 0x20]
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [ebp - 0x118]
mov edx, dword [ebp - 0x1ac]
add edx, ecx
mov dword [ebp - 0x118], edx
lea eax, [ecx + 4]
mov dword [ebp - 0x120], eax
cmp esi, 3
je 0x416349
cmp esi, 4
jne 0x4163a8
mov dword [ebp - 0x2ac], 2
lea eax, [edx - 4]
jmp 0x4163a2
push dword [ebp - 0x2a0]
lea eax, [ebp - 0x120]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, dword [ebp - 0x194]
add eax, 0x10
push 0
cdq
push 0
sub eax, edx
push 0x101d
push dword [edi + 0x20]
sar eax, 1
add dword [ebp - 0x11c], eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [ebp - 0x120]
add eax, ecx
add ecx, 0x14
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0x118], eax
push 0x100
lea eax, [ebp - 0x110]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
mov eax, dword [ebp - 0x29c]
add esp, 0xc
xorps xmm0, xmm0
mov dword [ebp - 0x294], 5
movlpd qword [ebp - 0x288], xmm0
movlpd qword [ebp - 0x278], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0x290], eax
lea eax, [ebp - 0x110]
mov dword [ebp - 0x280], eax
lea eax, [ebp - 0x294]
push eax
push 0
push 0x1005
push dword [edi + 0x20]
movlpd qword [ebp - 0x270], xmm0
movlpd qword [ebp - 0x268], xmm0
mov dword [ebp - 0x28c], esi
mov dword [ebp - 0x27c], 0x100
call dword [sym.imp.USER32.dll_SendMessageA]
lea ecx, [ebp - 0x110]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x416436
push dword [ebp - 0x2ac]
lea eax, [ebp - 0x120]
sub ecx, edx
push eax
push ecx
lea eax, [ebp - 0x110]
push eax
mov eax, dword [ebp - 0x29c]
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_DrawTextA]
test esi, esi
jne 0x416473
sub dword [ebp - 0x120], 0x14
jmp 0x4165a2
sub dword [ebp - 0x120], 4
cmp esi, 3
je 0x416488
cmp esi, 4
jne 0x4165a2
add dword [ebp - 0x118], 4
jmp 0x4165a2
mov esi, dword [ebp - 0x2a0]
lea eax, [ebp - 0x120]
push esi
push eax
call dword [sym.imp.USER32.dll_CopyRect]
mov ecx, dword [ebp - 0x114]
mov eax, dword [ebp - 0x194]
inc ecx
add dword [ebp - 0x120], 4
add eax, 0xfffffffa
add eax, ecx
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x11c], eax
lea eax, [ebp - 0x110]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4164d6
push 0
sub eax, edx
lea ecx, [ebp - 0x120]
push ecx
push eax
lea eax, [ebp - 0x110]
push eax
mov eax, dword [ebp - 0x29c]
push dword [eax + 0x18]
call dword [sym.imp.USER32.dll_DrawTextA]
push esi
lea eax, [ebp - 0x130]
push eax
call dword [sym.imp.USER32.dll_CopyRect]
mov eax, dword [ebp - 0x114]
add eax, 0xfffffffc
mov dword [ebp - 0x12c], eax
lea eax, [ebp - 0x1cc]
push eax
push 0x18
push dword [edi + 0xac]
call dword [sym.imp.GDI32.dll_GetObjectA]
test eax, eax
je 0x4165c7
mov eax, dword [ebp - 0x1c4]
mov ecx, dword [ebp - 0x128]
mov esi, dword [ebp - 0x130]
sub ecx, esi
push 0xcc0020
push eax
push dword [ebp - 0x1c8]
push 0
push 0
push dword [edi + 0xb0]
push eax
lea eax, [ecx*8]
sub eax, ecx
cdq
and edx, 7
add eax, edx
sar eax, 3
push eax
mov eax, dword [ebp - 0x124]
add eax, dword [ebp - 0x12c]
cdq
sub eax, edx
sar eax, 1
push eax
lea eax, [esi + 4]
push eax
mov eax, dword [ebp - 0x298]
push dword [eax + 4]
call dword [sym.imp.GDI32.dll_StretchBlt]
mov esi, dword [ebp - 0x2a4]
lea eax, [ebp - 0x158]
inc esi
push eax
push esi
push 0x1019
push dword [edi + 0x20]
mov dword [ebp - 0x2a4], esi
call dword [sym.imp.USER32.dll_SendMessageA]
test eax, eax
jne 0x4162e0
mov ecx, dword [ebp - 0x298]
push dword [ebp - 0x2b0]
mov eax, dword [ecx]
call dword [eax + 0x30]
lea ecx, [ebp - 0x138]
mov dword [ebp - method.CFont.virtual_0], vtable.CFont.0
call fcn.0040a230
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00416a63
mov esp, ebp
pop ebp
ret 4