Function at 0x403181
Capabilities:
Check for time delay via gettickcount
Create process on windows
Enumerate gui resources
Log keystrokes via polling

Disassembly:
push rbp
push rbx
sub rsp, 0x248
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x1e0], rcx
lea rax, [rbp + 0xf3]
mov rcx, rax
call fcn.00407aa8
lea rdx, [rbp + 0xf3]
lea rax, [rbp + 0xd0]
mov r8, rdx
lea rdx, str.https:__mnca_company.com_
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xf3]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0xf4]
mov rcx, rax
call fcn.00407aa8
lea rdx, [rbp + 0xf4]
lea rax, [rbp + 0xb0]
mov r8, rdx
lea rdx, str._html_body_footer_div_div_div_2__div_2__div_4__div_ul_li_a
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xf4]
mov rcx, rax
call sym.std::allocator_char_::allocator__
mov rax, qword [sym.imp.libcurl.dll_curl_easy_init]
call rax
mov qword [rbp + 0x198], rax
cmp qword [rbp + 0x198], 0
jne 0x403291
lea rdx, str.Failed_to_initialize_CURL
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
lea rax, [rbp + 0xf5]
mov rcx, rax
call fcn.00407aa8
lea rax, [rbp + 0xf5]
mov r8, rax
lea rdx, str.Failed_to_initialize_CURL
mov rcx, qword [rbp + 0x1e0]
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xf5]
mov rcx, rax
call sym.std::allocator_char_::allocator__
jmp 0x4043b8
lea rax, [rbp + 0x90]
mov rcx, rax
call fcn.004079f0
lea rax, [rbp + 0xd0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov rdx, rax
mov rax, qword [rbp + 0x198]
mov r8, rdx
mov edx, 0x2712
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_setopt]
call rax
mov rax, qword [rbp + 0x198]
lea r8, [sym.WriteCallback_void__unsigned_long_long__unsigned_long_long__void_]
mov edx, 0x4e2b
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_setopt]
call rax
lea rdx, [rbp + 0x90]
mov rax, qword [rbp + 0x198]
mov r8, rdx
mov edx, 0x2711
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_setopt]
call rax
mov rax, qword [rbp + 0x198]
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_perform]
call rax
mov dword [rbp + 0x194], eax
cmp dword [rbp + 0x194], 0
je 0x4033a5
lea rdx, str.Failed_to_connect_to_the_website
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x198]
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_cleanup]
call rax
lea rax, [rbp + 0xf6]
mov rcx, rax
call fcn.00407aa8
lea rax, [rbp + 0xf6]
mov r8, rax
lea rdx, str.Failed_to_connect_to_the_website
mov rcx, qword [rbp + 0x1e0]
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xf6]
mov rcx, rax
call sym.std::allocator_char_::allocator__
jmp 0x4043a9
lea rax, [rbp + 0x90]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov r9d, 0x860
mov r8d, 0
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.libxml2.dll_htmlReadDoc]
call rax
mov qword [rbp + 0x188], rax
cmp qword [rbp + 0x188], 0
jne 0x403457
lea rdx, str.Error_parsing_the_document
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x198]
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_cleanup]
call rax
lea rax, [rbp + 0xf7]
mov rcx, rax
call fcn.00407aa8
lea rax, [rbp + 0xf7]
mov r8, rax
lea rdx, str.Error_parsing_the_document
mov rcx, qword [rbp + 0x1e0]
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xf7]
mov rcx, rax
call sym.std::allocator_char_::allocator__
jmp 0x4043a9
mov rax, qword [rbp + 0x188]
mov rcx, rax
mov rax, qword [sym.imp.libxml2.dll_xmlXPathNewContext]
call rax
mov qword [rbp + 0x180], rax
cmp qword [rbp + 0x180], 0
jne 0x403507
lea rdx, str.Error_creating_XPath_context
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x188]
mov rcx, rax
mov rax, qword [sym.imp.libxml2.dll_xmlFreeDoc]
call rax
mov rax, qword [rbp + 0x198]
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_cleanup]
call rax
lea rax, [rbp + 0xf8]
mov rcx, rax
call fcn.00407aa8
lea rax, [rbp + 0xf8]
mov r8, rax
lea rdx, str.Error_creating_XPath_context
mov rcx, qword [rbp + 0x1e0]
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xf8]
mov rcx, rax
call sym.std::allocator_char_::allocator__
jmp 0x4043a9
lea rax, [rbp + 0xb0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov rcx, rax
mov rax, qword [rbp + 0x180]
mov rdx, rax
mov rax, qword [sym.imp.libxml2.dll_xmlXPathEvalExpression]
call rax
mov qword [rbp + 0x178], rax
cmp qword [rbp + 0x178], 0
jne 0x4035dc
lea rdx, str.Error_evaluating_xpath_expression
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x180]
mov rcx, rax
mov rax, qword [sym.imp.libxml2.dll_xmlXPathFreeContext]
call rax
mov rax, qword [rbp + 0x188]
mov rcx, rax
mov rax, qword [sym.imp.libxml2.dll_xmlFreeDoc]
call rax
mov rax, qword [rbp + 0x198]
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_cleanup]
call rax
lea rax, [rbp + 0xf9]
mov rcx, rax
call fcn.00407aa8
lea rax, [rbp + 0xf9]
mov r8, rax
lea rdx, str.Error_evaluating_xpath_expression
mov rcx, qword [rbp + 0x1e0]
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xf9]
mov rcx, rax
call sym.std::allocator_char_::allocator__
jmp 0x4043a9
lea rax, [rbp + 0x70]
mov rcx, rax
call fcn.0040a810
mov rax, qword [rbp + 0x178]
mov rax, qword [rax + 8]
mov eax, dword [rax]
test eax, eax
jle 0x4036ec
mov dword [rbp + 0x1bc], 0
mov rax, qword [rbp + 0x178]
mov rax, qword [rax + 8]
mov eax, dword [rax]
cmp dword [rbp + 0x1bc], eax
jge 0x40370e
mov rax, qword [rbp + 0x178]
mov rax, qword [rax + 8]
mov rdx, qword [rax + 8]
mov eax, dword [rbp + 0x1bc]
cdqe
shl rax, 3
add rax, rdx
mov rax, qword [rax]
mov qword [rbp + 0x170], rax
mov rax, qword [rbp + 0x170]
lea rdx, str.href
mov rcx, rax
mov rax, qword [sym.imp.libxml2.dll_xmlGetProp]
call rax
mov qword [rbp + 0x168], rax
cmp qword [rbp + 0x168], 0
je 0x4036e0
lea rax, [rbp + 0xfa]
mov rcx, rax
call fcn.00407aa8
lea rcx, [rbp + 0xfa]
mov rdx, qword [rbp + 0x168]
lea rax, [rbp - 0x10]
mov r8, rcx
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xfa]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rdx, [rbp - 0x10]
lea rax, [rbp + 0x70]
mov rcx, rax
call method.std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______.push_back_std::__cxx11::basic_string_char__std::char_tra
mov rax, qword [sym.imp.libxml2.dll_xmlFree]
mov rax, qword [rax]
mov rdx, qword [rbp + 0x168]
mov rcx, rdx
call rax
lea rax, [rbp - 0x10]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
add dword [rbp + 0x1bc], 1
jmp 0x403607
lea rdx, str.No_links_found_under_the_specified_xpath.
mov rcx, qword [sym.imp.libstdc_6.dll_std::cout]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x178]
mov rcx, rax
mov rax, qword [sym.imp.libxml2.dll_xmlXPathFreeObject]
call rax
mov rax, qword [rbp + 0x180]
mov rcx, rax
mov rax, qword [sym.imp.libxml2.dll_xmlXPathFreeContext]
call rax
mov rax, qword [rbp + 0x188]
mov rcx, rax
mov rax, qword [sym.imp.libxml2.dll_xmlFreeDoc]
call rax
mov rax, qword [rbp + 0x198]
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_cleanup]
call rax
mov qword [rbp + 0x68], 0
mov rax, qword [rbp + 0x68]
test rax, rax
jne 0x40378f
lea rbx, [rbp + 0x68]
lea rax, [rbp + 0xfb]
mov rcx, rax
call sym.DSA_abi:cxx11___::lambda_HWND____long_long_1::operator_int____HWND____long_long____const
mov rdx, rbx
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_EnumWindows]
call rax
jmp 0x403762
lea rax, [rbp + 0x70]
mov rcx, rax
call method.std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______.empty___const
xor eax, 1
test al, al
je 0x404297
lea rax, [rbp + 0x70]
mov qword [rbp + 0x160], rax
mov rax, qword [rbp + 0x160]
mov rcx, rax
call method.std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______.begin__
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0x160]
mov rcx, rax
call method.std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______.end__
mov qword [rbp + 0x58], rax
lea rdx, [rbp + 0x58]
lea rax, [rbp + 0x60]
mov rcx, rax
call sym._ZN9__gnu_cxxneIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorIS6_SaIS6_EEEEbRKNS_17__normal_iteratorIT_T0_EES
test al, al
je 0x404148
lea rax, [rbp + 0x60]
mov rcx, rax
call sym.__gnu_cxx::__normal_iterator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_________::operator___const
mov qword [rbp + 0x158], rax
lea rdx, str.Opening_link:
mov rcx, qword [sym.imp.libstdc_6.dll_std::cout]
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_const_
mov rcx, rax
mov rax, qword [rbp + 0x158]
mov rdx, rax
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____char__std::char_traits_char___std::allocator_char____std::basic_ostream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x158]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], 0
mov r9, rax
lea r8, str.firefox.exe
lea rdx, str.open
mov ecx, 0
mov rax, qword [sym.imp.SHELL32.dll_ShellExecuteA]
call rax
mov ecx, 0x7d0
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov ecx, 1
mov rax, qword [sym.imp.USER32.dll_GetSystemMetrics]
call rax
mov dword [rbp + 0x154], eax
mov rax, qword [sym.imp.KERNEL32.dll_GetTickCount]
call rax
mov dword [rbp + 0x150], eax
call sym.generateScrollDuration3__
imul eax, eax, 0x3e8
mov dword [rbp + 0x14c], eax
mov byte [rbp + 0x1bb], 1
lea rdx, str.Scrolling_for_10_seconds...
mov rcx, qword [sym.imp.libstdc_6.dll_std::cout]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
call sym.rand
mov ecx, eax
mov edx, dword [rbp + 0x154]
mov eax, edx
add eax, eax
add eax, edx
lea edx, [rax + 3]
test eax, eax
cmovs eax, edx
sar eax, 2
mov r8d, eax
mov eax, ecx
cdq
idiv r8d
mov ecx, edx
mov eax, dword [rbp + 0x154]
lea edx, [rax + 3]
test eax, eax
cmovs eax, edx
sar eax, 2
add eax, ecx
mov dword [rbp + 0x148], eax
mov dword [rbp + 0x1b4], 0
mov eax, dword [rbp + 0x1b4]
cmp eax, dword [rbp + 0x148]
jge 0x40398f
mov r9d, 0
mov r8d, 0
mov edx, 0
mov ecx, 0x28
mov rax, qword [sym.imp.USER32.dll_keybd_event]
call rax
mov r9d, 0
mov r8d, 2
mov edx, 0
mov ecx, 0x28
mov rax, qword [sym.imp.USER32.dll_keybd_event]
call rax
mov ecx, 0xa
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
add dword [rbp + 0x1b4], 1
jmp 0x40392c
mov rax, qword [sym.imp.KERNEL32.dll_GetTickCount]
call rax
mov dword [rbp + 0x150], eax
call sym.generateScrollDuration4__
imul eax, eax, 0x3e8
mov dword [rbp + 0x14c], eax
mov byte [rbp + 0x1bb], 1
lea rdx, str.Scrolling...
mov rcx, qword [sym.imp.libstdc_6.dll_std::cout]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [sym.imp.KERNEL32.dll_GetTickCount]
call rax
mov edx, eax
mov eax, dword [rbp + 0x150]
sub edx, eax
mov eax, dword [rbp + 0x14c]
cmp edx, eax
setb al
test al, al
je 0x403ae0
mov rax, qword [sym.imp.KERNEL32.dll_GetTickCount]
call rax
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
mul edx
mov eax, edx
shr eax, 6
imul eax, eax, 0x3e8
sub ecx, eax
mov eax, ecx
test eax, eax
sete al
test al, al
je 0x403a31
xor byte [rbp + 0x1bb], 1
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x154]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov r8d, eax
mov eax, ecx
cdq
idiv r8d
mov ecx, edx
mov eax, dword [rbp + 0x154]
lea edx, [rax + 3]
test eax, eax
cmovs eax, edx
sar eax, 2
add eax, ecx
mov dword [rbp + 0x144], eax
cmp byte [rbp + 0x1bb], 0
je 0x403a7b
mov eax, 0x26
jmp 0x403a80
mov eax, 0x28
mov r9d, 0
mov r8d, 0
mov edx, 0
mov ecx, eax
mov rax, qword [sym.imp.USER32.dll_keybd_event]
call rax
cmp byte [rbp + 0x1bb], 0
je 0x403aac
mov eax, 0x26
jmp 0x403ab1
mov eax, 0x28
mov r9d, 0
mov r8d, 2
mov edx, 0
mov ecx, eax
mov rax, qword [sym.imp.USER32.dll_keybd_event]
call rax
mov ecx, 0xa
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x4039d8
lea rdx, str.Scrolling_completed.
mov rcx, qword [sym.imp.libstdc_6.dll_std::cout]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [sym.imp.libcurl.dll_curl_easy_init]
call rax
mov qword [rbp + 0x138], rax
cmp qword [rbp + 0x138], 0
je 0x4040d5
lea rax, [rbp - 0x50]
mov rcx, rax
call fcn.004079f0
mov rax, qword [rbp + 0x158]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov rdx, rax
mov rax, qword [rbp + 0x138]
mov r8, rdx
mov edx, 0x2712
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_setopt]
call rax
mov rax, qword [rbp + 0x138]
lea r8, [sym.WriteCallback_void__unsigned_long_long__unsigned_long_long__void_]
mov edx, 0x4e2b
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_setopt]
call rax
lea rdx, [rbp - 0x50]
mov rax, qword [rbp + 0x138]
mov r8, rdx
mov edx, 0x2711
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_setopt]
call rax
mov rax, qword [rbp + 0x138]
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_perform]
call rax
mov dword [rbp + 0x194], eax
cmp dword [rbp + 0x194], 0
je 0x403c33
lea rdx, str.Failed_to_connect_to_the_website
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x138]
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_cleanup]
call rax
lea rax, [rbp + 0xfc]
mov rcx, rax
call fcn.00407aa8
lea rax, [rbp + 0xfc]
mov r8, rax
lea rdx, str.Failed_to_connect_to_the_website
mov rcx, qword [rbp + 0x1e0]
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xfc]
mov rcx, rax
call sym.std::allocator_char_::allocator__
mov ebx, 0
jmp 0x4040be
lea rax, [rbp + 0x40]
mov rcx, qword [rbp + 0x158]
lea rdx, [rbp - 0x50]
mov r8, rcx
mov rcx, rax
call sym.extractLinks_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov rax, qword [rbp + 0x138]
mov rcx, rax
mov rax, qword [sym.imp.libcurl.dll_curl_easy_cleanup]
call rax
lea rax, [rbp + 0x40]
mov rcx, rax
call method.std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______.empty___const
xor eax, 1
test al, al
je 0x40408b
mov ecx, 0
call sym.time
mov ecx, eax
call sym.srand
call sym.rand
movsxd rbx, eax
lea rax, [rbp + 0x40]
mov rcx, rax
call method.std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______.size___const
mov rcx, rax
mov rax, rbx
mov edx, 0
div rcx
mov rax, rdx
mov dword [rbp + 0x134], eax
mov eax, dword [rbp + 0x134]
movsxd rdx, eax
lea rax, [rbp + 0x40]
mov rcx, rax
call method.std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______.operator___unsigned_long_long_
mov rdx, rax
lea rax, [rbp - 0x30]
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_
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0
mov qword [rbp], 0
mov qword [rbp + 8], 0
mov qword [rbp + 0x10], 0
mov dword [rbp - 0x10], 1
lea rax, [rbp - 0x10]
mov r8d, 0
mov edx, 0x11
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
lea rax, [rbp - 0x10]
mov r8d, 0
mov edx, 0x4c
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
lea rax, [rbp - 0x10]
mov r8d, 1
mov edx, 0x4c
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
lea rax, [rbp - 0x10]
mov r8d, 1
mov edx, 0x11
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
mov ecx, 0x64
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
lea rax, [rbp - 0x10]
mov r8d, 0
mov edx, 0x11
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
lea rax, [rbp - 0x10]
mov r8d, 0
mov edx, 0x41
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
lea rax, [rbp - 0x10]
mov r8d, 1
mov edx, 0x41
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
lea rax, [rbp - 0x10]
mov r8d, 1
mov edx, 0x11
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
lea rax, [rbp - 0x10]
mov r8d, 0
mov edx, 0x2e
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
lea rax, [rbp - 0x30]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::c_str___const
mov qword [rbp + 0x1a8], rax
mov rax, qword [rbp + 0x1a8]
movzx eax, byte [rax]
test al, al
je 0x403e6b
mov rax, qword [rbp + 0x1a8]
movzx eax, byte [rax]
movsx eax, al
mov ecx, eax
mov rax, qword [sym.imp.USER32.dll_VkKeyScanA]
call rax
mov word [rbp + 0x132], ax
movzx eax, word [rbp + 0x132]
movzx eax, ax
movzx edx, al
lea rax, [rbp - 0x10]
mov r8d, 0
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
movzx eax, word [rbp + 0x132]
movzx eax, ax
movzx edx, al
lea rax, [rbp - 0x10]
mov r8d, 1
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
add qword [rbp + 0x1a8], 1
jmp 0x403df6
lea rax, [rbp - 0x10]
mov r8d, 0
mov edx, 0xd
mov rcx, rax
call sym.sendKeys_tagINPUT__unsigned_short__bool_
mov ecx, 0x1388
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov ecx, 1
mov rax, qword [sym.imp.USER32.dll_GetSystemMetrics]
call rax
mov dword [rbp + 0x12c], eax
call sym.rand
mov ecx, eax
mov edx, dword [rbp + 0x12c]
mov eax, edx
add eax, eax
add eax, edx
lea edx, [rax + 3]
test eax, eax
cmovs eax, edx
sar eax, 2
mov r8d, eax
mov eax, ecx
cdq
idiv r8d
mov ecx, edx
mov eax, dword [rbp + 0x12c]
lea edx, [rax + 3]
test eax, eax
cmovs eax, edx
sar eax, 2
add eax, ecx
mov dword [rbp + 0x128], eax
mov dword [rbp + 0x1a4], 0
mov eax, dword [rbp + 0x1a4]
cmp eax, dword [rbp + 0x128]
jge 0x403f53
mov r9d, 0
mov r8d, 0
mov edx, 0
mov ecx, 0x28
mov rax, qword [sym.imp.USER32.dll_keybd_event]
call rax
mov r9d, 0
mov r8d, 2
mov edx, 0
mov ecx, 0x28
mov rax, qword [sym.imp.USER32.dll_keybd_event]
call rax
mov ecx, 0xa
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
add dword [rbp + 0x1a4], 1
jmp 0x403ef0
lea rdx, str.Scrolling...
mov rcx, qword [sym.imp.libstdc_6.dll_std::cout]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [sym.imp.KERNEL32.dll_GetTickCount]
call rax
mov edx, eax
mov eax, dword [rbp + 0x150]
sub edx, eax
mov eax, dword [rbp + 0x14c]
cmp edx, eax
setb al
test al, al
je 0x40407d
mov rax, qword [sym.imp.KERNEL32.dll_GetTickCount]
call rax
mov ecx, eax
mov edx, 0x10624dd3
mov eax, ecx
mul edx
mov eax, edx
shr eax, 6
imul eax, eax, 0x3e8
sub ecx, eax
mov eax, ecx
test eax, eax
sete al
test al, al
je 0x403fce
xor byte [rbp + 0x1bb], 1
call sym.rand
mov ecx, eax
mov eax, dword [rbp + 0x12c]
mov edx, eax
shr edx, 0x1f
add eax, edx
sar eax, 1
mov r8d, eax
mov eax, ecx
cdq
idiv r8d
mov ecx, edx
mov eax, dword [rbp + 0x12c]
lea edx, [rax + 3]
test eax, eax
cmovs eax, edx
sar eax, 2
add eax, ecx
mov dword [rbp + 0x124], eax
cmp byte [rbp + 0x1bb], 0
je 0x404018
mov eax, 0x26
jmp 0x40401d
mov eax, 0x28
mov r9d, 0
mov r8d, 0
mov edx, 0
mov ecx, eax
mov rax, qword [sym.imp.USER32.dll_keybd_event]
call rax
cmp byte [rbp + 0x1bb], 0
je 0x404049
mov eax, 0x26
jmp 0x40404e
mov eax, 0x28
mov r9d, 0
mov r8d, 2
mov edx, 0
mov ecx, eax
mov rax, qword [sym.imp.USER32.dll_keybd_event]
call rax
mov ecx, 0xa
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x403f75
lea rax, [rbp - 0x30]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x4040ad
lea rdx, str.No_links_found_on_the_current_page.
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
lea rax, [rbp + 0x40]
mov rcx, rax
call method.std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______.vector__
mov ebx, 1
lea rax, [rbp - 0x50]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
cmp ebx, 1
jne 0x40439d
jmp 0x404137
lea rdx, str.Failed_to_initialize_CURL_for_extracting_links.
mov rcx, qword [sym.imp.libstdc_6.dll_std::cerr]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
lea rax, [rbp + 0xfd]
mov rcx, rax
call fcn.00407aa8
lea rax, [rbp + 0xfd]
mov r8, rax
lea rdx, str.Failed_to_initialize_CURL_for_extracting_links
mov rcx, qword [rbp + 0x1e0]
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xfd]
mov rcx, rax
call sym.std::allocator_char_::allocator__
jmp 0x40439d
lea rax, [rbp + 0x60]
mov rcx, rax
call sym.__gnu_cxx::__normal_iterator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_________::operator__
jmp 0x4037d7
lea rdx, str.All_links_processed._Closing_Firefox...
mov rcx, qword [sym.imp.libstdc_6.dll_std::cout]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
lea rax, [0x00413040]
mov qword [rbp + 0x118], rax
mov rax, qword [rbp + 0x118]
mov rcx, rax
call method.std::vector_HWND____std::allocator_HWND_____.begin__
mov qword [rbp + 0x38], rax
mov rax, qword [rbp + 0x118]
mov rcx, rax
call method.std::vector_HWND____std::allocator_HWND_____.end__
mov qword [rbp + 0x30], rax
lea rdx, [rbp + 0x30]
lea rax, [rbp + 0x38]
mov rcx, rax
call method.bool___gnu_cxx::operator__HWND____std::vector_HWND____std.allocator_HWND__________gnu_cxx::__normal_iterator_HWND____std::vector_HWND____std::allocator_HWND________const____gnu_cxx::__normal_iterator_HWND____std::vector_HWND____std::al
test al, al
je 0x404229
lea rax, [rbp + 0x38]
mov rcx, rax
call method.__gnu_cxx::__normal_iterator_HWND____std::vector_HWND____std::allocator_HWND_______.operator___const
mov rax, qword [rax]
mov qword [rbp + 0x110], rax
mov rax, qword [rbp + 0x110]
mov r9d, 0
mov r8d, 0
mov edx, 0x10
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_SendMessageA]
call rax
mov rax, qword [rbp + 0x110]
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_IsWindow]
call rax
test eax, eax
setne al
test al, al
je 0x404218
mov ecx, 0x64
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x4041ec
lea rax, [rbp + 0x38]
mov rcx, rax
call method.__gnu_cxx::__normal_iterator_HWND____std::vector_HWND____std::allocator_HWND_______.operator__
jmp 0x40419e
lea rcx, [0x00413040]
call method.std::vector_HWND____std::allocator_HWND_____.clear__
lea rdx, str.Firefox_closed.
mov rcx, qword [sym.imp.libstdc_6.dll_std::cout]
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_const_
mov rdx, qword [0x00410890]
mov rcx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
lea rax, [rbp + 0xfe]
mov rcx, rax
call fcn.00407aa8
lea rax, [rbp + 0xfe]
mov r8, rax
lea rdx, str.Success
mov rcx, qword [rbp + 0x1e0]
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xfe]
mov rcx, rax
call sym.std::allocator_char_::allocator__
jmp 0x40439d
lea rax, [0x00413040]
mov qword [rbp + 0x108], rax
mov rax, qword [rbp + 0x108]
mov rcx, rax
call method.std::vector_HWND____std::allocator_HWND_____.begin__
mov qword [rbp + 0x28], rax
mov rax, qword [rbp + 0x108]
mov rcx, rax
call method.std::vector_HWND____std::allocator_HWND_____.end__
mov qword [rbp + 0x20], rax
lea rdx, [rbp + 0x20]
lea rax, [rbp + 0x28]
mov rcx, rax
call method.bool___gnu_cxx::operator__HWND____std::vector_HWND____std.allocator_HWND__________gnu_cxx::__normal_iterator_HWND____std::vector_HWND____std::allocator_HWND________const____gnu_cxx::__normal_iterator_HWND____std::vector_HWND____std::al
test al, al
je 0x404356
lea rax, [rbp + 0x28]
mov rcx, rax
call method.__gnu_cxx::__normal_iterator_HWND____std::vector_HWND____std::allocator_HWND_______.operator___const
mov rax, qword [rax]
mov qword [rbp + 0x100], rax
mov rax, qword [rbp + 0x100]
mov r9d, 0
mov r8d, 0
mov edx, 0x10
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_SendMessageA]
call rax
mov rax, qword [rbp + 0x100]
mov rcx, rax
mov rax, qword [sym.imp.USER32.dll_IsWindow]
call rax
test eax, eax
setne al
test al, al
je 0x404345
mov ecx, 0x64
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x404319
lea rax, [rbp + 0x28]
mov rcx, rax
call method.__gnu_cxx::__normal_iterator_HWND____std::vector_HWND____std::allocator_HWND_______.operator__
jmp 0x4042cb
lea rcx, [0x00413040]
call method.std::vector_HWND____std::allocator_HWND_____.clear__
lea rax, [rbp + 0xff]
mov rcx, rax
call fcn.00407aa8
lea rax, [rbp + 0xff]
mov r8, rax
lea rdx, [0x0040fa37]
mov rcx, qword [rbp + 0x1e0]
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string_char_const__std::allocator_char__const_
lea rax, [rbp + 0xff]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x70]
mov rcx, rax
call method.std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______.vector__
lea rax, [rbp + 0x90]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0xb0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0xd0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x404581
mov rax, qword [rbp + 0x1e0]
add rsp, 0x248
pop rbx
pop rbp
ret