Function at 0x1400520c0
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
xor esi, esi
mov rbp, r9
mov r13, r8
mov r12d, edx
mov rdi, rcx
cmp edx, 0x101
ja 0x140052141
cmp edx, 0x100
jae 0x140052177
lea eax, [rdx - 2]
cmp eax, 0xc5
ja case.0x140052121.3
lea rbx, [0x140000000]
movzx eax, byte [rbx + rax + 0x52654]
mov ecx, dword [rbx + rax*4 + 0x52648]
add rcx, rbx
jmp rcx
mov rcx, rdi
call fcn.14000a5c4
bt eax, 0xb
jae case.0x140052121.3
and byte [rdi + 0xb0], 0xf7
jmp 0x140052523
cmp edx, 0x106
ja 0x140052568
je 0x140052541
cmp edx, 0x102
je 0x140052541
cmp edx, 0x103
jbe case.0x140052121.3
cmp edx, 0x105
ja case.0x140052121.3
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x11
mov bx, ax
shr ebx, 0xf
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 0x10
mov r14w, ax
shr r14d, 0xf
and r14b, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov r11w, ax
shr r11d, 0xf
and r11b, 1
and bl, 1
jne 0x1400522b1
cmp r13d, 0x2d
jne 0x1400521dc
test r14b, r14b
jne 0x1400521e1
test r11b, r11b
jne 0x140052234
mov rcx, rdi
call fcn.140012474
jmp 0x140052628
test r14b, r14b
je 0x140052229
test r11b, r11b
jne 0x140052217
cmp r13d, 0x2d
je 0x1400521f2
cmp r13d, 0x43
jne 0x140052217
cmp r12d, 0x100
jne 0x140052210
mov rcx, qword [rdi + 0x40]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x301
call qword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
jmp 0x140052628
test r14b, r14b
je 0x140052229
test r11b, r11b
jne 0x14005226a
cmp r13d, 0x56
je 0x140052234
jmp 0x140052264
test r11b, r11b
je 0x14005225a
cmp r13d, 0x2d
jne 0x14005225a
cmp r12d, 0x100
jne 0x140052253
mov rcx, rdi
call fcn.14000a5c4
bt eax, 0xb
jb 0x140052253
mov rcx, rdi
call fcn.140012474
xor eax, eax
jmp 0x140052628
test r14b, r14b
je 0x14005226f
test r11b, r11b
jne 0x14005226a
cmp r13d, 0x58
je 0x14005227a
test r14b, r14b
jne 0x1400522b1
test r11b, r11b
je 0x1400522b1
cmp r13d, 0x2e
jne 0x1400522b1
cmp r12d, 0x100
jne 0x1400522aa
mov rcx, rdi
call fcn.14000a5c4
mov rcx, qword [rdi + 0x40]
xor r9d, r9d
and eax, 0x800
xor r8d, r8d
or eax, 0x180000
shr eax, 0xb
mov edx, eax
call qword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
jmp 0x140052628
movzx edx, byte [rdi + 0xb0]
test dl, 4
je case.0x140052303.13
cmp r12d, 0x100
je 0x1400522d8
cmp r12d, 0x104
je 0x1400522d8
xor r14b, r14b
jmp 0x1400522db
mov r14b, 1
lea r15, [r13 - 0xc]
cmp r15, 0x5d
ja case.0x140052303.13
lea rbx, [0x140000000]
movzx eax, byte [rbx + r15 + 0x52730]
mov ecx, dword [rbx + rax*4 + 0x5271c]
add rcx, rbx
jmp rcx
test r14b, r14b
je 0x140052343
mov rcx, rdi
call fcn.14000a5c4
bt eax, 0xb
jae 0x140052324
and byte [rdi + 0xb0], 0xf7
jmp 0x140052523
mov rax, qword [rdi + 0x40]
or byte [rdi + 0xb0], 8
mov qword [0x1402726b0], rax
mov dword [rdi + 0xb4], esi
xor eax, eax
jmp 0x140052628
test dl, 8
je case.0x140052121.3
and dl, 0xf7
mov byte [rdi + 0xb0], dl
mov rax, qword [0x1402726b0]
cmp rax, qword [rdi + 0x40]
cmove rax, rsi
mov qword [0x1402726b0], rax
cmp dword [rdi + 0xb4], esi
jle 0x1400523bb
movzx ebx, word [rdi + 0xb4]
mov dword [rdi + 0xb4], esi
mov rdx, qword [rdi + 0x40]
mov r9d, 0x102
lea rcx, [rsp + 0x40]
mov r8d, r9d
mov dword [rsp + 0x20], 1
call qword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
jne 0x140052380
mov rcx, qword [rdi + 0x40]
lea r9d, [rax + 1]
movzx r8d, bx
mov edx, 0x102
call qword [sym.imp.USER32.dll_SendMessageW]
xor eax, eax
jmp 0x140052628
test dl, 8
je case.0x140052121.3
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x1400523ec
and byte [rdi + 0xb0], 0xf7
jmp 0x140052523
test r14b, r14b
je case.0x140052417.10
shr rbp, 0x18
not bpl
test bpl, 1
je case.0x140052417.10
cmp r15, 0x21
ja case.0x140052417.10
movzx eax, byte [rbx + r15 + 0x527bc]
mov ecx, dword [rbx + rax*4 + 0x52790]
add rcx, rbx
jmp rcx
mov esi, 1
jmp case.0x140052417.9
mov esi, 2
jmp case.0x140052417.9
mov esi, 3
jmp case.0x140052417.9
mov esi, 4
jmp case.0x140052417.9
mov esi, 5
jmp case.0x140052417.9
mov esi, 6
jmp case.0x140052417.9
mov esi, 7
jmp case.0x140052417.9
mov esi, 8
jmp case.0x140052417.9
mov esi, 9
mov eax, dword [rdi + 0xb4]
lea ecx, [rax + rax*4]
lea eax, [rsi + rcx*2]
mov dword [rdi + 0xb4], eax
xor eax, eax
jmp 0x140052628
test dl, 8
je case.0x140052121.3
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x140052499
and byte [rdi + 0xb0], 0xf7
jmp 0x140052523
test r14b, r14b
je 0x1400524bf
shr rbp, 0x18
not bpl
test bpl, 1
je 0x1400524bf
mov eax, dword [rdi + 0xb4]
lea ecx, [rax + rax*4]
lea eax, [r13 + rcx*2 - 0x60]
mov dword [rdi + 0xb4], eax
xor eax, eax
jmp 0x140052628
test dl, 8
je case.0x140052121.3
mov ecx, 0x12
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne 0x1400524ed
and byte [rdi + 0xb0], 0xf7
jmp 0x140052523
test r14b, r14b
je 0x140052513
shr rbp, 0x18
not bpl
test bpl, 1
je 0x140052513
mov eax, dword [rdi + 0xb4]
lea ecx, [rax + rax*4]
lea eax, [r13 + rcx*2 - 0x30]
mov dword [rdi + 0xb4], eax
xor eax, eax
jmp 0x140052628
and dl, 0xf7
mov byte [rdi + 0xb0], dl
mov rax, qword [0x1402726b0]
cmp rax, qword [rdi + 0x40]
cmove rax, rsi
mov qword [0x1402726b0], rax
mov dword [rdi + 0xb4], esi
jmp case.0x140052121.3
call fcn.14000a5c4
bt eax, 0xb
jae case.0x140052121.3
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
test cx, ax
jne case.0x140052121.3
xor eax, eax
jmp 0x140052628
cmp edx, 0x302
je 0x140052581
cmp edx, 0x454
jne case.0x140052121.3
and byte [rdi + 0xb0], 0xf7
jmp 0x140052523
and byte [rcx + 0xb0], 0xf7
mov rax, qword [0x1402726b0]
cmp rax, qword [rcx + 0x40]
cmove rax, rsi
mov qword [0x1402726b0], rax
mov dword [rcx + 0xb4], esi
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x280]
test rax, rax
jne 0x140052617
cmp r12d, 0x4e
jne 0x140052617
lea rax, [rdi + 0xb8]
test rax, rax
je 0x140052617
cmp qword [rax + 0x40], rsi
je 0x140052617
test rbp, rbp
je 0x140052617
mov rcx, rsi
test rax, rax
je 0x1400525de
mov rcx, qword [rax + 0x40]
cmp qword [rbp], rcx
jne 0x140052617
cmp dword [rbp + 0x10], 0xfffffdf7
jne 0x140052617
mov rcx, rsi
test rax, rax
je 0x1400525f9
mov rcx, qword [rax + 0x40]
mov dword [rsp + 0x30], 0x13
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], esi
call qword [sym.imp.USER32.dll_SetWindowPos]
mov r9, rbp
mov r8, r13
mov edx, r12d
mov rcx, rdi
call fcn.14000f868
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret