Function at 0x415930
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x508082
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x34
push ebx
mov ebx, ecx
push esi
push edi
mov dword [ebp - 0x24], ebx
mov dword [ebx], vtable.CListObjectBase.0
lea ecx, [ebx + 4]
mov dword [ebp - 4], 0
call fcn.00415460
push 0x513858
lea ecx, [ebx + 0x34]
mov byte [ebp - 4], 1
call fcn.004154a0
mov dword [ebx + 0x30], vtable.SynDevice.0
mov dword [ebx + 0x38], vtable.SynDevice.1.0
mov dword [ebx + 0x40], vtable.CDummySynDevice.0
mov dword [ebx + 0x44], 0
mov dword [ebx + 0x3c], 0
mov dword [ebx], vtable.CManagedPointingDevice.0
mov dword [ebx + 4], vtable.CManagedPointingDevice.1.0
mov dword [ebx + 0x30], vtable.CManagedPointingDevice.2.0
mov dword [ebx + 0x38], vtable.CManagedPointingDevice.3.0
mov dword [ebx + 0x48], vtable.CManagedPointingDevice.4.0
mov dword [ebx + 0x70], 0
mov dword [ebx + 0x6c], 0
mov dword [ebx + 0x68], 0
mov dword [ebx + 0x64], 0
mov dword [ebx + 0x80], 0
mov dword [ebx + 0x7c], 0
mov dword [ebx + 0x78], 0
mov dword [ebx + 0x74], 0
mov dword [ebx + 0x90], 0
mov dword [ebx + 0x8c], 0
mov dword [ebx + 0x88], 0
mov dword [ebx + 0x84], 0
mov dword [ebx + 0xa0], 0
mov dword [ebx + 0x9c], 0
mov dword [ebx + 0x98], 0
mov dword [ebx + 0x94], 0
mov dword [ebx + 0xb0], 0
mov dword [ebx + 0xac], 0
mov dword [ebx + 0xa8], 0
mov dword [ebx + 0xa4], 0
mov dword [ebx + 0xc0], 0
mov dword [ebx + 0xbc], 0
mov dword [ebx + 0xb8], 0
mov dword [ebx + 0xb4], 0
mov dword [ebx + 0x710], 0
push 0x513894
lea ecx, [ebx + 0x71c]
mov byte [ebp - 4], 3
call fcn.00415590
mov dword [ebx + 0x718], 0x513890
mov dword [ebx + 0x720], 0x51379c
push str.SynCom.SynPacket
lea ecx, [ebx + 0x724]
mov byte [ebp - 4], 4
call fcn.00415770
mov dword [ebx + 0x728], 0x5137e8
push 0x417890
push 0x416be0
push 0xa
push 8
lea eax, [ebx + 0x814]
mov byte [ebp - 4], 5
push eax
call fcn.004d0e0f
push 0x417890
push 0x416be0
push 0xa
lea eax, [ebx + 0x864]
mov byte [ebp - 4], 6
push 8
push eax
call fcn.004d0e0f
push 0x417890
push 0x416be0
push 0xa
push 8
lea eax, [ebx + 0x8b4]
mov byte [ebp - 4], 7
push eax
call fcn.004d0e0f
push 0x417890
push 0x416be0
push 0xa
push 8
lea eax, [ebx + 0x904]
mov byte [ebp - 4], 8
push eax
call fcn.004d0e0f
push str.SynCom.SynPacket
lea ecx, [ebx + 0x9f0]
mov byte [ebp - 4], 9
call fcn.00415770
mov dword [ebx + 0x9f4], 0x5137e8
push str.SynCom.SynPacket
lea ecx, [ebx + 0x9f8]
mov byte [ebp - 4], 0xa
call fcn.00415770
mov dword [ebx + 0x9fc], 0x5137e8
push 0
push 0
lea ecx, [ebx + 0xd54]
mov byte [ebp - 4], 0xb
mov dword [ebx + 0xd54], 0
mov dword [ebx + 0xd58], 0
call fcn.004331a0
mov dword [ebx + 0xd54], eax
push 0
push 0
lea ecx, [ebx + 0xd5c]
mov byte [ebp - 4], 0xc
mov dword [ebx + 0xd5c], 0
mov dword [ebx + 0xd60], 0
call fcn.004331a0
mov dword [ebx + 0xd5c], eax
push str.SynCom.SynPacket
lea ecx, [ebx + 0xd8c]
mov byte [ebp - 4], 0xd
call fcn.00415770
mov dword [ebx + 0xd90], 0x5137e8
lea ecx, [ebx + 0xdd0]
mov byte [ebp - 4], 0xe
mov dword [ebx + 0xdd0], 0
mov dword [ebx + 0xdd4], 0
call fcn.004c4920
mov dword [ebx + 0xdd0], eax
lea edi, [ebx + 0xdd8]
mov byte [ebp - 4], 0xf
push 0x51390c
lea ecx, [edi + 4]
mov dword [ebp - 0x20], edi
call fcn.00415680
mov dword [edi], vtable.SynGroup.0
mov dword [edi + 8], vtable.CDummySynGroup.0
lea eax, [edi + 0x38]
mov byte [ebp - 4], 0x11
push eax
mov ecx, edi
call fcn.00433910
push str.SynCom.SynPacket
lea ecx, [edi + 0x48]
call fcn.00415770
mov dword [edi + 0x4c], vtable.CDummySynPacket.0
mov ecx, edi
mov byte [ebp - 4], 0x12
call fcn.00426230
lea edi, [ebx + 0xe28]
mov byte [ebp - 4], 0x13
push 0x51390c
lea ecx, [edi + 4]
mov dword [ebp - 0x20], edi
call fcn.00415680
mov dword [edi], vtable.SynGroup.0
mov dword [edi + 8], vtable.CDummySynGroup.0
lea eax, [edi + 0x38]
mov byte [ebp - 4], 0x15
push eax
mov ecx, edi
call fcn.00433910
push str.SynCom.SynPacket
lea ecx, [edi + 0x48]
call fcn.00415770
mov dword [edi + 0x4c], vtable.CDummySynPacket.0
mov ecx, edi
mov byte [ebp - 4], 0x16
call fcn.00426230
mov dword [ebx + 0xdc0], 0
xor eax, eax
mov dword [ebx + 0xdb8], 0x32
mov dword [ebx + 0x72c], 5
mov dword [ebx + 0x770], 0
mov dword [ebx + 0x774], 1
mov dword [ebx + 0x778], 0
mov dword [ebx + 0x730], 0
mov dword [ebx + 0x760], 0
mov dword [ebx + 0x764], 0
mov dword [ebx + 0x734], 0
mov dword [ebx + 0x738], 0
mov dword [ebx + 0x7d8], 1
mov dword [ebx + 0x784], 4
mov dword [ebx + 0x788], 0
mov dword [ebx + 0x7d4], 0
mov dword [ebx + 0x77c], 0x3a
mov dword [ebx + 0x780], 0
mov dword [ebx + 0x78c], 0
mov dword [ebx + 0x790], 0
mov dword [ebx + 0x794], 0x10
mov dword [ebx + 0x798], 0xf0
mov dword [ebx + 0x7a4], 0xa8
mov dword [ebx + 0x7b0], 0
mov dword [ebx + 0x7b4], 0
mov dword [ebx + 0x7b8], 0
mov dword [ebx + 0x7c4], 0x2000000
mov dword [ebx + 0x7c8], 0
mov dword [ebx + 0x73c], 0
mov dword [ebx + 0x740], 0
mov dword [ebx + 0x744], 0
mov dword [ebx + 0x7cc], 0
mov dword [ebx + 0x7c0], 0
mov dword [ebx + 0x7e0], 0
mov dword [ebx + 0x7dc], 0
mov dword [ebx + 0x7e8], 0x7fffffff
mov dword [ebx + 0x7e4], 0x7fffffff
mov dword [ebx + 0x4c], 0
mov word [ebx + 0xc4], ax
push eax
mov byte [ebp - 4], 0x17
mov dword [ebx + 0x7d0], eax
mov dword [ebx + 0x74c], 0x1214
call fcn.004c7a40
xor ecx, ecx
mov dword [ebx + 0x750], 0x11
add esp, 4
mov dword [ebx + 0x768], 0
cmp eax, 0xd
setge cl
mov dword [ebx + 0x754], ecx
mov dword [ebx + 0x76c], 0x3e8
lea esi, [ebx + 0x864]
mov dword [ebx + 0xda8], 0
xor edi, edi
mov dword [ebx + 0x714], 0
mov dword [ebx + 0x2cc], 0
mov dword [ebx + 0x2d0], 0
mov dword [ebx + 0x2d4], 0
mov dword [ebx + 0x2d8], 0
mov dword [ebx + 0x9ac], 0
mov dword [ebx + 0x9a8], 0
mov dword [ebx + 0x9b0], 0
mov dword [ebx + 0xa18], 0
mov dword [ebx + 0xa1c], 1
mov dword [ebx + 0xa20], 0
lea esp, [esp]
mov ecx, dword [ebx + 0x34]
test ecx, ecx
jne 0x415f3a
lea ecx, [ebx + 0x40]
mov eax, dword [ecx]
lea edx, [ebp - 0x10]
push edx
push 0x10000101
push ecx
call dword [eax + 0xc]
or ecx, 0xffffffff
test eax, eax
push edi
cmove ecx, dword [ebp - 0x10]
lea eax, [esi - 0x50]
push ecx
push eax
call fcn.004193e0
mov ecx, dword [ebx + 0x34]
add esp, 0xc
test ecx, ecx
jne 0x415f6a
lea ecx, [ebx + 0x40]
mov eax, dword [ecx]
lea edx, [ebp - 0x14]
push edx
push 0x10000101
push ecx
call dword [eax + 0xc]
or ecx, 0xffffffff
test eax, eax
push edi
cmove ecx, dword [ebp - 0x14]
push ecx
push esi
call fcn.004193e0
mov ecx, dword [ebx + 0x34]
add esp, 0xc
test ecx, ecx
jne 0x415f97
lea ecx, [ebx + 0x40]
mov eax, dword [ecx]
lea edx, [ebp - 0x18]
push edx
push 0x10000101
push ecx
call dword [eax + 0xc]
or ecx, 0xffffffff
test eax, eax
push edi
cmove ecx, dword [ebp - 0x18]
lea eax, [esi + 0x50]
push ecx
push eax
call fcn.004193e0
mov ecx, dword [ebx + 0x34]
add esp, 0xc
test ecx, ecx
jne 0x415fc7
lea ecx, [ebx + 0x40]
mov eax, dword [ecx]
lea edx, [ebp - 0x20]
push edx
push 0x10000101
push ecx
call dword [eax + 0xc]
or ecx, 0xffffffff
test eax, eax
push edi
cmove ecx, dword [ebp - 0x20]
lea eax, [esi + 0xa0]
push ecx
push eax
call fcn.004193e0
xorps xmm0, xmm0
inc edi
movsd qword [esi + 0xf4], xmm0
add esp, 0xc
add esi, 8
cmp edi, 0xa
jl 0x415f30
mov ecx, dword [ebx + 0x34]
test ecx, ecx
jne 0x416012
lea ecx, [ebx + 0x40]
mov eax, dword [ecx]
lea edx, [ebp - 0x20]
push edx
push 0x10000101
push ecx
call dword [eax + 0xc]
or esi, 0xffffffff
lea ecx, [ebp - 0x1c]
test eax, eax
mov edi, esi
push str.SynCom.SynPacket
cmove edi, dword [ebp - 0x20]
call fcn.00415770
mov dword [ebp - 0x18], vtable.CDummySynPacket.0
mov edx, dword [ebx + 0x9f8]
mov byte [ebp - 4], 0x18
test edx, edx
jne 0x416054
lea edx, [ebx + 0x9fc]
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x18]
test eax, eax
cmovne ecx, eax
mov eax, dword [edx]
push ecx
push edx
call dword [eax + 0x18]
mov ecx, dword [ebx + 0x9f8]
test ecx, ecx
jne 0x416076
lea ecx, [ebx + 0x9fc]
mov eax, dword [ecx]
push edi
push 0x10000301
push ecx
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x17
mov dword [ebp - 0x18], vtable.CDummySynPacket.0
test ecx, ecx
je 0x41609a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
xorps xmm0, xmm0
mov dword [ebx + 0x9cc], 0
mov ecx, ebx
movsd qword [ebx + 0x9c0], xmm0
mov dword [ebx + 0x9c8], 0
mov dword [ebx + 0x9d8], 0
mov dword [ebx + 0x9d4], 0
mov dword [ebx + 0x9dc], 0x1f4
mov dword [ebx + 0x9e4], 0xfa
mov dword [ebx + 0x9e8], 0
mov dword [ebx + 0x9ec], 0
mov dword [ebx + 0xa00], 0x5f5e100
mov dword [ebx + 0xa04], 0x5f5e100
mov dword [ebx + 0xa08], 1
mov dword [ebx + 0xa0c], 0
mov dword [ebx + 0xa10], 1
mov dword [ebx + 0x50], 0
mov dword [ebx + 0xa24], 0
mov dword [ebx + 0xa28], 0
mov dword [ebx + 0xa2c], 0
mov dword [ebx + 0xa5c], 0
mov dword [ebx + 0xa30], 0
mov dword [ebx + 0xa34], 0
mov dword [ebx + 0xa38], 2
mov dword [ebx + 0xa3c], 1
mov dword [ebx + 0xa40], 0x50
mov dword [ebx + 0xdc4], 0
mov dword [ebx + 0xa4c], 0
call fcn.004191c0
mov dword [ebx + 0xa58], 0
xor eax, eax
mov dword [ebx + 0xa60], 0
mov dword [ebx + 0xa64], 0
mov dword [ebx + 0xa68], 2
mov dword [ebx + 0xae0], 0
mov dword [ebx + 0xae4], 0
mov dword [ebx + 0xae8], 0
mov dword [ebx + 0xaec], 0
mov dword [ebx + 0xaf0], 0
mov dword [ebx + 0xaf4], 8
mov dword [ebx + 0xaf8], 0xd
mov dword [ebx + 0x2e8], 0xffffffff
mov dword [ebx + 0x2f4], 0x2710
mov dword [ebx + 0x2f8], 0x1388
mov dword [ebx + 0x70c], 0x19
mov dword [ebx + 0x2fc], 0
mov dword [ebx + 0x300], 0
mov dword [ebx + 0x704], 1
mov dword [ebx + 0x708], 0
mov dword [ebx + 0x748], 0
mov dword [ebx + 0x2ec], 0
mov dword [ebx + 0x2f0], 0
mov dword [ebx + 0x7a8], 2
mov dword [ebx + 0x7ac], 0
mov word [ebx + 0x304], ax
mov dword [ebx + 0xd10], eax
mov dword [ebx + 0xa70], eax
mov dword [ebx + 0xa74], eax
mov dword [ebx + 0xa78], eax
mov dword [ebx + 0xa7c], eax
mov dword [ebx + 0xa80], eax
mov dword [ebx + 0xa84], eax
mov dword [ebx + 0xa88], eax
mov dword [ebx + 0xa8c], eax
mov dword [ebx + 0xa90], eax
mov dword [ebx + 0xa94], eax
mov dword [ebx + 0xa98], eax
mov dword [ebx + 0xa9c], eax
mov dword [ebx + 0xaa0], eax
mov dword [ebx + 0xaa4], eax
mov dword [ebx + 0xaa8], eax
mov dword [ebx + 0xac4], eax
mov dword [ebx + 0xac8], eax
mov dword [ebx + 0xacc], eax
mov dword [ebx + 0xaac], eax
mov dword [ebx + 0xab0], eax
mov dword [ebx + 0xab4], eax
mov dword [ebx + 0xab8], eax
mov dword [ebx + 0xabc], eax
mov dword [ebx + 0xac0], eax
mov dword [ebx + 0x2e0], eax
mov dword [ebx + 0x2e4], eax
lea ecx, [ebp - 0x40]
mov dword [ebx + 0xad0], eax
mov dword [ebx + 0xad4], eax
mov dword [ebx + 0xadc], eax
mov dword [ebx + 0xad8], 0x3b6
mov dword [ebx + 0x54], eax
mov dword [ebx + 0x58], eax
mov dword [ebx + 0x5c], eax
mov dword [ebx + 0x60], eax
mov dword [ebx + 0xd14], eax
mov dword [ebx + 0xd20], eax
mov dword [ebx + 0xd18], eax
mov dword [ebx + 0xd24], eax
mov dword [ebx + 0xd28], eax
mov dword [ebx + 0xd2c], eax
mov dword [ebx + 0xd88], eax
mov dword [ebx + 0xafc], eax
push eax
mov dword [ebx + 0xb00], 0xffffffff
call fcn.004b90e0
push 0
push 0
push 0
push str.SoftwareSynapticsSynTPEnh
push reloc.OLEAUT32.dll_SysReAllocString
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0x19
call fcn.004bcca0
push 0
lea eax, [ebp - 0x20]
mov dword [ebp - 0x20], 0
push eax
lea eax, [ebp - 0x18]
push eax
push str.FWLEDControlPad
lea ecx, [ebp - 0x3c]
call fcn.004cbcf0
xor eax, eax
mov dword [ebp - 0x20], 0
cmp dword [ebp - 0x18], eax
lea ecx, [ebp - 0x3c]
push 0
setne al
mov dword [ebx + 0xb04], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x18]
push eax
push str.FingerCountThresholdStillSuppressCursorInPlugInAction
call fcn.004cbcf0
mov eax, dword [ebp - 0x18]
lea ecx, [ebp - 0x40]
push 0
push 0
push 0
push str.SoftwareSynapticsSynTPEnh
mov dword [ebx + 0xa6c], eax
push SysReAllocString
mov dword [ebx + 0xb08], 0
call fcn.004bcca0
xor eax, eax
mov dword [ebx + 0xb0c], 0
mov word [ebx + 0xb10], ax
lea ecx, [ebp - 0x1c]
mov word [ebx + 0x504], ax
xorps xmm0, xmm0
mov dword [ebx + 0xd30], eax
mov dword [ebx + 0xd3c], eax
mov dword [ebx + 0xd34], eax
mov dword [ebx + 0xd38], eax
mov dword [ebx + 0xd98], eax
mov dword [ebx + 0xdac], eax
mov dword [ebx + 0xd9c], eax
mov dword [ebx + 0xda0], eax
mov dword [ebx + 0xda4], eax
mov eax, dword [ebx + 0xd54]
movq qword [ebp - 0x1c], xmm0
mov dword [ebp - 0x20], eax
push ecx
push dword [eax + 4]
lea ecx, [ebx + 0xd54]
push eax
call fcn.00414630
mov edi, 0xffffffe
mov edx, eax
mov eax, dword [ebx + 0xd58]
mov ecx, edi
sub ecx, eax
cmp ecx, 1
jae 0x4164ce
push str.list_T__too_long
call fcn.004ce80c
inc eax
lea ecx, [ebx + 0xd5c]
mov dword [ebx + 0xd58], eax
mov eax, dword [ebp - 0x20]
mov dword [eax + 4], edx
mov eax, dword [edx + 4]
mov dword [eax], edx
lea edx, [ebp - 0x1c]
mov eax, dword [ecx]
push edx
mov dword [ebp - 0x20], eax
push dword [eax + 4]
push eax
call fcn.00414630
mov ecx, eax
mov eax, dword [ebx + 0xd60]
sub edi, eax
cmp edi, 1
jae 0x416511
push str.list_T__too_long
call fcn.004ce80c
inc eax
mov dword [ebx + 0xd60], eax
mov eax, dword [ebp - 0x20]
mov dword [eax + 4], ecx
mov eax, dword [ecx + 4]
mov dword [eax], ecx
mov dword [ebx + 0xd50], 0
mov dword [ebx + 0xd64], 0
mov dword [ebx + 0xd68], 0
mov dword [ebx + 0xd6c], 0
mov dword [ebx + 0xd70], 0
mov dword [ebx + 0xd74], 0
mov dword [ebx + 0xd7c], 0
mov dword [ebx + 0xd78], 0
mov dword [ebx + 0xdbc], 0
mov ecx, dword [ebx + 0x34]
test ecx, ecx
jne 0x416587
lea ecx, [ebx + 0x40]
mov eax, dword [ecx]
lea edx, [ebp - 0x20]
push edx
push 0x10000101
push ecx
call dword [eax + 0xc]
test eax, eax
lea ecx, [ebp - 0x1c]
push str.SynCom.SynPacket
cmove esi, dword [ebp - 0x20]
call fcn.00415770
mov dword [ebp - 0x18], vtable.CDummySynPacket.0
mov edx, dword [ebx + 0xd8c]
mov byte [ebp - 4], 0x1a
test edx, edx
jne 0x4165c4
lea edx, [ebx + 0xd90]
mov eax, dword [ebp - 0x1c]
lea ecx, [ebp - 0x18]
test eax, eax
cmovne ecx, eax
mov eax, dword [edx]
push ecx
push edx
call dword [eax + 0x18]
mov ecx, dword [ebx + 0xd8c]
test ecx, ecx
jne 0x4165e6
lea ecx, [ebx + 0xd90]
mov eax, dword [ecx]
push esi
push 0x10000301
push ecx
call dword [eax + 0x10]
mov ecx, dword [ebp - 0x1c]
mov byte [ebp - 4], 0x19
mov dword [ebp - 0x18], vtable.CDummySynPacket.0
test ecx, ecx
je 0x41660a
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [ebx + 0xd94], 0
lea ecx, [ebp - 0x40]
mov dword [ebx + 0xd80], 0
mov dword [ebx + 0xdcc], 0
mov dword [ebx + 0xa14], 0
mov dword [ebx + 0x9b4], 0
mov dword [ebx + 0x9b8], 0
mov dword [ebx + 0x9bc], 0
mov dword [ebx + 0xa48], 0
mov dword [ebx + 0xe80], 0
mov dword [ebx + 0xe78], 0
mov dword [ebx + 0x2dc], 0
mov dword [ebx + 0xe7c], 0
mov dword [ebx + 0x9e0], 0x1388
mov dword [ebx + 0xdb0], 0
mov dword [ebx + 0x7bc], 0
mov dword [ebx + 0xe84], 0
mov dword [ebx + 0xd84], 0
mov dword [ebx + 0xdb4], 1
mov byte [ebp - 4], 0x17
call fcn.004b93f0
mov ecx, dword [ebp - 0xc]
mov eax, ebx
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret