Function at 0x102c16d
Capabilities:
Inspect section memory permissions

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x84
and dword [ebp - 0x28], 0
and dword [ebp - 8], 0
push ebx
push esi
mov ebx, ecx
xor eax, eax
inc eax
push edi
lea esi, [ebx + 0x104]
push esi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebx + 0x138]
mov edi, dword [ebx + 0x148]
mov dword [ebp - 0x10], eax
mov eax, dword [ebx + 0x13c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebx + 0x140]
mov dword [ebp - 0x20], eax
mov eax, dword [ebx + 0x144]
lea ecx, [ebx + 0x128]
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], eax
call fcn.0100fe0f
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
movzx esi, word [ebp - 0x20]
movzx eax, word [ebp - 0x24]
and dword [ebp - 4], 0
shl esi, 0x10
or esi, eax
cmp dword [0x1049294], 0
mov dword [ebp - 0x34], esi
je 0x102c21d
mov al, byte [0x1049298]
cmp al, 4
jae 0x102c207
test al, al
jne 0x102c21d
push 0x102c668
push dword [0x104926c]
push dword [0x1049268]
call fcn.0101e0cf
lea eax, [ebp - 4]
push eax
push 0x12c
push 2
push esi
push 0
push 0x2cc
push dword [ebp - 0x10]
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
mov ecx, eax
neg ecx
sbb ecx, ecx
neg ecx
cmp dword [0x1049294], 0
mov dword [ebp - 0xc], ecx
je 0x102c273
mov al, byte [0x1049298]
cmp al, 4
jae 0x102c25a
test al, al
jne 0x102c273
push 0x102c678
push dword [0x104926c]
push dword [0x1049268]
call fcn.0101e0cf
mov ecx, dword [ebp - 0xc]
mov eax, dword [0x10489ac]
cmp eax, 0x10489ac
je 0x102c2a9
test byte [eax + 0x1c], 0x20
je 0x102c2a9
push ecx
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x10]
push 0x102c688
push 0x101cb50
push 0x10
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0102ed63
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x102c525
cmp dword [ebp - 0x1c], 0
je 0x102c525
cmp dword [ebp + 8], 0
je 0x102c525
xor eax, eax
lea edi, [ebp - 0x80]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov eax, dword [ebp - 0x18]
mov edi, dword [ebp - 0x10]
push 0xffffffffffffffff
push dword [ebx + 0xa0]
mov dword [ebp - 0x84], 0x14
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x102c32a
push 5
pop ecx
push dword [ebx + 0x9c]
lea edi, [ebx + 0xa4]
lea esi, [ebp - 0x84]
rep movsd dword es:[edi], dword [esi]
call dword [sym.imp.KERNEL32.dll_ResetEvent]
push dword [ebx + 0xa0]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov esi, dword [ebp - 0x34]
mov edi, dword [ebp - 0x10]
jmp 0x102c32e
and dword [ebp - 0xc], 0
cmp dword [ebp - 0xc], 0
je 0x102c522
push 0x2c
lea eax, [ebp - 0x60]
push 0
push eax
call sub.msvcrt.dll_memset
mov eax, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], eax
xor esi, esi
push esi
lea eax, [ebp - 0x64]
push eax
push 2
push edi
mov dword [ebp - 0x64], 0x30
mov dword [ebp - 0x58], edi
call dword [sym.imp.USER32.dll_Ordinal_2500]
mov dword [ebp - 0xc], eax
cmp eax, esi
je 0x102c522
push 0x1f4
push dword [ebx + 0x9c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x102c391
mov dword [ebp - 0xc], esi
mov eax, dword [0x10489ac]
cmp eax, 0x10489ac
je 0x102c3c4
test byte [eax + 0x1c], 0x20
je 0x102c3c4
push dword [ebp - 0xc]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push edi
push 0x102c688
push 0x101cb50
push 0x11
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0102ed63
cmp dword [ebp - 0xc], esi
je 0x102c522
and dword [ebp - 4], 0x1ffffff
push 5
pop eax
push 0xc
mov dword [ebp + 8], eax
mov dword [ebp - 0x58], eax
lea eax, [ebp - 0x70]
push eax
lea eax, [ebp + 8]
push eax
push 1
push esi
push edi
mov dword [ebp - 0x70], 3
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], 4
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], 6
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], 7
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x38], esi
call dword [sym.imp.USER32.dll_GetGestureConfig]
test eax, eax
je 0x102c522
mov eax, dword [ebp + 8]
cmp eax, esi
jbe 0x102c522
lea edi, [ebp - 0x68]
mov dword [ebp + 8], edi
mov dword [ebp - 0x1c], eax
mov eax, dword [edi - 4]
mov edx, dword [edi]
cmp eax, esi
jne 0x102c458
cmp edx, esi
je 0x102c510
mov edi, dword [edi - 8]
mov ecx, edx
not ecx
and ecx, eax
sub edi, 3
je 0x102c500
dec edi
je 0x102c49a
dec edi
je 0x102c48b
dec edi
je 0x102c484
dec edi
jne 0x102c510
mov eax, 0x8000000
jmp 0x102c505
mov eax, 0x4000000
jmp 0x102c505
mov eax, 0x2000000
or dword [ebp - 8], eax
test cl, 1
jne 0x102c50d
jmp 0x102c510
or dword [ebp - 8], 0xd0000000
test dl, 1
je 0x102c4af
or dword [ebp - 4], 0x50000000
jmp 0x102c510
test al, 6
je 0x102c4cd
or dword [ebp - 4], 0x80000000
mov ecx, eax
shr ecx, 2
and ecx, 1
shr eax, 1
and eax, 1
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x14], eax
test dl, 2
je 0x102c4d5
mov dword [ebp - 0x14], esi
test dl, 4
je 0x102c4dd
mov dword [ebp - 0x28], esi
cmp dword [ebp - 0x28], esi
jne 0x102c4ee
cmp dword [ebp - 0x14], esi
jne 0x102c4ee
or dword [ebp - 4], 0x40000000
test dl, 8
je 0x102c4f6
mov dword [ebp - 0x2c], esi
test dl, 0x10
je 0x102c510
mov dword [ebp - 0x30], esi
jmp 0x102c510
mov eax, 0x20000000
or dword [ebp - 8], eax
test cl, 1
jne 0x102c510
or dword [ebp - 4], eax
mov edi, dword [ebp + 8]
add edi, 0xc
dec dword [ebp - 0x1c]
mov dword [ebp + 8], edi
jne 0x102c447
mov edi, dword [ebp - 0x18]
lea esi, [ebx + 0x104]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x10]
cmp dword [ebx + 0x138], eax
jne 0x102c5d8
mov eax, dword [ebp - 0x24]
cmp dword [ebx + 0x13c], eax
jne 0x102c5d8
mov eax, dword [ebp - 0x20]
cmp dword [ebx + 0x140], eax
jne 0x102c5d8
cmp dword [ebx + 0x148], edi
jne 0x102c5d8
xor eax, eax
mov dword [ebx + 0x12c], edi
cmp dword [ebp - 0xc], eax
je 0x102c5c7
mov ecx, dword [ebp - 4]
mov dword [ebx + 0x128], ecx
mov ecx, dword [ebp - 8]
mov dword [ebx + 0x130], ecx
xor ecx, ecx
cmp dword [ebp - 0x30], eax
sete cl
xor edi, edi
inc edi
xor edx, edx
and ecx, edi
add ecx, ecx
cmp dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x28]
sete dl
and eax, edi
and edx, edi
or ecx, edx
add ecx, ecx
or ecx, eax
mov eax, dword [ebp - 0x14]
add ecx, ecx
and eax, edi
or ecx, eax
mov eax, dword [ebx + 0x134]
shl ecx, 3
and eax, 0xffffff87
or ecx, eax
or ecx, edi
mov dword [ebx + 0x134], ecx
jmp 0x102c5d8
or dword [ebx + 0x134], 2
mov dword [ebx + 0x128], 0x10000
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [0x1049294], 0
je 0x102c60b
mov al, byte [0x1049298]
cmp al, 4
jae 0x102c5f5
test al, al
jne 0x102c60b
push 0x102c658
push dword [0x104926c]
push dword [0x1049268]
call fcn.0101e0cf
mov eax, dword [0x10489ac]
cmp eax, 0x10489ac
je 0x102c64f
test byte [eax + 0x1c], 0x20
je 0x102c64f
push dword [ebp - 0xc]
push dword [ebx + 0x148]
push dword [ebx + 0x140]
push dword [ebx + 0x13c]
push dword [ebx + 0x138]
push 0x102c688
push 0x101cb50
push 0x12
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0102aee8
pop edi
pop esi
pop ebx
leave
ret 4