Function at 0x1401f6d80
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r14
push r15
sub rsp, 0x80
mov r14, rdx
mov rbp, rcx
mov rcx, qword [rcx + 0x218]
test rcx, rcx
je 0x1401f71f7
mov eax, dword [rbp + 0x194]
shr eax, 0x13
test al, 1
je 0x1401f71f7
mov edx, 0xffffffec
call qword [sym.imp.USER32.dll_GetWindowLongW]
shr eax, 0x10
test al, 1
je 0x1401f71f7
cmp dword [r14 + 8], 0x100
jne case.0x1401f6e62.10
mov ecx, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
sets dil
mov ecx, reloc.WS2_32.dll_recv
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
sets r12b
xor r9d, r9d
xor r8d, r8d
mov edx, 0x87
mov rcx, qword [r14]
call qword [sym.imp.USER32.dll_SendMessageW]
mov ecx, eax
mov edx, eax
or edx, 3
and cl, 4
cmove edx, eax
mov bl, 1
xor sil, sil
xor r15b, r15b
mov rax, qword [r14 + 0x10]
add rax, 0xfffffffffffffff7
cmp rax, 0x1f
ja case.0x1401f6e62.10
lea r8, [0x140000000]
movzx eax, byte [r8 + rax + 0x1f7254]
mov ecx, dword [r8 + rax*4 + 0x1f7238]
add rcx, r8
jmp rcx
test dl, 2
je 0x1401f6e6e
test dil, dil
je 0x1401f6e7c
movzx esi, dil
movzx ebx, r12b
xor bl, 1
mov r15b, 1
movzx eax, r15b
jmp 0x1401f6eca
test bl, dl
jne case.0x1401f6e62.10
test dil, dil
jne case.0x1401f6e62.10
xor bl, bl
jmp 0x1401f6ece
test bl, dl
jne case.0x1401f6e62.10
test dil, dil
je 0x1401f6ece
mov eax, dword [r14 + 8]
cmp eax, 0x100
jne 0x1401f7113
cmp qword [r14 + 0x10], 0x1b
jne 0x1401f71df
jmp 0x1401f71f7
xor bl, bl
test dl, 1
je 0x1401f6ec3
test dil, dil
je 0x1401f6ec6
mov sil, 1
movzx eax, sil
test al, al
je case.0x1401f6e62.10
mov r8d, dword [0x140576970]
xor edx, edx
lea rcx, [rsp + 0x20]
call fcn.140140370
lea rax, vtable.wxNavigationKeyEvent.0
mov qword [rsp + 0x20], rax
xor eax, eax
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x58], eax
test bl, bl
setne al
add eax, 4
test sil, sil
je 0x1401f6f0a
or eax, 2
jmp 0x1401f6f0d
and eax, 0xfffffffd
test r15b, r15b
je 0x1401f6f17
or eax, 4
jmp 0x1401f6f1a
and eax, 0xfffffffb
mov dword [rsp + 0x70], eax
mov qword [rsp + 0x30], rbp
lea rdx, [rsp + 0x20]
mov rcx, rbp
call fcn.1401e2b00
test al, al
je 0x1401f6f6e
xor r9d, r9d
mov edx, 0x127
mov r8d, 0x10002
mov rcx, qword [rbp + 0x218]
call qword [sym.imp.USER32.dll_SendMessageW]
nop
lea rax, vtable.wxObject.0
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
call fcn.140121450
nop
mov al, 1
jmp 0x1401f7215
lea rax, vtable.wxObject.0
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x20]
call fcn.140121450
nop
jmp case.0x1401f6e62.10
test dl, 0x10
je 0x1401f6fc4
mov edx, 0xfffffff0
mov rcx, qword [r14]
call qword [sym.imp.USER32.dll_GetWindowLongW]
and eax, 0xb
cmp al, 0xb
jne case.0x1401f6e62.10
mov rcx, qword [r14]
call fcn.1401fc480
mov rbx, rax
test rax, rax
je case.0x1401f6e62.10
mov rax, qword [rax]
jmp 0x1401f7090
mov rbx, rbp
test dil, dil
jne 0x1401f700d
nop dword [rax]
test dl, 4
jne 0x1401f7213
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x278]
test al, al
jne 0x1401f700d
mov rbx, qword [rbx + 0x80]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x87
mov rcx, qword [rbx + 0x218]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rdx, rax
jmp 0x1401f6fd0
mov rcx, rbx
call fcn.1401e78e0
mov rbx, rax
test rax, rax
je case.0x1401f6e62.10
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + reloc.WS2_32.dll_htonl]
mov rdi, rax
lea rsi, str.wxTopLevelWindow
cmp rsi, rax
je 0x1401f706b
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1401f704e
mov rdx, rsi
call fcn.140120e60
test al, al
jne 0x1401f706b
mov rcx, qword [rdi + 0x20]
test rcx, rcx
je case.0x1401f6e62.10
mov rdx, rsi
call fcn.140120e60
test al, al
je case.0x1401f6e62.10
mov eax, 0x2a8
mov ecx, 0x288
cmp qword [rbx + 0x2a8], 0
cmove eax, ecx
mov rbx, qword [rax + rbx]
test rbx, rbx
je case.0x1401f6e62.10
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
lea rdi, str.wxButton
cmp rdi, rax
mov rsi, rax
je 0x1401f70d7
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1401f70ba
mov rdx, rdi
call fcn.140120e60
test al, al
jne 0x1401f70d7
mov rcx, qword [rsi + 0x20]
test rcx, rcx
je case.0x1401f6e62.10
mov rdx, rdi
call fcn.140120e60
test al, al
je case.0x1401f6e62.10
mov rcx, rbx
call fcn.1401e2e70
test al, al
je case.0x1401f6e62.10
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x1f8]
test al, al
je case.0x1401f6e62.10
mov rax, qword [rbx]
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [rax + 0x648]
mov al, 1
jmp 0x1401f7215
cmp eax, 0x106
jne 0x1401f71df
call qword [sym.imp.USER32.dll_GetFocus]
mov rdi, rax
mov edx, 0xffffffec
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowLongW]
bt eax, 0x10
jae 0x1401f7198
mov rbx, qword [rbp + 0xa0]
test rbx, rbx
je 0x1401f71f7
nop dword [rax + rax]
mov rsi, qword [rbx + 0x10]
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x250]
test al, al
je 0x1401f718d
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x260]
test al, al
je 0x1401f718d
mov edx, 0xffffffec
mov rcx, qword [rsi + 0x218]
call qword [sym.imp.USER32.dll_GetWindowLongW]
shr eax, 0x10
test al, 1
je 0x1401f7198
mov rbx, qword [rbx + 0x18]
test rbx, rbx
jne 0x1401f7150
jmp 0x1401f71f7
test rdi, rdi
je 0x1401f71df
nop dword [rax]
mov rcx, rdi
call qword [sym.imp.USER32.dll_IsWindowEnabled]
test eax, eax
je 0x1401f71f7
mov rcx, rdi
call qword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x1401f71f7
mov edx, 0xfffffff0
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetWindowLongW]
bt eax, 0x1e
jae 0x1401f71df
mov rcx, rdi
call qword [sym.imp.USER32.dll_GetParent]
mov rdi, rax
test rax, rax
jne 0x1401f71a0
mov rdx, r14
mov rcx, qword [rbp + 0x218]
call qword [sym.imp.USER32.dll_IsDialogMessageW]
test eax, eax
jne 0x1401f6f67
cmp qword [rbp + 0x168], 0
je 0x1401f7213
cmp dword [r14 + 8], 0x200
jne 0x1401f7213
mov rcx, r14
call fcn.1402290d0
xor al, al
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
ret