Function at 0x1800035c0
Capabilities:
Allocate or change rwx memory
Log keystrokes via polling

Disassembly:
sub rsp, 0x88
mov rax, qword [0x1800a1080]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov ecx, send
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18000360f
mov ecx, 0x24
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18000360f
cmp byte [0x1800a3d36], 0
mov ecx, 0x64
sete byte [0x1800a3d36]
call qword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, send
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180003632
mov ecx, 0x23
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
jne 0x180004093
cmp byte [0x1800a3d36], 0
je 0x18000407e
xor r8d, r8d
movaps xmmword [rsp + 0x70], xmm7
xor edx, edx
lea rcx, str.Ver_0.0.1___ALT__Home_______ALT__End_
call fcn.18001c0f0
movss xmm7, dword [0x180091804]
movss xmm0, dword [0x1800917a8]
movaps xmm1, xmm7
call fcn.18001f1b0
mov r8, qword [0x1800a3fc8]
mov rax, qword [r8 + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003696
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c5e0]
call fcn.18004b740
test al, al
je 0x180003966
lea rdx, [0x1800a3d2a]
lea rcx, [0x18008c5f0]
call fcn.18003e0d0
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [0x1800a3d28]
lea rcx, [0x18008c600]
call fcn.18003e0d0
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [0x1800a3d34]
lea rcx, [0x18008c610]
call fcn.18003e0d0
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [0x1800a3cf4]
lea rcx, [0x18008c620]
call fcn.18003e0d0
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003740
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rdx, [0x1800a3cf5]
lea rcx, [0x18008c630]
call fcn.18003e0d0
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [0x1800a3d35]
lea rcx, [0x18008c640]
call fcn.18003e0d0
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [0x1800a3cf7]
lea rcx, [0x18008c650]
call fcn.18003e0d0
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [0x1800a3d29]
lea rcx, [0x18008c660]
call fcn.18003e0d0
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
mov r8, qword [0x1800a3fc8]
mov rax, qword [r8 + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x1800037e1
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c670]
call fcn.18003c820
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [0x1800a1d38]
xor r8d, r8d
lea rcx, [0x18008c680]
call fcn.180046450
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003837
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c690]
call fcn.18003c820
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [0x1800a1d58]
xor r8d, r8d
lea rcx, [0x18008c6a0]
call fcn.180046450
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x18000388d
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c6b0]
call fcn.18003c820
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [0x1800a1d08]
xor r8d, r8d
lea rcx, [0x18008c6c0]
call fcn.180046450
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x1800038e3
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c6d0]
call fcn.18003c820
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [0x1800a1cf8]
xor r8d, r8d
lea rcx, [0x18008c6e0]
call fcn.180046450
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003939
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c6f0]
call fcn.18003c820
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [0x1800a1d48]
xor r8d, r8d
lea rcx, [0x18008c700]
call fcn.180046450
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x18000398f
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c710]
call fcn.18004b740
test al, al
je 0x180003b1a
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x80], rdi
lea rcx, [0x18008c720]
mov qword [rsp + 0x60], 0
call fcn.18003d200
test al, al
je 0x1800039dd
cmp byte [0x1800a3d37], 0
sete r8b
mov byte [0x1800a3d37], r8b
jmp 0x1800039e5
movzx r8d, byte [0x1800a3d37]
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
test r8b, r8b
lea rcx, [0x18008c730]
lea rdi, [0x18008c740]
cmove rcx, rdi
call fcn.18003c820
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x60], 0
lea rcx, [0x18008c750]
call fcn.18003d200
test al, al
je 0x180003aef
cmp byte [0x1800a3d64], 0
mov edx, 0x400
mov qword [rsp + 0x90], rbx
mov rbx, qword [0x1800a3de8]
sete byte [0x1800a3d64]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_IsBadReadPtr]
test eax, eax
jne 0x180003a7d
lea r9, [rsp + 0x60]
mov edx, 0x400
lea r8d, [rax + 0x40]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp byte [0x1800a3d64], 1
mov ecx, 2
mov rbx, qword [rsp + 0x90]
jne 0x180003ab7
mov word [rsp + 0x58], 0x850f
call fcn.18004f5e8
movzx ecx, word [rsp + 0x58]
lea rdx, [rax + 2]
mov word [rax], cx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], rdx
jmp 0x180003ad9
mov word [rsp + 0x58], 0x840f
call fcn.18004f5e8
movzx edx, word [rsp + 0x58]
lea r8, [rax + 2]
mov word [rax], dx
mov qword [rsp + 0x50], r8
mov qword [rsp + 0x48], r8
mov rcx, qword [0x1800a3de8]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x40], rax
call fcn.18004e3b0
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp byte [0x1800a3d64], 0
lea rcx, [0x18008c730]
jne 0x180003b0d
mov rcx, rdi
call fcn.18003c820
mov rdi, qword [rsp + 0x80]
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003b43
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c760]
call fcn.18004b740
test al, al
je 0x180003f10
lea rdx, [0x1800a3cf3]
lea rcx, [0x18008c770]
call fcn.18003e0d0
movss xmm0, dword [0x180091788]
movaps xmm1, xmm7
call fcn.18001f1b0
lea rdx, [0x1800a3cf1]
lea rcx, [0x18008c780]
call fcn.18003e0d0
lea rdx, [0x1800a3cf6]
lea rcx, [0x18008c790]
call fcn.18003e0d0
movss xmm0, dword [0x180091788]
movaps xmm1, xmm7
call fcn.18001f1b0
lea rdx, [0x1800a3cf0]
lea rcx, [0x18008c7a0]
call fcn.18003e0d0
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003bec
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
cmp byte [0x1800a3cf3], 0
je 0x180003cbb
lea rcx, [0x18008c7b0]
call fcn.18003c820
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d2c], 0x14
lea rcx, [0x18008c7b8]
sete dl
call fcn.18003e730
test al, al
je 0x180003c34
mov dword [0x1800a3d2c], 0x14
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d2c], 0xa
lea rcx, [0x18008c7c0]
sete dl
call fcn.18003e730
test al, al
je 0x180003c63
mov dword [0x1800a3d2c], 0xa
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d2c], 6
lea rcx, [0x18008c7c8]
sete dl
call fcn.18003e730
test al, al
je 0x180003c92
mov dword [0x1800a3d2c], 6
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003cbb
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c7d0]
call fcn.18003c820
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d30], 6
lea rcx, [0x18008c7d8]
sete dl
call fcn.18003e730
test al, al
je 0x180003cf6
mov dword [0x1800a3d30], 6
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d30], 4
lea rcx, [0x18008c7e0]
sete dl
call fcn.18003e730
test al, al
je 0x180003d25
mov dword [0x1800a3d30], 4
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d30], 3
lea rcx, [0x18008c7e8]
sete dl
call fcn.18003e730
test al, al
je 0x180003d54
mov dword [0x1800a3d30], 3
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003d7d
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c7f0]
call fcn.18003c820
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d74], 0x28
lea rcx, [0x18008c7f8]
sete dl
call fcn.18003e730
test al, al
je 0x180003db8
mov dword [0x1800a3d74], 0x28
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d74], 0x5a
lea rcx, [0x18008c800]
sete dl
call fcn.18003e730
test al, al
je 0x180003de7
mov dword [0x1800a3d74], 0x5a
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d74], 0x12c
lea rcx, [0x18008c808]
sete dl
call fcn.18003e730
test al, al
je 0x180003e19
mov dword [0x1800a3d74], 0x12c
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003e42
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c810]
call fcn.18003c820
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d50], 1
lea rcx, [0x18008c818]
sete dl
call fcn.18003e730
test al, al
je 0x180003e7d
mov dword [0x1800a3d50], 1
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d50], 2
lea rcx, [0x18008c820]
sete dl
call fcn.18003e730
test al, al
je 0x180003eac
mov dword [0x1800a3d50], 2
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d50], 0x11
lea rcx, str.Ctrl
sete dl
call fcn.18003e730
test al, al
je 0x180003edb
mov dword [0x1800a3d50], 0x11
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003f04
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, str._ALT__
call fcn.18003c820
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003f39
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c858]
call fcn.18004b740
test al, al
je 0x18000406f
lea rdx, [0x1800a3cf2]
lea rcx, [0x18008c868]
call fcn.18003e0d0
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x180003f89
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rcx, [0x18008c7d0]
call fcn.18003c820
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d70], 1
lea rcx, [0x18008c878]
sete dl
call fcn.18003e730
test al, al
je 0x180003fc4
mov dword [0x1800a3d70], 1
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d70], 2
lea rcx, [0x18008c880]
sete dl
call fcn.18003e730
test al, al
je 0x180003ff3
mov dword [0x1800a3d70], 2
movaps xmm1, xmm7
xorps xmm0, xmm0
call fcn.18001f1b0
cmp dword [0x1800a3d70], 3
lea rcx, [0x18008c888]
sete dl
call fcn.18003e730
test al, al
je 0x180004022
mov dword [0x1800a3d70], 3
mov rax, qword [0x1800a3fc8]
mov rax, qword [rax + 0x1c10]
cmp byte [rax + 0x93], 0
jne 0x18000404b
mov eax, dword [rax + 0x184]
neg eax
sbb ecx, ecx
add ecx, 6
call fcn.18003f010
lea rax, [rsp + 0x58]
mov dword [rsp + 0x58], 0x42f00000
lea r9, [rsp + 0x60]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x60], 0x41f00000
call fcn.180040560
call fcn.18002ef40
call fcn.18001e3f0
movaps xmm7, xmmword [rsp + 0x70]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.18004f5c0
add rsp, 0x88
ret
xor ecx, ecx
call fcn.180056620
int3