Function at 0x1400b9980
Capabilities:
Set console window title

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x2c8
call sym.__main
mov edx, 0xfa
mov ecx, 0x1f4
call sym.SetConsoleSizeAndPosition_int__int_
mov ecx, 0x46
call sym.SetConsoleTransparency_int_
lea rcx, [0x1400c006d]
call qword [sym.imp.KERNEL32.dll_SetConsoleTitleA]
xor ecx, ecx
call qword [sym.imp.msvcrt.dll__time64]
mov ecx, eax
call sym.srand
mov ecx, 0xfffffff5
mov r13, qword [sym.imp.KERNEL32.dll_GetStdHandle]
call r13
mov edx, 5
mov r14, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
mov rcx, rax
call r14
mov rbp, qword [0x1400c60e0]
lea rdx, str.Enter_the_desired_password_length._n_
mov rcx, rbp
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 rbx, qword [0x1400c60b0]
lea rdx, [rsp + 0x64]
mov rcx, rbx
call method.std::istream.operator___int_
lea rdx, str._nInclude_lowercase_letters__a_z____1___Yes__0___No__n_
mov rcx, rbp
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 rdx, [rsp + 0x60]
mov rcx, rbx
call method.std::istream_std::istream._M_extract_bool__bool_
lea rdx, str._nInclude_uppercase_letters__A_Z____1___Yes__0___No__n_
mov rcx, rbp
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 rdx, [rsp + 0x61]
mov rcx, rbx
call method.std::istream_std::istream._M_extract_bool__bool_
lea rdx, str._nInclude_numbers__0_9____1___Yes__0___No__n_
mov rcx, rbp
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 rdx, [rsp + 0x62]
mov rcx, rbx
call method.std::istream_std::istream._M_extract_bool__bool_
lea rdx, str._nInclude_special_symbols__________1___Yes__0___No__n_
mov rcx, rbp
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 rdx, [rsp + 0x63]
mov rcx, rbx
call method.std::istream_std::istream._M_extract_bool__bool_
lea rdx, str._nWhat_would_you_like_to_do__n_1._Copy_password_to_clipboard._n_2._Save_password_s__to_a_file._n_
mov rcx, rbp
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 rdx, [rsp + 0x68]
mov rcx, rbx
call method.std::istream.operator___int_
mov eax, dword [rsp + 0x68]
cmp eax, 1
je 0x1400ba10c
cmp eax, 2
je 0x1400b9b0c
mov ecx, 0xfffffff5
call r13
mov edx, 0xc
mov rcx, rax
call r14
lea rdx, str.Invalid_choice._n
mov rcx, rbp
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 ecx, 0xfffffff5
call r13
mov edx, 5
mov rcx, rax
call r14
mov ecx, 0x3e8
call qword [sym.imp.KERNEL32.dll_Sleep]
xor eax, eax
add rsp, 0x2c8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, str._nHow_many_passwords_would_you_like_to_generate__n_
mov rcx, rbp
lea rdi, str._nEnter_the_file_name__without_extension_._n_
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 rcx, rbx
lea rdx, [rsp + 0x6c]
lea r12, [rsp + 0x70]
call method.std::istream.operator___int_
lea rax, [rsp + 0x80]
xor ecx, ecx
xor r8d, r8d
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0xa0]
lea r15, [method.std::ctype_char_.do_widen_char__const]
mov qword [rsp + 0x90], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x78], rcx
mov byte [rsp + 0x80], 0
mov qword [rsp + 0x98], r8
mov byte [rsp + 0xa0], 0
mov qword [rsp + 0x38], rax
jmp 0x1400b9bb1
movsx r8d, byte [rsi + 0x43]
mov rdx, r12
mov rcx, rbx
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_____char_
mov rdx, qword [rsp + 0x38]
mov rcx, r12
call sym.IsValidFileName_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____
test al, al
jne 0x1400b9c12
mov r8d, 0x2c
mov rdx, rdi
mov rcx, rbp
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rcx, rbx
call method.std::istream.ignore__
mov rax, qword [rbx]
mov rax, qword [rax - 0x18]
mov rsi, qword [rax + rbx + 0xf0]
test rsi, rsi
je 0x1400ba366
cmp byte [rsi + 0x38], 0
jne 0x1400b9b90
mov rcx, rsi
call method.std::ctype_char_._M_widen_init___const
mov rax, qword [rsi]
mov r8d, 0xa
mov rax, qword [rax + 0x30]
cmp rax, r15
je 0x1400b9b95
mov edx, 0xa
mov rcx, rsi
call rax
movsx r8d, al
jmp 0x1400b9b95
lea rax, [rsp + 0xf0]
mov rdx, qword [rsp + 0x38]
mov r8d, 0x10
mov rcx, rax
mov qword [rsp + 0x48], rax
call fcn.1400959c0
cmp byte [rsp + 0x60], 0
je 0x1400ba17a
lea rax, [rsp + 0xb0]
cmp dword [rsp + 0x6c], 0
mov esi, 1
mov qword [rsp + 0x40], rax
lea rax, [method.std::ctype_char_.do_widen_char__const]
mov qword [rsp + 0x58], rax
jle 0x1400b9e0d
nop word cs:[rax + rax]
movzx eax, byte [rsp + 0x63]
movzx r9d, byte [rsp + 0x61]
movzx r8d, byte [rsp + 0x60]
mov edx, dword [rsp + 0x64]
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0x62]
mov rcx, qword [rsp + 0x40]
mov dword [rsp + 0x20], eax
call sym.GeneratePassword_abi:cxx11__int__bool__bool__bool__bool_
mov rbx, qword [rsp + 0x98]
test rbx, rbx
je 0x1400b9fab
mov rdx, qword [rsp + 0x90]
lea rax, [rbx - 1]
nop dword [rax]
mov r8, rax
sub rax, 1
cmp byte [rdx + rax + 1], 0x2e
je 0x1400ba0a3
cmp rax, 0xffffffffffffffff
jne 0x1400b9cc0
xor r8d, r8d
lea rdi, [rsp + 0xe0]
lea rax, [rdx + r8]
sub rbx, r8
mov qword [rsp + 0xd0], rdi
mov r15, rbx
mov qword [rsp + 0x50], rax
cmp rbx, 0xf
jbe 0x1400ba085
test rbx, rbx
js 0x1400ba377
mov rcx, rbx
add rcx, 1
js 0x1400ba2f5
call sym.operator_new_unsigned_long_long_
mov qword [rsp + 0xd0], rax
mov rcx, rax
mov qword [rsp + 0xe0], rbx
mov rdx, qword [rsp + 0x50]
mov r8, rbx
call sym.memcpy
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0xd8], r15
mov byte [rax + r15], 0
mov rcx, qword [rsp + 0xd0]
cmp qword [rsp + 0xd8], 4
je 0x1400b9fc3
cmp rcx, rdi
je 0x1400b9d81
mov rax, qword [rsp + 0xe0]
lea rdx, [rax + 1]
call sym.operator_delete_void__unsigned_long_long_
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x48]
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov rbx, rax
mov rax, qword [rax]
mov rax, qword [rax - 0x18]
mov rdi, qword [rbx + rax + 0xf0]
test rdi, rdi
je 0x1400ba383
cmp byte [rdi + 0x38], 0
je 0x1400ba0c6
movsx edx, byte [rdi + 0x43]
mov rcx, rbx
call method.std::ostream.put_char_
mov rcx, rax
call method.std::ostream.flush__
mov edi, esi
mov rcx, qword [rsp + 0xb0]
lea rax, [rsp + 0xc0]
cmp rcx, rax
je 0x1400ba0fa
mov rax, qword [rsp + 0xc0]
add esi, 1
lea rdx, [rax + 1]
call sym.operator_delete_void__unsigned_long_long_
cmp edi, dword [rsp + 0x6c]
jl 0x1400b9c70
mov ecx, 0xfffffff5
call r13
mov rcx, rax
mov edx, 0xa
call r14
mov rdi, qword [rsp + 0x98]
lea rbx, [rsp + 0xc0]
xor edx, edx
lea rax, [rsp + 0xb0]
mov qword [rsp + 0xb0], rbx
mov r15, qword [rsp + 0x90]
lea rsi, [rdi + 0x1d]
mov qword [rsp + 0xb8], rdx
mov byte [rsp + 0xc0], 0
mov qword [rsp + 0x40], rax
cmp rsi, 0xf
ja 0x1400ba1c2
mov rsi, qword [rsp + 0x40]
mov r8d, 0x1d
lea rdx, str.Passwords_have_been_saved_to
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.append_char_const__unsigned_long_long___clone_.isra.0_
mov r8, rdi
mov rdx, r15
mov rcx, rsi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___.append_char_const__unsigned_long_long___clone_.isra.0_
mov rsi, qword [rsp + 0xb8]
movabs rax, 0x7fffffffffffffff
sub rax, rsi
cmp rax, 1
jbe 0x1400ba36b
mov rdx, qword [rsp + 0xb0]
lea rdi, [rsi + 2]
cmp rdx, rbx
je 0x1400ba323
mov rax, qword [rsp + 0xc0]
cmp rax, rdi
jb 0x1400ba257
mov word [rdx + rsi], 0xa2e
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xb8], rdi
lea rdx, [rsp + 0xe0]
mov byte [rax + rsi + 2], 0
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xd0], rdx
cmp rax, rbx
je 0x1400ba32d
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xe0], rax
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xd0]
xor eax, eax
mov rcx, rbp
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xd8], r8
mov qword [rsp + 0xb8], rax
mov byte [rsp + 0xc0], 0
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
lea rcx, [rsp + 0xd0]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov rcx, qword [rsp + 0x40]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov rdi, qword [rsp + 0x48]
mov rcx, rdi
call method.std::basic_ofstream_char__std::char_traits_char___.close__
mov rcx, rdi
call method.std::basic_ofstream_char__std::char_traits_char___.basic_ofstream__
mov rcx, qword [rsp + 0x38]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov rcx, r12
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
jmp 0x1400b9ad8
lea rdi, [rsp + 0xe0]
mov qword [rsp + 0xd0], rdi
xor r15d, r15d
jmp 0x1400b9d3f
cmp dword [rcx], 0x6e6f736a
jne 0x1400b9d6b
cmp rcx, rdi
je 0x1400b9fe5
mov rax, qword [rsp + 0xe0]
lea rdx, [rax + 1]
call sym.operator_delete_void__unsigned_long_long_
mov rbx, qword [rsp + 0x48]
mov r8d, 1
lea rdx, [0x1400c02b7]
mov rcx, rbx
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov edx, esi
mov rcx, rbx
mov edi, esi
call method.std::ostream.operator___int_
mov r8d, 4
lea rdx, str._:__
mov rcx, rax
mov rbx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov rcx, rbx
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
mov r8d, 1
lea rdx, [0x1400c02b7]
mov rcx, rax
mov rbx, rax
call method.std::basic_ostream_char__std::char_traits_char____std::__ostream_insert_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const__long_long_
cmp esi, dword [rsp + 0x6c]
lea rdx, [0x1400c006d]
lea rax, [0x1400c006b]
mov rcx, rbx
cmovl rdx, rax
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 rcx, rax
lea rdx, [0x1400c02be]
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_
jmp 0x1400b9dd6
cmp rbx, 1
jne 0x1400ba246
mov rax, qword [rsp + 0x50]
movzx eax, byte [rax]
mov byte [rsp + 0xe0], al
jmp 0x1400b9d3f
add r8, 1
cmp rbx, r8
jae 0x1400b9cdb
mov r9, rbx
lea rdx, [0x1400c0265]
lea rcx, [0x1400c0280]
call method.std.__throw_out_of_range_fmt_char_const__..._
mov rcx, rdi
call method.std::ctype_char_._M_widen_init___const
mov rax, qword [rdi]
mov rcx, qword [rsp + 0x58]
mov edx, 0xa
mov rax, qword [rax + 0x30]
cmp rax, rcx
je 0x1400b9dc4
mov edx, 0xa
mov rcx, rdi
call rax
movsx edx, al
jmp 0x1400b9dc4
add esi, 1
cmp dword [rsp + 0x6c], edi
jg 0x1400b9c70
jmp 0x1400b9e0d
movzx eax, byte [rsp + 0x63]
lea rdi, [rsp + 0xf0]
movzx r9d, byte [rsp + 0x61]
movzx r8d, byte [rsp + 0x60]
mov edx, dword [rsp + 0x64]
mov rcx, rdi
mov qword [rsp + 0x48], rdi
mov dword [rsp + 0x28], eax
movzx eax, byte [rsp + 0x62]
mov dword [rsp + 0x20], eax
call sym.GeneratePassword_abi:cxx11__int__bool__bool__bool__bool_
mov rcx, rdi
call sym.CopyTextToClipboard_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
mov ecx, 0xfffffff5
call r13
mov rcx, rax
mov edx, 0xa
call r14
lea rdx, str.Password_has_been_copied_to_clipboard._n
mov rcx, rbp
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 rcx, rdi
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
jmp 0x1400b9ad8
cmp byte [rsp + 0x61], 0
jne 0x1400b9c3d
cmp byte [rsp + 0x62], 0
jne 0x1400b9c3d
cmp byte [rsp + 0x63], 0
jne 0x1400b9c3d
mov ecx, 0xfffffff5
call r13
mov rcx, rax
mov edx, 0xc
call r14
lea rdx, str.Error:_No_valid_options_selected._n
mov rcx, rbp
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_
jmp 0x1400b9f7f
test rsi, rsi
js 0x1400ba388
mov eax, 0x1e
cmp rsi, rax
cmovb rsi, rax
mov rcx, rsi
add rcx, 1
js 0x1400ba350
call sym.operator_new_unsigned_long_long_
mov r9, rax
mov rax, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
lea r8, [rax + 1]
test rax, rax
je 0x1400ba345
test r8, r8
jne 0x1400ba2fa
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x50], r9
mov rcx, rax
mov qword [rsp + 0x40], rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov r9, qword [rsp + 0x50]
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xb0], r9
jmp 0x1400b9e6d
test rbx, rbx
je 0x1400b9fbb
mov rcx, rdi
jmp 0x1400b9d32
test rdi, rdi
js 0x1400ba394
add rax, rax
mov r15, rdi
cmp rdi, rax
jb 0x1400ba30a
mov rcx, r15
add rcx, 1
js 0x1400ba361
call sym.operator_new_unsigned_long_long_
mov r10, qword [rsp + 0xb0]
mov r9, rax
test rsi, rsi
je 0x1400ba2b6
cmp rsi, 1
je 0x1400ba355
mov rdx, r10
mov r8, rsi
mov rcx, rax
mov qword [rsp + 0x50], r10
call sym.memcpy
mov r10, qword [rsp + 0x50]
mov r9, rax
mov word [r9 + rsi], 0xa2e
cmp r10, rbx
je 0x1400ba2e0
mov rax, qword [rsp + 0xc0]
mov rcx, r10
mov qword [rsp + 0x50], r9
lea rdx, [rax + 1]
call sym.operator_delete_void__unsigned_long_long_
mov r9, qword [rsp + 0x50]
mov qword [rsp + 0xb0], r9
mov qword [rsp + 0xc0], r15
jmp 0x1400b9ee0
call method.std.__throw_bad_alloc__
mov rcx, r9
call sym.memcpy
mov r9, rax
jmp 0x1400ba212
movabs rdx, 0x7fffffffffffffff
cmp rax, rdx
cmovbe rdx, rax
mov r15, rdx
jmp 0x1400ba26f
mov eax, 0xf
jmp 0x1400b9ed1
mov rax, qword [rsp + 0xb8]
mov rdi, rdx
mov rsi, rbx
lea ecx, [rax + 1]
rep movsb byte [rdi], byte [rsi]
jmp 0x1400b9f2e
movzx eax, byte [rdx]
mov byte [r9], al
jmp 0x1400ba212
call method.std.__throw_bad_alloc__
movzx eax, byte [r10]
mov byte [r9], al
jmp 0x1400ba2b6
call method.std.__throw_bad_alloc__
call method.std.__throw_bad_cast__
lea rcx, section..rdata
call method.std.__throw_length_error_char_const_
lea rcx, [0x1400c0015]
call method.std.__throw_length_error_char_const_
call method.std.__throw_bad_cast__
lea rcx, [0x1400c0015]
call method.std.__throw_length_error_char_const_
lea rcx, [0x1400c0015]
call method.std.__throw_length_error_char_const_
mov rcx, qword [rsp + 0x48]
mov rbx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov rcx, rbx
call sym._Unwind_Resume
mov rbx, rax
jmp 0x1400ba3d4
mov rcx, qword [rsp + 0x48]
call method.std::basic_ofstream_char__std::char_traits_char___.basic_ofstream__
mov rcx, qword [rsp + 0x38]
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov rcx, r12
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___._M_dispose__
mov rcx, rbx
call sym._Unwind_Resume
mov rbx, rax
jmp 0x1400ba3de