Function at 0x1009e460
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov si, word [0x10159320]
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], ecx
push edi
test si, si
jne 0x1009e49a
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov edx, eax
movzx eax, al
shr edx, 8
movzx esi, dl
shl ax, 8
or si, ax
mov word [0x10159320], si
mov eax, 0xa00
cmp si, ax
mov esi, dword [0x1014e914]
jb 0x1009e603
cmp dword [esi], 0
mov edi, dword [ebp + 8]
je 0x1009e4d7
cmp dword [esi + 4], 1
jne 0x1009e4cf
push str.GlassOverride
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x1009e514
add esi, 0x60
cmp dword [esi], 0
jne 0x1009e4b6
mov esi, dword [ebp - 8]
mov ebx, dword [ebp - 0xc]
push edi
mov edx, esi
mov ecx, ebx
call fcn.1009e250
mov eax, dword [ebx]
add esp, 4
imul eax, eax, 0xff
mov dword [ebx], eax
imul eax, dword [esi], 0xff
mov dword [esi], eax
imul eax, dword [edi], 0xff
mov dword [edi], eax
mov eax, dword [ebp + 0xc]
mov dword [eax], 0xff
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockShared]
cmp word [esi + 0x38], 3
jne 0x1009e530
cmp dword [esi + 0x40], 1
jne 0x1009e530
mov bl, 1
jmp 0x1009e532
xor bl, bl
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
test bl, bl
je 0x1009e4d7
mov esi, dword [0x1014e914]
cmp dword [esi], 0
je 0x1009e582
nop dword [eax]
mov eax, dword [esi + 4]
cmp eax, 2
je 0x1009e567
cmp eax, 3
je 0x1009e567
cmp eax, 4
je 0x1009e567
cmp eax, 5
jne 0x1009e57a
push str.GlassColor
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x1009e5b6
add esi, 0x60
cmp dword [esi], 0
jne 0x1009e550
mov byte [ebp - 1], 0
xor ebx, ebx
mov esi, dword [ebp - 8]
mov eax, ebx
shr eax, 0x10
movzx eax, al
mov dword [edi], eax
mov eax, ebx
shr eax, 8
cmp byte [ebp - 1], 0
movzx eax, al
mov dword [esi], eax
movzx eax, bl
mov ebx, dword [ebp - 0xc]
mov dword [ebx], eax
je 0x1009e4ec
jmp 0x1009e4dd
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockShared]
mov eax, dword [esi + 0x30]
test eax, eax
je 0x1009e5cd
mov ecx, dword [eax + 0x20]
jmp 0x1009e5d0
mov ecx, dword [esi + 0x20]
shr ecx, 0xc
test cl, 1
je 0x1009e5ef
test eax, eax
je 0x1009e5e1
mov eax, dword [eax + 0x20]
jmp 0x1009e5e4
mov eax, dword [esi + 0x20]
shr eax, 0xd
mov byte [ebp - 1], 1
test al, 1
je 0x1009e5f3
mov byte [ebp - 1], 0
mov ebx, dword [esi + 0x40]
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
jmp 0x1009e588
cmp dword [esi], 0
je 0x1009e629
cmp dword [esi + 4], 1
jne 0x1009e621
push str.GlassOverride
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x1009e649
add esi, 0x60
cmp dword [esi], 0
jne 0x1009e608
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp - 8]
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [ebp - 0xc]
push eax
push dword [ebp + 8]
call fcn.1009dff0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [sym.imp.KERNEL32.dll_AcquireSRWLockShared]
push 0x10158d3c
call edi
cmp word [esi + 0x38], 3
jne 0x1009e667
cmp dword [esi + 0x40], 1
jne 0x1009e667
mov bl, 1
jmp 0x1009e669
xor bl, bl
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
test bl, bl
je 0x1009e629
mov esi, dword [0x1014e914]
cmp dword [esi], 0
je 0x1009e6bf
mov eax, dword [esi + 4]
cmp eax, 2
je 0x1009e69a
cmp eax, 3
je 0x1009e69a
cmp eax, 4
je 0x1009e69a
cmp eax, 5
jne 0x1009e6b1
push str.GlassColor
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x1009e808
add esi, 0x60
cmp dword [esi], 0
jne 0x1009e683
mov esi, dword [0x1014e914]
xor eax, eax
mov byte [ebp - 1], 0
mov dword [ebp - 0x10], eax
cmp dword [esi], 0
je 0x1009e70c
nop dword [eax]
mov eax, dword [esi + 4]
cmp eax, 2
je 0x1009e6e7
cmp eax, 3
je 0x1009e6e7
cmp eax, 4
je 0x1009e6e7
cmp eax, 5
jne 0x1009e6fe
push str.GlassIntensity
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x1009e85d
add esi, 0x60
cmp dword [esi], 0
jne 0x1009e6d0
mov esi, dword [0x1014e914]
xor bh, bh
mov dword [ebp - 0x14], 0
cmp dword [esi], 0
je 0x1009e756
nop word [eax + eax]
mov eax, dword [esi + 4]
cmp eax, 2
je 0x1009e737
cmp eax, 3
je 0x1009e737
cmp eax, 4
je 0x1009e737
cmp eax, 5
jne 0x1009e74e
push str.GlassBlending
push dword [esi]
call fcn.100dc721
add esp, 8
test eax, eax
je 0x1009e8b0
add esi, 0x60
cmp dword [esi], 0
jne 0x1009e720
xor bl, bl
xor esi, esi
cmp byte [ebp - 1], 0
mov eax, dword [ebp + 0xc]
mov dword [eax], esi
je 0x1009e771
test bh, bh
je 0x1009e771
test bl, bl
jne 0x1009e62c
mov ecx, dword [ebp - 0x10]
mov ebx, 0x64
mov edi, dword [ebp + 8]
mov eax, ecx
mov esi, dword [ebp - 8]
shr eax, 0x10
movzx eax, al
mov dword [edi], eax
mov eax, ecx
shr eax, 8
movzx eax, al
mov dword [esi], eax
xor eax, eax
movzx esi, cl
mov ecx, dword [ebp - 0x14]
test ecx, ecx
cmovns eax, ecx
cmp eax, ebx
cmovg eax, ebx
imul ecx, eax, 0xff
mov eax, 0x51eb851f
imul ecx
mov eax, dword [ebp - 0xc]
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 8]
imul esi, ecx
mov dword [eax], esi
mov eax, dword [edx]
mov esi, dword [ebp + 0xc]
imul eax, ecx
mov dword [edx], eax
mov eax, dword [edi]
imul eax, ecx
mov dword [edi], eax
xor eax, eax
mov ecx, dword [esi]
test ecx, ecx
pop edi
cmovs ecx, eax
mov eax, 0x51eb851f
cmp ecx, ebx
cmovg ecx, ebx
sub ebx, ecx
imul ecx, ebx, 0xff
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esi], eax
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x10158d3c
call edi
mov eax, dword [esi + 0x30]
test eax, eax
je 0x1009e81b
mov ecx, dword [eax + 0x20]
jmp 0x1009e81e
mov ecx, dword [esi + 0x20]
shr ecx, 0xc
test cl, 1
je 0x1009e83d
test eax, eax
je 0x1009e82f
mov eax, dword [eax + 0x20]
jmp 0x1009e832
mov eax, dword [esi + 0x20]
shr eax, 0xd
mov byte [ebp - 1], 1
test al, 1
je 0x1009e841
mov byte [ebp - 1], 0
mov eax, dword [esi + 0x40]
push 0x10158d3c
mov dword [ebp - 0x10], eax
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
mov esi, dword [0x1014e914]
jmp 0x1009e6c8
push 0x10158d3c
call edi
mov eax, dword [esi + 0x30]
test eax, eax
je 0x1009e870
mov ecx, dword [eax + 0x20]
jmp 0x1009e873
mov ecx, dword [esi + 0x20]
shr ecx, 0xc
test cl, 1
je 0x1009e892
test eax, eax
je 0x1009e884
mov eax, dword [eax + 0x20]
jmp 0x1009e887
mov eax, dword [esi + 0x20]
shr eax, 0xd
test al, 1
jne 0x1009e892
mov bh, 1
jmp 0x1009e894
xor bh, bh
mov eax, dword [esi + 0x40]
push 0x10158d3c
mov dword [ebp - 0x14], eax
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
mov esi, dword [0x1014e914]
jmp 0x1009e715
push 0x10158d3c
call edi
mov eax, dword [esi + 0x30]
test eax, eax
je 0x1009e8c3
mov ecx, dword [eax + 0x20]
jmp 0x1009e8c6
mov ecx, dword [esi + 0x20]
shr ecx, 0xc
test cl, 1
je 0x1009e8f6
test eax, eax
je 0x1009e8d7
mov eax, dword [eax + 0x20]
jmp 0x1009e8da
mov eax, dword [esi + 0x20]
shr eax, 0xd
test al, 1
jne 0x1009e8f6
mov esi, dword [esi + 0x40]
mov bl, 1
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
jmp 0x1009e75a
mov esi, dword [esi + 0x40]
xor bl, bl
push 0x10158d3c
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockShared]
jmp 0x1009e75a