Function at 0x10016e60
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
mov eax, dword [0x1009f080]
xor eax, ebp
mov dword [ebp - 8], eax
push ebx
push esi
mov ebx, ecx
mov ecx, str.Menu_Hotkey:
push edi
call fcn.10024cc0
push 1
xor edx, edx
mov ecx, str.Menu_Hotkey:
call fcn.1003ca80
movss xmm1, dword [0x10094604]
add esp, 4
xorps xmm0, xmm0
call fcn.10025500
cmp byte [ebx + 0x1f], 0
jne 0x10016f5c
push 0
push dword [ebx + 0x10]
mov dword [ebp - 0x94], 0x42c80000
mov dword [ebp - 0x90], 0
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
mov ecx, dword [ebx + 0x10]
add ecx, 0xffffffdf
cmp ecx, 0x84
ja case.0x10016ee1.41
movzx ecx, byte [ecx + 0x1001720c]
jmp dword [ecx*4 + 0x10017204]
or eax, 0x100
push 0x80
lea ecx, [ebp - 0x8c]
shl eax, 0x10
push ecx
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
cmp dword [ebx + 0x10], 0
lea eax, [ebp - 0x8c]
mov ecx, 0x1008a944
lea edx, [ebp - 0x94]
cmovne ecx, eax
push 0
call fcn.1003da00
add esp, 4
test al, al
je 0x10016f5c
mov ecx, dword [0x1009fb1c]
mov eax, dword [0x1009fb20]
lea edx, [ecx + eax*4]
cmp ecx, edx
je 0x10016f53
nop dword [eax + eax]
mov eax, dword [ecx]
cmp byte [eax + 0x1f], 0
je 0x10016f4c
mov byte [eax + 0x1f], 0
add ecx, 4
cmp ecx, edx
jne 0x10016f40
mov byte [ebx + 0x1f], 1
jmp 0x1001710a
mov eax, dword [0x100a1be4]
cmp byte [eax + 0x1b77], 0
mov ecx, dword [eax + 0x1a00]
je 0x10017039
cmp byte [eax + 0x1b76], 0
jne 0x10017039
mov eax, dword [eax + 0x1b2c]
test eax, eax
je 0x10016f97
cmp eax, dword [ecx + 0x10c]
jne 0x10016f97
mov al, 1
jmp 0x10016f99
xor al, al
test al, al
jne 0x100170ce
cmp byte [ebx + 0x1f], 0
je 0x1001710a
push 0
lea edx, [ebp - 0x94]
mov dword [ebp - 0x94], 0x42c80000
mov ecx, 0x1008a920
mov dword [ebp - 0x90], 0
call fcn.1003da00
add esp, 4
test al, al
je 0x10016fdc
mov byte [ebx + 0x1f], 0
cmp byte [ebx + 0x1f], 0
je 0x1001710a
mov esi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov edi, 0xff
push 0x1b
call esi
shr eax, 0xf
and al, 1
jne 0x100170ff
push 0x12
call esi
shr eax, 0xf
and al, 1
jne 0x1001702f
push 1
call esi
shr eax, 0xf
and al, 1
jne 0x1001702f
push 2
call esi
shr eax, 0xf
and al, 1
jne 0x1001702f
push edi
call esi
shr eax, 0xf
and al, 1
jne 0x100170fa
dec edi
test edi, edi
jg 0x10016ff1
jmp 0x1001710a
test byte [ecx + 0x110], 1
je 0x10016fa1
mov esi, dword [ecx + 0x2f8]
cmp dword [eax + 0x1a08], esi
jne 0x10016fa1
mov edx, dword [eax + 0x1a34]
test edx, edx
je 0x1001707c
cmp edx, dword [ecx + 0x10c]
je 0x1001707c
cmp byte [eax + 0x1a41], 0
jne 0x1001707c
cmp edx, dword [ecx + 0x48]
jne 0x10016fa1
mov eax, dword [0x100a1be4]
mov eax, dword [eax + 0x1b28]
test eax, eax
je 0x100170ac
mov eax, dword [eax + 0x2f8]
test eax, eax
je 0x100170ac
cmp byte [eax + 0x7b], 0
je 0x100170ac
cmp eax, esi
je 0x100170ac
test dword [eax + 8], 0xc000000
jne 0x10016fa1
test byte [ecx + 0x1a4], 4
jne 0x10016fa1
mov eax, dword [ecx + 0x10c]
cmp eax, dword [ecx + 0x48]
jne 0x100170ce
cmp byte [ecx + 0x7c], 0
jne 0x10016fa1
call fcn.1001f0f0
test al, al
je 0x10016fa1
mov eax, dword [0x100a1be4]
push ecx
push str.HotkeyExSettings
mov ecx, dword [eax + 0x1a00]
call fcn.1001bca0
mov ecx, eax
call fcn.10026290
jmp 0x1001710a
mov dword [ebx + 0x10], edi
jmp 0x10017106
mov dword [ebx + 0x10], 0
mov byte [ebx + 0x1f], 0
mov ecx, dword [0x100a1be4]
mov eax, dword [ecx + 0x1b10]
cmp eax, dword [ecx + 0x1b1c]
jg 0x1001712d
mov dword [ecx + 0x1a80], 0
jmp 0x100171be
push ecx
mov ecx, dword [ecx + 0x1a00]
push str.HotkeyExSettings
call fcn.1001bca0
mov ecx, eax
call fcn.10026900
test al, al
je 0x100171be
cmp dword [ebx + 0x20], 0
mov ecx, str.Toggle
sete dl
call fcn.1003f2d0
test al, al
je 0x10017165
mov dword [ebx + 0x20], 0
cmp dword [ebx + 0x20], 1
mov ecx, str.Repeat
sete dl
call fcn.1003f2d0
test al, al
je 0x10017181
mov dword [ebx + 0x20], 1
cmp dword [ebx + 0x20], 2
mov ecx, str.Always_Active
sete dl
call fcn.1003f2d0
test al, al
je 0x1001719d
mov dword [ebx + 0x20], 2
cmp dword [ebx + 0x20], 3
mov ecx, 0x1008a944
sete dl
call fcn.1003f2d0
test al, al
je 0x100171b9
mov dword [ebx + 0x20], 3
call fcn.10026990
mov eax, dword [0x100a1be4]
mov esi, dword [eax + 0x1a00]
cmp dword [esi + 0xbc], 0
jg 0x100171e9
push 0x539
push str.D:MGREffectEditorEffectEditorimguiimgui.h
push str.Size___0
call fcn.100679c3
add esp, 0xc
dec dword [esi + 0xbc]
mov ecx, dword [ebp - 8]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10054d47
mov esp, ebp
pop ebp
ret 4