Function at 0x10035531
Capabilities:
Check os version

Disassembly:
sub esp, 0x9c
push 0xa
call fcn.10028633
pop ecx
push eax
lea ecx, [esp + 4]
call fcn.100224c2
push 0x101d6764
lea ecx, [esp + 4]
call fcn.100258ff
test eax, eax
je 0x10035923
push ebp
push esi
push edi
call fcn.10010450
push eax
lea ecx, [esp + 0x30]
call fcn.1000c200
call fcn.10010450
push eax
lea ecx, [esp + 0x20]
call fcn.1000c200
call fcn.10010450
push eax
lea ecx, [esp + 0x1c]
call fcn.1000c200
call fcn.10010450
push eax
lea ecx, [esp + 0x14]
call fcn.1000c200
push 1
lea eax, [esp + 0x28]
xor ebp, ebp
push eax
push ebp
push ebp
push str.Version_Major
mov dword [esp + 0x38], ebp
call fcn.10159b60
push 1
lea eax, [esp + 0x40]
mov dword [esp + 0x40], ebp
push eax
push ebp
push ebp
push str.Version_Minor
call fcn.10159b60
add esp, 0x28
mov edi, 0x1025bc48
mov ecx, edi
push 0x101d67a0
call fcn.100258ff
test eax, eax
jne 0x1003561b
cmp dword [esp + 0x24], ebp
jne 0x100355f3
mov esi, str.clear
jmp 0x1003560b
cmp dword [esp + 0x24], 6
jne 0x10035606
cmp dword [esp + 0x28], 1
mov esi, str.reinstall
je 0x1003560b
mov esi, 0x101d67c4
push esi
call fcn.1000bcd0
pop ecx
push eax
push esi
mov ecx, edi
call fcn.1000bc10
push edi
lea ecx, [esp + 0x20]
call fcn.1000aba0
push 0x101d67d4
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
je 0x10035649
push 0x101d67f4
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
jne 0x10035660
mov esi, str.Started
push esi
call fcn.1000bcd0
pop ecx
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.1000bc10
push 0x101d6828
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
je 0x10035684
push 0x101d6848
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
jne 0x1003569b
mov esi, str.Finished
push esi
call fcn.1000bcd0
pop ecx
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.1000bc10
push 0x101d6880
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
je 0x100356bf
push 0x101d68a0
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
jne 0x100356d6
mov esi, str.Canceled
push esi
call fcn.1000bcd0
pop ecx
push eax
push esi
lea ecx, [esp + 0x20]
call fcn.1000bc10
push 0x101d68d8
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
je 0x1003570c
push 0x101d68fc
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
je 0x1003570c
push 0x101d6920
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
jne 0x10035723
mov esi, str.uninstall
push esi
call fcn.1000bcd0
pop ecx
push eax
push esi
lea ecx, [esp + 0x24]
call fcn.1000bc10
push str.InstallFinished
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
je 0x1003576b
push str.UninstallStarted
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
je 0x1003576b
push str.UninstallFinished
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
je 0x1003576b
push str.UninstallCanceled
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
jne 0x10035782
mov esi, 0x101d69e4
push esi
call fcn.1000bcd0
pop ecx
push eax
push esi
lea ecx, [esp + 0x18]
call fcn.1000bc10
push str.InstallStarted
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
je 0x100357aa
push str.InstallCanceled
lea ecx, [esp + 0x10]
call fcn.100258ff
test eax, eax
jne 0x10035851
push ebx
mov esi, ebp
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov ecx, eax
movzx edi, al
shr ecx, 8
movzx ebx, cl
cmp eax, 0x80000000
jae 0x100357ca
mov esi, eax
shr esi, 0x10
call fcn.10010450
push eax
lea ecx, [esp + 0x28]
call fcn.1000c200
push esi
push ebx
push edi
lea eax, [esp + 0x30]
push 0x101d6a3c
push eax
call fcn.10022679
add esp, 0x14
lea ecx, [esp + 0x18]
push 0x101d6a50
call fcn.100224c2
call fcn.10158e20
pop ebx
test eax, eax
je 0x1003581d
mov esi, 0x101d6a58
push esi
call fcn.1000bcd0
pop ecx
push eax
push esi
lea ecx, [esp + 0x1c]
call fcn.1000bc10
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x10]
push 0x101d6a60
push dword [esp + 0x18]
push esi
push str._s__s__s
push eax
call fcn.10022679
mov ecx, dword [esp + 0x28]
add esp, 0x14
lea ecx, [ecx - 0x10]
call fcn.1000c230
lea ecx, [esi - 0x10]
call fcn.1000c230
call fcn.10157ba0
push eax
lea ecx, [esp + 0x18]
call fcn.10023d21
mov esi, eax
lea eax, [esp + 0x20]
push eax
call fcn.1002526a
mov edi, dword [esp + 0x14]
push edi
push dword [esp + 0x20]
push dword [esp + 0x28]
push 0x101d6a8c
push dword [esi]
push dword [eax]
lea eax, [esp + 0x48]
push 0x101d6a98
push 0x101d6ab8
push eax
call fcn.10022679
mov ecx, dword [esp + 0x48]
add esp, 0x28
lea ecx, [ecx - 0x10]
call fcn.1000c230
mov ecx, dword [esp + 0x14]
lea ecx, [ecx - 0x10]
call fcn.1000c230
push 0x101d6b28
lea ecx, [esp + 0x14]
call fcn.1001d840
mov esi, dword [esp + 0x2c]
lea ecx, [esp + 0x10]
push esi
call fcn.1002574f
lea ecx, [esp + 0x30]
call fcn.10041e3f
push ebp
push ebp
push dword [esp + 0x18]
lea ecx, [esp + 0x3c]
call fcn.10041ec3
lea ecx, [esp + 0x30]
call fcn.10041e94
push dword [esp + 0x10]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
lea ecx, [edi - 0x10]
call fcn.1000c230
mov ecx, dword [esp + 0x18]
lea ecx, [ecx - 0x10]
call fcn.1000c230
mov ecx, dword [esp + 0x1c]
lea ecx, [ecx - 0x10]
call fcn.1000c230
lea ecx, [esi - 0x10]
call fcn.1000c230
pop edi
pop esi
pop ebp
mov ecx, dword [esp]
lea ecx, [ecx - 0x10]
call fcn.1000c230
add esp, 0x9c
ret