Function at 0x407934
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x16c
mov esi, dword [ebp + 8]
cmp byte [0x49e1b8], 0
je 0x407979
mov dword [esp + 8], 0xff
mov dword [esp + 4], str.Srcouc.cpp
mov dword [esp], 0x49e0b8
call sub.msvcrt.dll_strncpy
mov byte [0x49e1b7], 0
mov dword [0x49e0b4], 0x706
lea ebx, [ebp - 0x1c]
mov dword [esp + 4], esi
mov dword [esp], ebx
call dword [method.QString.toUtf8___const]
push eax
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax]
dec edx
je 0x407c14
mov eax, dword [eax + 8]
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [method.QByteArray.realloc_int_]
mov eax, dword [ebp - 0x1c]
mov edx, dword [eax + 0xc]
mov dword [esp + 8], edx
mov dword [esp + 4], str.strmode_is__s
mov dword [esp], 0x49e0a8
call fcn.00428f88
mov eax, dword [ebp - 0x1c]
lock dec dword [eax]
setne dl
test dl, dl
jne 0x4079dd
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call dword [sym.imp.QtCore4.dll_qFree_void_]
lea edx, [ebp - 0x14c]
mov ecx, 0x114
xor eax, eax
mov edi, edx
rep stosb byte es:[edi], al
mov dword [ebp - 0x14c], 0x114
mov dword [esp], edx
call sub.KERNEL32.dll_GetVersionExW
push edi
cmp dword [ebp - 0x13c], 2
jne 0x407bcf
cmp dword [ebp - 0x148], 5
jbe 0x407bb0
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0x486864
lea eax, [ebp - 0x24]
mov dword [esp], eax
mov eax, dword [method.QString.fromAscii_char_const__int_]
mov dword [ebp - 0x15c], eax
call eax
push ebx
mov dword [esp + 4], 0x49e098
lea eax, [ebp - 0x24]
mov dword [esp], eax
mov edi, dword [method.QString.append_QString_const_]
call edi
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x28], eax
lock inc dword [eax]
setne dl
lea ebx, [ebp - 0x34]
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], str.RunLiveUpd.exe___
mov dword [esp], ebx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x164], eax
call dword [ebp - 0x15c]
push ecx
mov dword [esp + 4], ebx
lea eax, [ebp - 0x28]
mov dword [ebp - 0x164], eax
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x34]
lock dec dword [eax]
setne dl
test dl, dl
je 0x407c8c
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
lock inc dword [eax]
setne dl
mov dword [esp + 4], 0x49e048
lea eax, [ebp - 0x2c]
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x30], eax
lock inc dword [eax]
setne dl
lea ebx, [ebp - 0x38]
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0x4868c6
mov dword [esp], ebx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x160], eax
call dword [ebp - 0x15c]
push edx
mov dword [esp + 4], ebx
lea eax, [ebp - 0x30]
mov dword [ebp - 0x160], eax
mov dword [esp], eax
call edi
mov eax, dword [ebp - 0x38]
lock dec dword [eax]
setne dl
test dl, dl
je 0x407c78
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x20], eax
lock inc dword [eax]
setne dl
mov dword [esp + 4], esi
lea ebx, [ebp - 0x20]
mov dword [esp], ebx
call edi
mov eax, dword [ebp - 0x30]
lock dec dword [eax]
setne dl
test dl, dl
je 0x407c64
mov eax, dword [ebp - 0x2c]
lock dec dword [eax]
setne dl
test dl, dl
je 0x407c50
mov eax, dword [ebp - 0x28]
lock dec dword [eax]
setne dl
test dl, dl
je 0x407c3c
mov eax, dword [ebp - 0x24]
lock dec dword [eax]
setne dl
test dl, dl
je 0x407c28
mov dword [esp], ebx
call dword [method.QProcess.startDetached_QString_const_]
mov bl, al
mov eax, dword [ebp - 0x20]
lock dec dword [eax]
setne dl
test dl, dl
jne 0x407bd1
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
cmp byte [0x49e1b8], 0
jne 0x407bda
mov al, bl
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 0x49e048
call fcn.004068f0
inc eax
je 0x407ca0
mov bl, 1
cmp byte [0x49e1b8], 0
je 0x407ba4
mov dword [esp + 8], 0xff
mov dword [esp + 4], str.Srcouc.cpp
mov dword [esp], 0x49e0b8
call sub.msvcrt.dll_strncpy
mov byte [0x49e1b7], 0
mov dword [0x49e0b4], 0x71c
mov al, bl
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
leave
ret
mov edx, dword [eax + 0xc]
lea ecx, [eax + 0x10]
cmp edx, ecx
jne 0x407996
jmp 0x4079ac
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x407b77
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x407b66
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x407b55
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x407b44
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x407b1b
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x407aaa
xor ebx, ebx
jmp 0x407bd1