Function at 0x40d6c7
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x2188]
mov eax, 0x2208
call fcn.004571d0
mov eax, dword [0x47a4b0]
xor eax, ebp
mov dword [ebp + 0x2184], eax
mov eax, dword [ebp + 0x2190]
push ebx
push esi
push edi
push 8
mov edi, edx
push eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x1c], ecx
call dword [sym.imp.USER32.dll_GetWindowLongA]
xor ebx, ebx
mov byte [ebp + 0x84], bl
mov byte [edi], bl
mov esi, dword [eax + 0x20c]
cmp esi, ebx
je 0x40d82b
mov edi, 0x80
xor eax, eax
lea edx, [esi + 0x108]
mov cl, byte [edx]
cmp cl, bl
je 0x40d770
cmp cl, 0x2e
jne 0x40d75f
cmp eax, ebx
je 0x40d744
cmp eax, edi
jge 0x40d76b
mov byte [ebp + eax + 0x2104], 0x3b
inc eax
cmp eax, edi
jge 0x40d76b
mov byte [ebp + eax + 0x2104], 0x2a
inc eax
cmp eax, edi
jge 0x40d76b
mov byte [ebp + eax + 0x2104], 0x2e
jmp 0x40d76a
cmp eax, edi
jge 0x40d76b
mov byte [ebp + eax + 0x2104], cl
inc eax
inc edx
cmp eax, edi
jl 0x40d728
cmp eax, edi
jl 0x40d777
push 0x7f
pop eax
mov byte [ebp + eax + 0x2104], bl
push edi
lea eax, [esi + 0x88]
push eax
lea eax, [ebp + 0x2084]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
cmp byte [ebp + 0x2084], bl
mov byte [ebp + 0x2103], bl
je 0x40d81e
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp + 0x2084]
push eax
call ebx
lea ecx, [ebp + 0x2104]
push ecx
mov dword [ebp - 0x28], eax
call ebx
mov ecx, dword [ebp - 0x28]
lea ebx, [ecx + eax]
lea eax, [ebp + 0x84]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [eax + ebx + 3]
cmp eax, 0x2000
jae 0x40d81c
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 0x2084]
push eax
lea eax, [ebp + 0x84]
push eax
call ebx
push 0x46a518
lea eax, [ebp + 0x84]
push eax
call ebx
lea eax, [ebp + 0x2104]
push eax
lea eax, [ebp + 0x84]
push eax
call ebx
push 0x46a518
lea eax, [ebp + 0x84]
push eax
call ebx
xor ebx, ebx
mov esi, dword [esi]
cmp esi, ebx
jne 0x40d720
mov edi, dword [ebp - 0x24]
cmp byte [ebp + 0x84], bl
lea eax, [ebp + 0x84]
je 0x40d845
cmp byte [eax], 0x7c
jne 0x40d840
mov byte [eax], bl
inc eax
cmp byte [eax], bl
jne 0x40d839
push 0x58
lea eax, [ebp - 0x80]
push ebx
push eax
call sub.MSVCR80.dll_memset
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
add esp, 0xc
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], 0x9c
call esi
cmp eax, ebx
jne 0x40d87c
lea eax, [ebp - 0x18]
push eax
mov dword [ebp - 0x18], 0x94
call esi
cmp eax, ebx
je 0x40d889
cmp dword [ebp - 0x14], 5
mov dword [ebp - 0x80], 0x58
jae 0x40d890
mov dword [ebp - 0x80], 0x4c
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x7c], eax
lea eax, [ebp + 0x84]
mov dword [ebp - 0x74], eax
mov eax, dword [ebp + 0x2194]
mov dword [ebp - 0x60], eax
xor esi, esi
lea eax, [ebp - 0x80]
inc esi
push eax
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], edi
mov dword [ebp - 0x4c], 0x1004
call dword [sym.imp.comdlg32.dll_GetOpenFileNameA]
test eax, eax
jne 0x40d8ca
xor eax, eax
jmp 0x40d8fa
mov eax, dword [ebp - 0x68]
dec eax
push eax
push dword [ebp - 0x20]
call fcn.0040d30f
cmp eax, ebx
pop ecx
pop ecx
je 0x40d8c6
mov edi, dword [ebp + 0x2198]
push edi
add eax, 8
push eax
push dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov eax, dword [ebp - 0x1c]
mov byte [eax + edi - 1], bl
mov eax, esi
mov ecx, dword [ebp + 0x2184]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00456f61
add ebp, 0x2188
leave
ret 0xc