Function at 0x180031e3c
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov rdi, qword [0x180591d80]
mov r8d, 1
mov r10d, dword [rsp + 0xa0]
mov esi, edx
xor edx, edx
mov qword [rsp + 0x20], rdi
mov r9d, r10d
mov rax, qword [rdi + 0x3ed0]
or r9d, r8d
test r10b, 7
cmovne r9d, r10d
mov byte [rax + 0xb0], r8b
mov ebp, r9d
mov r15, qword [rdi + 0x3ed0]
or ebp, 0x20
mov rbx, qword [rdi + 0x3ed8]
test r9d, 0x3f0
mov qword [rsp + 0x28], r15
cmovne ebp, r9d
bt ebp, 0xb
jae 0x180031ed9
test rbx, rbx
je 0x180031ed9
cmp qword [rbx + 0x370], r15
jne 0x180031ed9
mov r14b, r8b
mov qword [rdi + 0x3ed8], r15
jmp 0x180031edc
mov r14b, dl
mov r12b, dl
mov edx, esi
call fcn.18000cd30
mov r13b, al
xor eax, eax
test r13b, r13b
je 0x180031f0e
cmp byte [rdi + 0x4a5c], al
je 0x180031f73
cmp dword [rdi + 0x4a7c], esi
jne 0x180031f16
test byte [rdi + 0x4a60], 2
jne 0x180031f16
mov r13b, al
jmp 0x180031f16
cmp byte [rdi + 0x4a5c], al
je 0x180031f73
bt ebp, 9
jae 0x180031f73
test byte [rdi + 0x4a60], 4
jne 0x180031f73
mov ecx, 0x80
call fcn.18000c3ac
test al, al
je 0x180031f73
mov ecx, esi
mov r13d, 1
call fcn.180014f90
movss xmm1, dword [rdi + 0x3f28]
movss xmm2, dword [0x1800a6274]
movaps xmm0, xmm1
subss xmm0, dword [rdi + 0x18]
comiss xmm2, xmm0
jb 0x180031f73
comiss xmm1, xmm2
jb 0x180031f73
mov rcx, r15
mov dword [rdi + 0x4ad8], esi
mov r12d, r13d
call fcn.18000a018
test r14b, r14b
je 0x180031f7f
mov qword [rdi + 0x3ed8], rbx
xor ebx, ebx
test r13b, r13b
je 0x180031fa0
bt ebp, 0xc
jae 0x180031fa0
mov eax, dword [rdi + 0x3f20]
cmp eax, esi
je 0x180031fa0
test eax, eax
movzx r13d, r13b
cmovne r13d, ebx
bt ebp, 0x15
mov eax, esi
cmovb eax, ebx
mov dword [rsp + 0xa0], eax
test r13b, r13b
je 0x18003206b
mov r15d, dword [rsp + 0xa0]
or eax, 0xffffffff
mov r14d, eax
mov dword [rsp + 0x88], eax
lea eax, [r14 + 2]
bt ebp, ebx
jae 0x180032017
xor r8d, r8d
mov edx, r15d
mov ecx, ebx
call fcn.18000c68c
test al, al
je 0x180031ff0
cmp r14d, 0xffffffff
cmove r14d, ebx
mov edx, r15d
mov ecx, ebx
call fcn.18000c8f8
test al, al
je 0x180032012
mov eax, dword [rsp + 0x88]
cmp eax, 0xffffffff
cmove eax, ebx
mov dword [rsp + 0x88], eax
mov eax, 1
add ebx, eax
cmp ebx, 3
jl 0x180031fd2
mov rdi, qword [rsp + 0x20]
mov r15, qword [rsp + 0x28]
bt ebp, 0x10
jae 0x18003214e
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov ecx, 1
xor ebx, ebx
test cl, al
jne 0x18003205c
cmp byte [rdi + 0xe15], bl
jne 0x18003205c
cmp byte [rdi + 0xe16], bl
je 0x180032150
mov r14d, ecx
test r12b, r12b
je 0x18003206b
mov byte [rdi + 0x48f2], r14b
cmp dword [rdi + 0x48b8], esi
jne 0x1800320a8
cmp byte [rdi + 0x48f2], bl
jne 0x1800320a8
cmp byte [rdi + 0x48f3], bl
je 0x1800320a8
mov eax, dword [rdi + 0x3f30]
test eax, eax
je 0x180032097
cmp eax, esi
je 0x180032097
cmp eax, dword [r15 + 0x74]
jne 0x1800320a8
bt ebp, 0x13
movzx r13d, r13b
mov ecx, 1
cmovae r13d, ecx
cmp dword [rdi + 0x48c4], esi
jne 0x18003229c
cmp dword [rdi + 0x48c8], esi
mov r14d, dword [rdi + 0x48c0]
sete cl
je 0x18003210b
bt ebp, 0xa
jae 0x18003210b
mov ecx, 0x20c
call fcn.18000a8c0
mov ecx, 0x26e
mov rbx, rax
call fcn.18000a8c0
movss xmm1, dword [rbx + 4]
movss xmm3, dword [rdi + 0x40]
movss xmm2, dword [rdi + 0x3c]
maxss xmm1, dword [rax + 4]
movaps xmm0, xmm1
subss xmm0, dword [rdi + 0x18]
call fcn.180007214
xor ebx, ebx
test eax, eax
setg cl
cmp r14d, esi
je 0x180032118
test cl, cl
je 0x18003229c
mov r14d, 1
mov rdx, r15
mov ecx, esi
mov r12b, r14b
call fcn.1800148f8
mov dword [rdi + 0x3f58], 5
bt ebp, 0x12
jb 0x1800322a2
mov rdx, r15
mov ecx, esi
call fcn.180014ea8
jmp 0x1800322a2
xor ebx, ebx
cmp r14d, 0xffffffff
je 0x180032202
cmp dword [rdi + 0x3f30], esi
je 0x180032202
bt ebp, 0x14
jb 0x18003217d
lea ecx, [r14 + 0x281]
xor r8d, r8d
mov edx, esi
call fcn.180015130
test bpl, 0x60
je 0x1800321ac
mov rdx, r15
mov ecx, esi
call fcn.1800148f8
mov dword [rdi + 0x3f5c], r14d
bt ebp, 0x12
jb 0x1800321a4
mov rdx, r15
mov ecx, esi
call fcn.180014ea8
mov rcx, r15
call fcn.18000a018
test bpl, 0x10
jne 0x1800321c6
bt ebp, 8
jae 0x180032202
movsxd rax, r14d
cmp word [rdi + rax*2 + 0x3742], 2
jne 0x180032202
mov r12d, 1
bt ebp, 0x11
jae 0x1800321d9
call fcn.180007ae8
jmp 0x1800321e3
mov rdx, r15
mov ecx, esi
call fcn.1800148f8
bt ebp, 0x12
jb 0x1800321f3
mov rdx, r15
mov ecx, esi
call fcn.180014ea8
mov rcx, r15
mov dword [rdi + 0x3f5c], r14d
call fcn.18000a018
test bpl, bpl
jns 0x180032244
movsxd rax, dword [rsp + 0x88]
cmp eax, 0xffffffff
je 0x180032244
bt ebp, 0xa
jae 0x180032229
movss xmm0, dword [rdi + rax*4 + 0x377c]
comiss xmm0, dword [rdi + 0x3c]
jae 0x18003222f
mov r12d, 1
bt ebp, 0x12
jb 0x18003223f
mov rdx, r15
mov ecx, esi
call fcn.180014ea8
call fcn.180007ae8
mov r14d, 1
cmp dword [rdi + 0x3f30], esi
jne 0x18003205f
bt ebp, 0xa
jae 0x18003205f
movsxd rcx, dword [rdi + 0x3f5c]
movss xmm0, dword [rdi + rcx*4 + 0x3768]
comiss xmm0, dword [0x1800a622c]
jbe 0x18003205f
mov edx, dword [rsp + 0xa0]
mov r8d, r14d
call fcn.18000c68c
test al, al
je 0x18003205f
mov r12b, r14b
jmp 0x180032064
mov r14d, 1
mov r15b, bl
cmp dword [rdi + 0x3f30], esi
jne 0x1800323d3
mov eax, dword [rdi + 0x3f58]
cmp eax, r14d
jne 0x1800323b5
cmp byte [rdi + 0x3f3c], bl
je 0x1800322f9
movss xmm1, dword [rdi + 0xdfc]
movss xmm0, dword [rdi + 0xe00]
mov rax, qword [rsp + 0x80]
subss xmm1, dword [rax]
subss xmm0, dword [rax + 4]
movss dword [rdi + 0x3f44], xmm1
movss dword [rdi + 0x3f48], xmm0
movsxd rbx, dword [rdi + 0x3f5c]
mov edx, dword [rsp + 0xa0]
mov ecx, ebx
call fcn.18000c744
xor ecx, ecx
test al, al
je 0x18003231c
mov r15b, r14b
jmp 0x1800323a6
test r13b, r13b
je 0x180032327
test bpl, 0x20
jne 0x180032331
mov eax, ebp
shr eax, 6
test r14b, al
je 0x1800323a1
cmp byte [rdi + 0x4a5c], cl
jne 0x1800323a1
bt ebp, 8
jae 0x180032353
cmp byte [rbx + rdi + 0x3756], cl
je 0x180032353
cmp word [rdi + rbx*2 + 0x374c], 2
je 0x180032356
mov r14b, cl
bt ebp, 0xa
jae 0x180032372
movss xmm0, dword [rdi + rbx*4 + 0x377c]
comiss xmm0, dword [rdi + 0x3c]
jb 0x180032372
mov esi, 1
jmp 0x180032375
mov sil, cl
mov edx, dword [rsp + 0xa0]
lea ecx, [rbx + 0x281]
call fcn.180015fbc
test r14b, r14b
mov r14d, 1
jne 0x1800323a1
test sil, sil
jne 0x1800323a1
test al, al
movzx r12d, r12b
cmovne r12d, r14d
call fcn.180007ae8
bt ebp, 0x12
jb 0x1800323c7
mov byte [rdi + 0x48f2], r14b
jmp 0x1800323c7
cmp eax, 5
jne 0x1800323c7
cmp dword [rdi + 0x48c4], esi
je 0x1800323c7
call fcn.180007ae8
test r12b, r12b
je 0x1800323d3
mov byte [rdi + 0x3f3f], r14b
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x1800323e3
mov byte [rax], r13b
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x1800323f3
mov byte [rax], r15b
mov al, r12b
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret