Function at 0x102c1e5
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.0100fdf7
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 0x102c295
mov al, byte [0x1049298]
cmp al, 4
jae 0x102c27f
test al, al
jne 0x102c295
push 0x102c6e0
push dword [0x104926c]
push dword [0x1049268]
call fcn.0101e147
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 0x102c2eb
mov al, byte [0x1049298]
cmp al, 4
jae 0x102c2d2
test al, al
jne 0x102c2eb
push 0x102c6f0
push dword [0x104926c]
push dword [0x1049268]
call fcn.0101e147
mov ecx, dword [ebp - 0xc]
mov eax, dword [0x10489ac]
cmp eax, 0x10489ac
je 0x102c321
test byte [eax + 0x1c], 0x20
je 0x102c321
push ecx
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push dword [ebp - 0x10]
push 0x102c700
push 0x101cbc8
push 0x10
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0102ed3b
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x102c59d
cmp dword [ebp - 0x1c], 0
je 0x102c59d
cmp dword [ebp + 8], 0
je 0x102c59d
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 0x102c3a2
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 0x102c3a6
and dword [ebp - 0xc], 0
cmp dword [ebp - 0xc], 0
je 0x102c59a
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 0x102c59a
push 0x1f4
push dword [ebx + 0x9c]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x102c409
mov dword [ebp - 0xc], esi
mov eax, dword [0x10489ac]
cmp eax, 0x10489ac
je 0x102c43c
test byte [eax + 0x1c], 0x20
je 0x102c43c
push dword [ebp - 0xc]
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push edi
push 0x102c700
push 0x101cbc8
push 0x11
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0102ed3b
cmp dword [ebp - 0xc], esi
je 0x102c59a
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 0x102c59a
mov eax, dword [ebp + 8]
cmp eax, esi
jbe 0x102c59a
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 0x102c4d0
cmp edx, esi
je 0x102c588
mov edi, dword [edi - 8]
mov ecx, edx
not ecx
and ecx, eax
sub edi, 3
je 0x102c578
dec edi
je 0x102c512
dec edi
je 0x102c503
dec edi
je 0x102c4fc
dec edi
jne 0x102c588
mov eax, 0x8000000
jmp 0x102c57d
mov eax, 0x4000000
jmp 0x102c57d
mov eax, 0x2000000
or dword [ebp - 8], eax
test cl, 1
jne 0x102c585
jmp 0x102c588
or dword [ebp - 8], 0xd0000000
test dl, 1
je 0x102c527
or dword [ebp - 4], 0x50000000
jmp 0x102c588
test al, 6
je 0x102c545
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 0x102c54d
mov dword [ebp - 0x14], esi
test dl, 4
je 0x102c555
mov dword [ebp - 0x28], esi
cmp dword [ebp - 0x28], esi
jne 0x102c566
cmp dword [ebp - 0x14], esi
jne 0x102c566
or dword [ebp - 4], 0x40000000
test dl, 8
je 0x102c56e
mov dword [ebp - 0x2c], esi
test dl, 0x10
je 0x102c588
mov dword [ebp - 0x30], esi
jmp 0x102c588
mov eax, 0x20000000
or dword [ebp - 8], eax
test cl, 1
jne 0x102c588
or dword [ebp - 4], eax
mov edi, dword [ebp + 8]
add edi, 0xc
dec dword [ebp - 0x1c]
mov dword [ebp + 8], edi
jne 0x102c4bf
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 0x102c650
mov eax, dword [ebp - 0x24]
cmp dword [ebx + 0x13c], eax
jne 0x102c650
mov eax, dword [ebp - 0x20]
cmp dword [ebx + 0x140], eax
jne 0x102c650
cmp dword [ebx + 0x148], edi
jne 0x102c650
xor eax, eax
mov dword [ebx + 0x12c], edi
cmp dword [ebp - 0xc], eax
je 0x102c63f
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 0x102c650
or dword [ebx + 0x134], 2
mov dword [ebx + 0x128], 0x10000
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [0x1049294], 0
je 0x102c683
mov al, byte [0x1049298]
cmp al, 4
jae 0x102c66d
test al, al
jne 0x102c683
push 0x102c6d0
push dword [0x104926c]
push dword [0x1049268]
call fcn.0101e147
mov eax, dword [0x10489ac]
cmp eax, 0x10489ac
je 0x102c6c7
test byte [eax + 0x1c], 0x20
je 0x102c6c7
push dword [ebp - 0xc]
push dword [ebx + 0x148]
push dword [ebx + 0x140]
push dword [ebx + 0x13c]
push dword [ebx + 0x138]
push 0x102c700
push 0x101cbc8
push 0x12
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.0102af60
pop edi
pop esi
pop ebx
leave
ret 4