Function at 0x1800a7bd0
Capabilities:
Log keystrokes via polling

Disassembly:
push rbp
push rbx
push rdi
push r13
push r14
lea rbp, [rsp - 0x20]
sub rsp, 0x120
cmp byte [0x18039a580], 0
mov rdi, r9
mov rbx, r8
mov r14, rdx
mov r13, rcx
je 0x1800a8583
mov eax, dword [0x18039a5b0]
test eax, eax
jne 0x1800a7c15
mov ecx, dword [0x18039a5ac]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x1800a7c26
cmp eax, 1
jne 0x1800a7c36
mov ecx, dword [0x18039a5ac]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
test al, al
je 0x1800a8583
jmp 0x1800a7c3f
cmp eax, 2
jne 0x1800a8583
mov rcx, qword [0x18039f608]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x120]
call rdx
test al, al
je 0x1800a8583
mov rcx, qword [0x18039f608]
mov rax, qword [rcx]
mov rdx, qword [rax + 0x118]
call rdx
test al, al
je 0x1800a8583
cmp qword [0x18039f6c0], 0
je 0x1800a8583
cmp qword [0x18039f668], 0
je 0x1800a8583
mov qword [rsp + 0x150], rsi
mov qword [rsp + 0x160], r15
test r14, r14
je 0x1800a8592
mov rax, qword gs:[0x58]
movabs r15, 0x9320aed4f2ddf04b
mov ecx, dword [0x180399320]
mov edx, 4
mov rsi, qword [rax + rcx*8]
mov eax, dword [rsi + rdx]
cmp dword [0x18039f6d8], eax
jle 0x1800a7d06
lea rcx, [0x18039f6d8]
call fcn.18015d060
cmp dword [0x18039f6d8], 0xffffffff
jne 0x1800a7d06
mov rcx, r15
call fcn.18009d530
lea rcx, [0x18039f6d8]
mov dword [0x18039f6f4], eax
call fcn.18015cff4
mov eax, dword [0x18039f6f4]
cmp dword [rax + r14], 0
jle 0x1800a8592
test rbx, rbx
je 0x1800a8573
test rdi, rdi
je 0x1800a8573
mov qword [rsp + 0x158], r12
mov r12, qword [rdi + 0x40]
test r12, r12
je 0x1800a856b
mov rax, qword [0x18039ccd0]
cmp rax, qword [0x18039ccd8]
je 0x1800a7d55
mov qword [0x18039ccd8], rax
mov rax, qword [0x18039cc60]
cmp rax, qword [0x18039cc68]
je 0x1800a7d6c
mov qword [0x18039cc68], rax
mov rax, qword [0x18039cc48]
cmp rax, qword [0x18039cc50]
je 0x1800a7d83
mov qword [0x18039cc50], rax
xor ebx, ebx
mov rcx, r14
mov qword [r13 + 0x28], rbx
mov qword [r13 + 0x30], rbx
mov qword [r13 + 0x38], rbx
mov qword [r13 + 0x40], rbx
mov byte [r13 + 0x24], bl
call fcn.1800e5f20
mov r15, rax
test rax, rax
je 0x1800a856b
cmp qword [rax + 0x360], rbx
je 0x1800a856b
mov ecx, 4
mov ecx, dword [rsi + rcx]
cmp dword [0x18039fd10], ecx
jle 0x1800a7e00
lea rcx, [0x18039fd10]
call fcn.18015d060
cmp dword [0x18039fd10], 0xffffffff
jne 0x1800a7e00
movabs rcx, 0x4107570682c8e170
call fcn.18009d530
lea rcx, [0x18039fd10]
mov dword [0x18039fd60], eax
call fcn.18015cff4
mov eax, dword [0x18039fd60]
cmp dword [rax + r15], ebx
jle 0x1800a856b
mov r8, r14
mov rdx, r12
call fcn.1800ac980
cmp byte [0x18039a59b], bl
je 0x1800a7e3c
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 6
lea rcx, [0x18039ccd0]
call fcn.18009df20
cmp byte [0x18039a59c], bl
je 0x1800a7e8f
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 4
lea rcx, [0x18039ccd0]
call fcn.18009df20
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 8
lea rcx, [0x18039ccd0]
call fcn.18009df20
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 0xd
lea rcx, [0x18039ccd0]
call fcn.18009df20
cmp byte [0x18039a59d], bl
je 0x1800a7ee2
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 3
lea rcx, [0x18039ccd0]
call fcn.18009df20
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 1
lea rcx, [0x18039ccd0]
call fcn.18009df20
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 2
lea rcx, [0x18039ccd0]
call fcn.18009df20
cmp byte [0x18039a59e], bl
je 0x1800a7f1c
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 0x17
lea rcx, [0x18039ccd0]
call fcn.18009df20
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 0x1a
lea rcx, [0x18039ccd0]
call fcn.18009df20
cmp byte [0x18039a59f], bl
je 0x1800a7f56
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 0x18
lea rcx, [0x18039ccd0]
call fcn.18009df20
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], 0x1b
lea rcx, [0x18039ccd0]
call fcn.18009df20
mov rdx, r14
call fcn.1800a44d0
mov rax, qword [0x18039cc48]
cmp rax, qword [0x18039cc50]
je 0x1800a7f75
mov qword [0x18039cc50], rax
mov r8, rdi
mov rdx, r14
call fcn.1800a5390
mov rax, qword [0x18039cc50]
cmp qword [0x18039cc48], rax
je 0x1800a856b
mov rcx, r14
call fcn.1800e5f20
mov r15, rax
cmp qword [rax + 0x360], rbx
je 0x1800a856b
mov r12, qword [0x18039a468]
test r12, r12
je 0x1800a8011
mov eax, 4
mov edx, dword [rsi + rax]
cmp dword [0x18039f6d8], edx
jle 0x1800a7ffe
lea rcx, [0x18039f6d8]
call fcn.18015d060
cmp dword [0x18039f6d8], 0xffffffff
jne 0x1800a7ffe
movabs rcx, 0x9320aed4f2ddf04b
call fcn.18009d530
lea rcx, [0x18039f6d8]
mov dword [0x18039f6f4], eax
call fcn.18015cff4
mov eax, dword [0x18039f6f4]
cmp dword [rax + r12], ebx
jg 0x1800a8011
mov qword [0x18039a468], rbx
call fcn.1800a74e0
cmp dword [0x18034ceb4], 1
jl 0x1800a856b
movss xmm0, dword [0x18034ce58]
call fcn.1801729b0
test ax, ax
jg 0x1800a856b
movss xmm0, dword [0x18034ce5c]
call fcn.1801729b0
test ax, ax
jg 0x1800a856b
movss xmm0, dword [0x18034ce60]
call fcn.1801729b0
test ax, ax
jg 0x1800a856b
mov rax, qword [0x18034ce30]
lea rdx, [0x18034ce40]
xorps xmm1, xmm1
mov qword [rsp + 0x50], rax
xorps xmm0, xmm0
movaps xmmword [rbp - 0x60], xmm1
lea rcx, [rsp + 0x60]
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x110], xmm6
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x50], rbx
mov dword [rbp - 0x48], ebx
mov dword [rbp - 0x44], 0xffffffff
mov byte [rbp - 0x40], bl
mov qword [rbp - 0x3c], rbx
mov byte [rbp - 0x34], bl
mov dword [rbp - 0x80], ebx
mov dword [rbp - 0x7c], 0xffffffff
mov byte [rbp - 0x78], bl
mov qword [rbp - 0x74], rbx
mov byte [rbp - 0x6c], bl
mov byte [rbp - 0x30], bl
mov qword [rbp - 0x2c], 0xffffffffffffffff
call fcn.1800a11e0
mov eax, dword [rsp + 0x74]
mov r9, r15
movsd xmm0, qword [rsp + 0x6c]
mov rdx, r14
mov r8, qword [rsp + 0x50]
mov rcx, r13
movss xmm6, dword [0x18034cec0]
mov dword [rbp - 8], eax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
movsd qword [rbp - 0x10], xmm0
call fcn.1800a58f0
mov r12, qword [0x18039f668]
mov edx, 4
mov eax, dword [rsi + rdx]
cmp dword [0x18039fbb8], eax
jle 0x1800a8161
lea rcx, [0x18039fbb8]
call fcn.18015d060
cmp dword [0x18039fbb8], 0xffffffff
jne 0x1800a815c
movabs rcx, 0xd8ebe4a818fb8887
call fcn.18009d530
lea rcx, [0x18039fbb8]
mov dword [0x18039fad0], eax
call fcn.18015cff4
mov edx, 4
mov eax, dword [0x18039fad0]
test byte [rax + r12], 1
je 0x1800a8178
cmp byte [r13 + 0x24], bl
jne 0x1800a8178
mov al, 1
jmp 0x1800a817a
xor al, al
cmp byte [0x18039a598], bl
mov byte [0x18039a574], al
je 0x1800a8249
mov eax, dword [rsi + rdx]
cmp dword [0x18039f6d4], eax
jle 0x1800a81d2
lea rcx, [0x18039f6d4]
call fcn.18015d060
cmp dword [0x18039f6d4], 0xffffffff
jne 0x1800a81cd
movabs rcx, 0x60fabb1cd5f10d10
call fcn.18009d530
lea rcx, [0x18039f6d4]
mov dword [0x18039fa8c], eax
call fcn.18015cff4
mov edx, 4
mov eax, dword [0x18039fa8c]
cmp dword [rax + r15], ebx
jne 0x1800a8241
mov eax, dword [rsi + rdx]
cmp dword [0x18039fd68], eax
mov r12, qword [r15 + 0x360]
jle 0x1800a822b
lea rcx, [0x18039fd68]
call fcn.18015d060
cmp dword [0x18039fd68], 0xffffffff
jne 0x1800a8226
movabs rcx, 0xc11b1abece31bb76
call fcn.18009d530
lea rcx, [0x18039fd68]
mov dword [0x18039fcf4], eax
call fcn.18015cff4
mov edx, 4
mov eax, dword [0x18039fcf4]
cmp dword [rax + r12], 5
jne 0x1800a8241
mov byte [0x18039fd00], 1
jmp 0x1800a8251
mov byte [0x18039fd00], bl
jmp 0x1800a826e
cmp byte [0x18039fd00], bl
je 0x1800a826e
cmp byte [0x18039a599], bl
jne 0x1800a826e
mov rax, qword [rdi + 0x40]
mov rcx, qword [rax + 0x38]
or qword [rcx + 0x10], 1
or qword [rdi + 0x60], 0x800
mov eax, dword [rsi + rdx]
cmp dword [0x18039fd04], eax
mov r12, qword [r15 + 0x360]
jle 0x1800a82bb
lea rcx, [0x18039fd04]
call fcn.18015d060
cmp dword [0x18039fd04], 0xffffffff
jne 0x1800a82b6
movabs rcx, 0xc11b1abece31bb76
call fcn.18009d530
lea rcx, [0x18039fd04]
mov dword [0x18039fd14], eax
call fcn.18015cff4
mov edx, 4
mov eax, dword [0x18039fd14]
cmp dword [rax + r12], 8
jne 0x1800a833b
mov eax, dword [rsi + rdx]
cmp dword [0x18039fca8], eax
mov r12, qword [r15 + 0x360]
jle 0x1800a8310
lea rcx, [0x18039fca8]
call fcn.18015d060
cmp dword [0x18039fca8], 0xffffffff
jne 0x1800a8310
movabs rcx, 0x26fef6096322d3f9
call fcn.18009d530
lea rcx, [0x18039fca8]
mov dword [0x18039fcc8], eax
call fcn.18015cff4
mov eax, dword [0x18039fcc8]
movss xmm0, dword [rax + r12]
comiss xmm0, xmm6
jbe 0x1800a833b
cmp dword [0x18039a588], ebx
jle 0x1800a833b
mov rax, qword [rdi + 0x40]
mov rcx, qword [rax + 0x38]
or qword [rcx + 0x10], 1
or qword [rdi + 0x60], 1
mov rcx, qword [0x18039ab90]
mov r9, rdi
mov r8, r15
mov rdx, r14
call fcn.1800a63c0
movaps xmm6, xmmword [rsp + 0x110]
mov edx, 4
mov eax, dword [rsi + rdx]
cmp dword [0x18039fd0c], eax
jle 0x1800a83a3
lea rcx, [0x18039fd0c]
call fcn.18015d060
cmp dword [0x18039fd0c], 0xffffffff
jne 0x1800a839e
movabs rcx, 0x85faf031aa780d08
call fcn.18009d530
lea rcx, [0x18039fd0c]
mov dword [0x18039fd64], eax
call fcn.18015cff4
mov edx, 4
mov eax, dword [0x18039fd64]
movups xmm1, xmmword [rax + r14]
movd eax, xmm1
dec eax
cmp eax, 0xfffe
ja 0x1800a83f4
cdqe
psrldq xmm1, 8
lea rcx, [rax + rax*2]
movq rax, xmm1
movss xmm0, dword [rax + rcx*4]
movss xmm1, dword [rax + rcx*4 + 4]
movss xmm2, dword [rax + rcx*4 + 8]
movss dword [0x18039fd20], xmm0
movss dword [0x18039fd24], xmm1
movss dword [0x18039fd28], xmm2
mov eax, dword [rsi + rdx]
cmp dword [0x18039fd3c], eax
jle 0x1800a8435
lea rcx, [0x18039fd3c]
call fcn.18015d060
cmp dword [0x18039fd3c], 0xffffffff
jne 0x1800a8435
movabs rcx, 0x3f30a5a2620fc286
call fcn.18009d530
lea rcx, [0x18039fd3c]
mov dword [0x18039fcf0], eax
call fcn.18015cff4
cmp byte [0x18039a5a1], bl
movss xmm2, dword [0x18034ce58]
movss xmm0, dword [0x18034ce5c]
movss xmm1, dword [0x18034ce60]
movss dword [rsp + 0x38], xmm2
movss dword [rsp + 0x3c], xmm0
movss dword [rsp + 0x40], xmm1
je 0x1800a84c8
mov rcx, qword [rdi + 0x38]
mov eax, dword [rcx]
test eax, eax
jle 0x1800a84df
mov rdx, rbx
cmp ebx, eax
jge 0x1800a84b6
cmp ebx, dword [rdi + 0x30]
jge 0x1800a84b6
mov rax, qword [rcx + rdx + 8]
test rax, rax
je 0x1800a84b6
mov rcx, qword [rax + 0x18]
test rcx, rcx
je 0x1800a84b6
movss dword [rcx + 0x18], xmm2
movss xmm0, dword [rsp + 0x3c]
movss dword [rcx + 0x1c], xmm0
movss xmm1, dword [rsp + 0x40]
movss dword [rcx + 0x20], xmm1
or qword [rax + 0x10], 1
movss xmm2, dword [rsp + 0x38]
mov rcx, qword [rdi + 0x38]
inc ebx
add rdx, 8
mov eax, dword [rcx]
cmp ebx, eax
jl 0x1800a8478
jmp 0x1800a84df
mov rax, qword [rdi + 0x40]
lea rdx, [rsp + 0x38]
mov rcx, qword [rax + 0x38]
or qword [rcx + 0x10], 4
call fcn.180079c50
mov rax, qword [0x18039f630]
mov rcx, r14
movd xmm1, dword [rax + 0x48]
cvtdq2ps xmm1, xmm1
call fcn.1800e6fc0
test al, al
je 0x1800a855d
cmp byte [r13 + 0x24], 0
je 0x1800a855d
cmp byte [0x18039a5a8], 0
je 0x1800a855d
mov rax, qword [rdi + 0x40]
mov rcx, qword [rax + 0x38]
or qword [rcx + 0x10], 1
or qword [rdi + 0x60], 1
mov eax, dword [0x18039aa9c]
test eax, eax
jne 0x1800a8534
mov ecx, dword [0x18039aa98]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
jmp 0x1800a8545
cmp eax, 1
jne 0x1800a8551
mov ecx, dword [0x18039aa98]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
setne al
test al, al
je 0x1800a855d
jmp 0x1800a8556
cmp eax, 2
jne 0x1800a855d
mov byte [0x18039cc79], 1
mov rax, qword [0x18034ce30]
mov qword [0x18039a468], rax
mov r12, qword [rsp + 0x158]
mov rsi, qword [rsp + 0x150]
mov r15, qword [rsp + 0x160]
add rsp, 0x120
pop r14
pop r13
pop rdi
pop rbx
pop rbp
ret
xor ebx, ebx
mov qword [0x18039a468], rbx
jmp 0x1800a8573