Function at 0x100174d0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1004a58b
mov eax, dword fs:[0]
push eax
sub esp, 0x230
mov eax, dword [0x10064008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
cmp byte [ebx + 0x30], 0
mov eax, dword [ebp + 8]
je 0x1001751a
test eax, eax
je 0x10017513
mov dword [eax], 1
mov al, 1
jmp 0x100177e6
inc dword [ebx + 0xc]
cmp dword [ebx + 0xc], 0xa
mov esi, dword [sym.imp.KERNEL32.dll_VirtualQuery]
jle 0x10017536
push 0x1c
lea eax, [ebp - 0x2c]
push eax
push 0x10017b40
call esi
mov edi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.waveOutOpen
push dword [ebx + 4]
call edi
dec dword [ebx + 0xc]
mov dword [0x1008a430], eax
test eax, eax
jne 0x1001759c
call fcn.10011f10
cmp dword [eax + 0xa8], 2
jl 0x10017595
push ebx
push str.e:_repoletasoft_soundbooster_srcklhookAPI_wave.TBL
push 0xb
push str.CSCHookAPI_WAVE::HookFunctions
push 2
lea ecx, [ebp - 0x130]
call fcn.10011880
mov esi, eax
push str.GetProcAddress_FAILED
mov ecx, esi
call fcn.10011a30
push esi
call fcn.10011f10
mov ecx, eax
call fcn.10011db0
xor al, al
jmp 0x100177e6
inc dword [ebx + 0xc]
cmp dword [ebx + 0xc], 0xa
jle 0x100175b2
push 0x1c
lea eax, [ebp - 0x2c]
push eax
push 0x10017b40
call esi
push str.waveOutWrite
push dword [ebx + 4]
call edi
dec dword [ebx + 0xc]
mov dword [0x1008a42c], eax
test eax, eax
jne 0x100175e0
call fcn.10011f10
cmp dword [eax + 0xa8], 2
jl 0x10017595
push ebx
push str.e:_repoletasoft_soundbooster_srcklhookAPI_wave.TBL
push 0xc
jmp 0x10017568
lea esi, [ebx + 0xa4]
mov ecx, esi
mov dword [ebp - 0x23c], esi
call fcn.10014f80
lea ecx, [ebx + 0x10]
mov dword [ebp - 4], 0
call fcn.10013900
call fcn.10011f10
cmp dword [eax + 0xa8], 4
jl 0x1001767e
push ebx
push str.API_wave.cpp
push 0x71
push str.CSCHookAPI_WAVE::HookFunctions
push 4
lea ecx, [ebp - 0x130]
call fcn.10011880
mov edi, eax
push str.HOOKING_waveOutWrite_s_waveOutWrite0x
mov ecx, edi
call fcn.10011a30
mov byte [edi + 0x100], 1
lea eax, [ebp - 0x20]
push dword [0x1008a42c]
xorps xmm0, xmm0
push 0x10057acc
push 0x10
push eax
movups xmmword [ebp - 0x20], xmm0
call fcn.10011820
add esp, 0x10
lea eax, [ebp - 0x20]
mov ecx, edi
push eax
call fcn.10011a30
push edi
mov byte [edi + 0x100], 0
call fcn.10011f10
mov ecx, eax
call fcn.10011db0
mov ecx, dword [ebx + 0x98]
inc ecx
push ecx
push 0x10017350
push 0x1008a42c
call fcn.10017980
test al, al
jne 0x100176e5
call fcn.10011f10
cmp dword [eax + 0xa8], 2
jl 0x100177ad
push ebx
push str.API_wave.cpp
push 0x74
push str.CSCHookAPI_WAVE::HookFunctions
push 2
lea ecx, [ebp - 0x130]
call fcn.10011880
mov edi, eax
push str.FAILED_TO_HOOK_waveOutWrite_s_waveOutWrite0x
mov ecx, edi
call fcn.10011a30
mov byte [edi + 0x100], 1
push dword [0x1008a42c]
jmp 0x10017799
call fcn.10011f10
cmp dword [eax + 0xa8], 4
jl 0x1001773c
push ebx
push str.API_wave.cpp
push 0x78
push str.CSCHookAPI_WAVE::HookFunctions
push 4
lea ecx, [ebp - 0x130]
call fcn.10011880
mov edi, eax
push str.HOOKING_waveOutOpen_s_waveOutOpen0x
mov ecx, edi
call fcn.10011a30
mov byte [edi + 0x100], 1
mov ecx, edi
push dword [0x1008a430]
call fcn.100117c0
push eax
call fcn.10011f10
mov ecx, eax
call fcn.10011db0
push ecx
mov ecx, dword [ebx + 0x98]
push 0x10017220
push 0x1008a430
call fcn.10017980
test al, al
jne 0x100177b6
call fcn.10011f10
cmp dword [eax + 0xa8], 2
jl 0x100177ad
push ebx
push str.API_wave.cpp
push 0x7b
push str.CSCHookAPI_WAVE::HookFunctions
push 2
lea ecx, [ebp - 0x234]
call fcn.10011880
mov edi, eax
push str.FAILED_TO_HOOK_waveOutOpen_s_waveOutOpen0x
mov ecx, edi
call fcn.10011a30
mov byte [edi + 0x100], 1
push dword [0x1008a430]
mov ecx, edi
call fcn.100117c0
push eax
call fcn.10011f10
mov ecx, eax
call fcn.10011db0
mov byte [ebp - 0x235], 0
jmp 0x100177c7
cmp byte [ebx + 0x30], 0
mov byte [ebp - 0x235], 1
jne 0x100177c7
mov byte [ebx + 0x30], 1
xor edi, edi
cmp dword [esi], edi
jle 0x100177e0
mov ebx, dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [esi + 4]
push dword [ecx + edi*4]
call ebx
inc edi
cmp edi, dword [esi]
jl 0x100177d3
mov al, byte [ebp - 0x235]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1002e779
mov esp, ebp
pop ebp
ret 4