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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10033bd0
mov eax, dword fs:[0]
push eax
sub esp, 0x150
mov eax, dword [0x10049040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
lea eax, [ebp - 0x15c]
mov dword [ebp - 0x118], 0
push eax
lea eax, [ebp - 0x128]
mov dword [ebp - 0x114], 0
xorps xmm0, xmm0
mov dword [ebp - 0x15c], 0xcf
push eax
movups xmmword [ebp - 0x128], xmm0
call fcn.1000e840
mov ecx, dword [ebp - 0x15c]
mov edi, eax
mov dword [ebp - 0x114], ecx
mov esi, str.Press_the_OK_button__then_press_any_keyboard_or_mouse_button._Which_will_set_it_as_the_new_hotkey_for_the_FPS_toggle_betweeen_30_or_60_FPS_in_game._You_will_get_another_window_to_confirm_your_key_choice...
mov dword [ebp - 0x128], eax
mov ecx, 0x33
mov dword [ebp - 0x118], 0xcd
add esp, 8
rep movsd dword es:[edi], dword [esi]
push 0x40
push str.Hotkey_Notification
movsb byte es:[edi], byte [esi]
mov byte [eax + 0xcd], 0
lea eax, [ebp - 0x128]
cmp dword [ebp - 0x114], 0xf
cmova eax, dword [ebp - 0x128]
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [ebp - 0x114]
cmp ecx, 0xf
jbe 0x1001204b
mov edx, dword [ebp - 0x128]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10012041
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10012585
push ecx
push edx
call fcn.10016b26
add esp, 8
mov edi, dword [sym.imp.USER32.dll_GetAsyncKeyState]
mov esi, 8
push esi
call edi
test ax, ax
js 0x10012459
inc esi
cmp esi, 0xff
jle 0x10012056
push 1
call edi
test ax, ax
js 0x100123b4
push 2
call edi
test ax, ax
js 0x1001231e
push 4
call edi
test ax, ax
js 0x1001227e
push 5
call edi
test ax, ax
js 0x10012198
push 6
call edi
test ax, ax
js 0x100120b2
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x10012051
lea eax, [ebp - 0x15c]
mov dword [section..data], 6
push eax
lea eax, [ebp - 0x140]
mov byte [0x1004c1c5], 1
xorps xmm0, xmm0
mov dword [ebp - 0x130], 0
push eax
movups xmmword [ebp - 0x140], xmm0
mov dword [ebp - 0x12c], 0
mov dword [ebp - 0x15c], 0x2f
call fcn.1000e840
movups xmm0, xmmword [str.Custom_hotkey_set_to:_X_Button_2]
mov ecx, dword [ebp - 0x15c]
add esp, 8
mov dword [ebp - 0x140], eax
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x130], 0x20
movups xmmword [eax], xmm0
push 0x40
movups xmm0, xmmword [0x1003613c]
push str.Hotkey_Notification
movups xmmword [eax + 0x10], xmm0
mov byte [eax + 0x20], 0
lea eax, [ebp - 0x140]
cmp dword [ebp - 0x12c], 0xf
cmova eax, dword [ebp - 0x140]
push eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call eax
mov ecx, dword [ebp - 0x12c]
cmp ecx, 0xf
jbe 0x1001256a
mov edx, dword [ebp - 0x140]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10012560
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001258a
jmp 0x10012560
lea eax, [ebp - 0x15c]
mov dword [section..data], 5
push eax
lea eax, [ebp - 0x128]
mov byte [0x1004c1c5], 1
xorps xmm0, xmm0
mov dword [ebp - 0x118], 0
push eax
movups xmmword [ebp - 0x128], xmm0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x15c], 0x2f
call fcn.1000e840
movups xmm0, xmmword [str.Custom_hotkey_set_to:_X_Button_1]
mov ecx, dword [ebp - 0x15c]
add esp, 8
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x118], 0x20
mov dword [ebp - 0x114], ecx
movups xmmword [eax], xmm0
movups xmm0, xmmword [0x10036118]
movups xmmword [eax + 0x10], xmm0
mov byte [eax + 0x20], 0
cmp dword [ebp - 0x114], 0xf
lea eax, [ebp - 0x128]
push 0x40
cmova eax, dword [ebp - 0x128]
push str.Hotkey_Notification
push eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call eax
mov ecx, dword [ebp - 0x114]
cmp ecx, 0xf
jbe 0x1001256a
mov edx, dword [ebp - 0x128]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10012560
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001258f
jmp 0x10012560
lea eax, [ebp - 0x15c]
mov dword [section..data], 4
push eax
lea eax, [ebp - 0x128]
mov byte [0x1004c1c5], 1
xorps xmm0, xmm0
mov dword [ebp - 0x118], 0
push eax
movups xmmword [ebp - 0x128], xmm0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x15c], 0x2f
call fcn.1000e840
movups xmm0, xmmword [str.Custom_hotkey_set_to:_Middle_Mouse_Button]
mov ecx, dword [ebp - 0x15c]
mov edx, eax
mov dword [ebp - 0x128], edx
add esp, 8
mov dword [ebp - 0x118], 0x29
mov dword [ebp - 0x114], ecx
movups xmmword [edx], xmm0
movups xmm0, xmmword [0x100360ec]
movups xmmword [edx + 0x10], xmm0
movq xmm0, qword [0x100360fc]
movq qword [edx + 0x20], xmm0
mov al, byte [0x10036104]
mov byte [edx + 0x28], al
mov byte [edx + 0x29], 0
jmp 0x1001221c
lea eax, [ebp - 0x15c]
mov dword [section..data], 2
push eax
lea eax, [ebp - 0x128]
mov byte [0x1004c1c5], 1
xorps xmm0, xmm0
mov dword [ebp - 0x118], 0
push eax
movups xmmword [ebp - 0x128], xmm0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x15c], 0x2f
call fcn.1000e840
movups xmm0, xmmword [str.Custom_hotkey_set_to:_Right_Mouse_Button]
mov ecx, dword [ebp - 0x15c]
add esp, 8
mov dword [ebp - 0x128], eax
mov dword [ebp - 0x118], 0x28
mov dword [ebp - 0x114], ecx
movups xmmword [eax], xmm0
movups xmm0, xmmword [0x100360c0]
movups xmmword [eax + 0x10], xmm0
movq xmm0, qword [0x100360d0]
movq qword [eax + 0x20], xmm0
mov byte [eax + 0x28], 0
jmp 0x1001221c
lea eax, [ebp - 0x15c]
mov dword [section..data], 1
push eax
lea eax, [ebp - 0x128]
mov byte [0x1004c1c5], 1
xorps xmm0, xmm0
mov dword [ebp - 0x118], 0
push eax
movups xmmword [ebp - 0x128], xmm0
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x15c], 0x2f
call fcn.1000e840
movups xmm0, xmmword [str.Custom_hotkey_set_to:_Left_Mouse_Button]
mov ecx, dword [ebp - 0x15c]
mov edx, eax
mov dword [ebp - 0x128], edx
add esp, 8
mov dword [ebp - 0x118], 0x27
mov dword [ebp - 0x114], ecx
movups xmmword [edx], xmm0
movups xmm0, xmmword [0x10036098]
movups xmmword [edx + 0x10], xmm0
mov eax, dword [0x100360a8]
mov dword [edx + 0x20], eax
mov ax, word [0x100360ac]
mov word [edx + 0x24], ax
mov al, byte [0x100360ae]
mov byte [edx + 0x26], al
mov byte [edx + 0x27], 0
jmp 0x1001221c
push 0x100
lea eax, [ebp - 0x110]
mov dword [section..data], esi
push eax
push 0
push esi
mov byte [0x1004c1c5], 0
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
shl eax, 0x10
push eax
call dword [sym.imp.USER32.dll_GetKeyNameTextA]
xorps xmm0, xmm0
mov dword [ebp - 0x118], 0
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x114], 0
movups xmmword [ebp - 0x128], xmm0
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100124b0
sub ecx, edx
lea eax, [ebp - 0x110]
push ecx
push eax
lea ecx, [ebp - 0x128]
call fcn.1000e8a0
lea eax, [ebp - 0x128]
mov dword [ebp - 4], 0
push eax
lea eax, [ebp - 0x158]
push str.Custom_FPS_toggle_hotkey_set_to_key:
push eax
call fcn.1000e740
mov ecx, dword [ebp - 0x114]
add esp, 0xc
cmp ecx, 0xf
jbe 0x10012524
mov edx, dword [ebp - 0x128]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1001251a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1001258f
push ecx
push edx
call fcn.10016b26
add esp, 8
cmp dword [ebp - 0x144], 0xf
lea eax, [ebp - 0x158]
push 0x40
cmova eax, dword [ebp - 0x158]
push str.Hotkey_Notification
push eax
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call eax
mov ecx, dword [ebp - 0x144]
cmp ecx, 0xf
jbe 0x1001256a
mov edx, dword [ebp - 0x158]
inc ecx
jmp 0x10012257
push ecx
push edx
call fcn.10016b26
add esp, 8
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10016b64
mov esp, ebp
pop ebp
ret
call fcn.1001be25
call fcn.1001be25
call fcn.1001be25
int3