Function at 0x408104
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 [0x49d1a8], 0
je 0x408149
mov dword [esp + 8], 0xff
mov dword [esp + 4], str.Srcouc.cpp
mov dword [esp], 0x49d0a8
call sub.msvcrt.dll_strncpy
mov byte [0x49d1a7], 0
mov dword [0x49d0a4], 0x738
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 0x4083e4
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], 0x49d098
call fcn.00427ea8
mov eax, dword [ebp - 0x1c]
lock dec dword [eax]
setne dl
test dl, dl
jne 0x4081ad
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 0x40839f
cmp dword [ebp - 0x148], 5
jbe 0x408380
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0x4857c8
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], 0x49d088
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 0x40845c
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x2c], eax
lock inc dword [eax]
setne dl
mov dword [esp + 4], 0x49d038
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], 0x485885
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 0x408448
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 0x408434
mov eax, dword [ebp - 0x2c]
lock dec dword [eax]
setne dl
test dl, dl
je 0x408420
mov eax, dword [ebp - 0x28]
lock dec dword [eax]
setne dl
test dl, dl
je 0x40840c
mov eax, dword [ebp - 0x24]
lock dec dword [eax]
setne dl
test dl, dl
je 0x4083f8
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 0x4083a1
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
cmp byte [0x49d1a8], 0
jne 0x4083aa
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], 0x49d038
call fcn.00406404
inc eax
je 0x408470
mov bl, 1
cmp byte [0x49d1a8], 0
je 0x408374
mov dword [esp + 8], 0xff
mov dword [esp + 4], str.Srcouc.cpp
mov dword [esp], 0x49d0a8
call sub.msvcrt.dll_strncpy
mov byte [0x49d1a7], 0
mov dword [0x49d0a4], 0x74e
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 0x408166
jmp 0x40817c
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x408347
mov eax, dword [ebp - 0x28]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x408336
mov eax, dword [ebp - 0x2c]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x408325
mov eax, dword [ebp - 0x30]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x408314
mov eax, dword [ebp - 0x38]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x4082eb
mov eax, dword [ebp - 0x34]
mov dword [esp], eax
call dword [method.QString.free_QString::Data_]
jmp 0x40827a
xor ebx, ebx
jmp 0x4083a1