Function at 0x140003c17
Capabilities:
Terminate process

Disassembly:
push rbp
push rbx
sub rsp, 0x3e8
lea rbp, [rsp + 0x80]
call dbg.__main
lea rax, [rbp + 0x208]
mov qword [rbp + 0x350], rax
nop
nop
lea rax, [rbp + 0x209]
lea rdx, [rbp + 0x20f]
mov rcx, rax
call method.main.lambda__1::operator_____const
lea rax, [rbp + 0x209]
mov qword [rbp + 0x348], rax
mov rax, qword [rbp + 0x348]
movzx eax, byte [rax + 5]
test al, al
setne al
test al, al
je 0x140003d0c
lea rax, [rbp + 0x209]
lea rdx, [rbp + 0x209]
mov qword [rbp + 0x340], rdx
mov qword [rbp + 0x338], rax
mov dword [rbp + 0x334], 0
jmp 0x140003d02
mov eax, dword [rbp + 0x334]
movsxd rdx, eax
mov rax, qword [rbp + 0x338]
add rax, rdx
movzx r8d, byte [rax]
mov eax, dword [rbp + 0x334]
movsxd rdx, eax
imul rdx, rdx, 0xffffffff8d3dcb09
shr rdx, 0x20
add edx, eax
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x3a
sub eax, ecx
mov edx, eax
mov eax, edx
add eax, 0x35
mov ecx, r8d
xor ecx, eax
mov rdx, qword [rbp + 0x340]
mov eax, dword [rbp + 0x334]
cdqe
mov byte [rdx + rax], cl
add dword [rbp + 0x334], 1
cmp dword [rbp + 0x334], 5
jle 0x140003ca1
nop
lea rdx, [rbp + 0x209]
lea rcx, [rbp + 0x208]
lea rax, [rbp + 0x1e0]
mov r8, rcx
mov rcx, rax
call dbg.std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<std::allocator<char> >(char const*, std::allocator<char> const&)
lea rax, [rbp + 0x208]
mov rcx, rax
call dbg.std::__new_allocator<char>::~__new_allocator()
nop
lea rax, [rbp + 0x1e0]
mov rcx, rax
call dbg.UpdateConsoleTitle(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
lea rax, [rbp + 0x1c0]
mov rcx, rax
call fcn.140004330
mov ecx, 0xe
call dbg.SetConsoleTextColor(int)
lea rax, [rbp + 0x210]
lea rdx, [rbp + 0x23f]
mov rcx, rax
call method.main.lambda__2::operator_____const
lea rax, [rbp + 0x210]
mov qword [rbp + 0x328], rax
mov rax, qword [rbp + 0x328]
mov qword [rbp + 0x320], rax
mov rax, qword [rbp + 0x320]
movzx eax, byte [rax + 0x29]
test al, al
setne al
test al, al
je 0x140003e41
mov rax, qword [rbp + 0x328]
mov rdx, qword [rbp + 0x328]
mov qword [rbp + 0x318], rdx
mov qword [rbp + 0x310], rax
mov dword [rbp + 0x30c], 0
jmp 0x140003e37
mov eax, dword [rbp + 0x30c]
movsxd rdx, eax
mov rax, qword [rbp + 0x310]
add rax, rdx
movzx r8d, byte [rax]
mov eax, dword [rbp + 0x30c]
movsxd rdx, eax
imul rdx, rdx, 0xffffffff8d3dcb09
shr rdx, 0x20
add edx, eax
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x3a
sub eax, ecx
mov edx, eax
mov eax, edx
add eax, 0x35
mov ecx, r8d
xor ecx, eax
mov rdx, qword [rbp + 0x318]
mov eax, dword [rbp + 0x30c]
cdqe
mov byte [rdx + rax], cl
add dword [rbp + 0x30c], 1
cmp dword [rbp + 0x30c], 0x29
jle 0x140003dd6
nop
lea rax, [rbp + 0x210]
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 ecx, 0xf
call dbg.SetConsoleTextColor(int)
lea rax, [rbp + 0x1c0]
mov rdx, rax
mov rax, qword [sym.imp.libstdc_6.dll_std::cin]
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 + 0x240]
lea rdx, [rbp + 0x1c0]
mov rcx, rax
call dbg.RemoveQuotes(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
lea rdx, [rbp + 0x240]
lea rax, [rbp + 0x1c0]
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 + 0x240]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x30]
mov rcx, rax
call fcn.1400043b8
lea rcx, [rbp - 0x38]
lea rdx, [rbp - 0x30]
lea rax, [rbp + 0x1c0]
mov r8, rcx
mov rcx, rax
call dbg.ValidateFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_ifstream<char, std::char_traits<char> >&, long long&)
xor eax, 1
test al, al
je 0x140003eef
mov ebx, 1
jmp 0x140004214
lea rax, [rbp - 0x60]
lea rdx, [rbp + 0x1c0]
mov rcx, rax
call dbg.ExtractFileName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
mov ecx, 3
call dbg.SetConsoleTextColor(int)
lea rax, [rbp + 0x261]
lea rdx, [rbp + 0x26f]
mov rcx, rax
call method.main.lambda__3::operator_____const
lea rax, [rbp + 0x261]
mov qword [rbp + 0x300], rax
mov rax, qword [rbp + 0x300]
mov qword [rbp + 0x2f8], rax
mov rax, qword [rbp + 0x2f8]
movzx eax, byte [rax + 0xd]
test al, al
setne al
test al, al
je 0x140003fe9
mov rax, qword [rbp + 0x300]
mov rdx, qword [rbp + 0x300]
mov qword [rbp + 0x2f0], rdx
mov qword [rbp + 0x2e8], rax
mov dword [rbp + 0x2e4], 0
jmp 0x140003fdf
mov eax, dword [rbp + 0x2e4]
movsxd rdx, eax
mov rax, qword [rbp + 0x2e8]
add rax, rdx
movzx r8d, byte [rax]
mov eax, dword [rbp + 0x2e4]
movsxd rdx, eax
imul rdx, rdx, 0xffffffff8d3dcb09
shr rdx, 0x20
add edx, eax
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x3a
sub eax, ecx
mov edx, eax
mov eax, edx
add eax, 0x35
mov ecx, r8d
xor ecx, eax
mov rdx, qword [rbp + 0x2f0]
mov eax, dword [rbp + 0x2e4]
cdqe
mov byte [rdx + rax], cl
add dword [rbp + 0x2e4], 1
cmp dword [rbp + 0x2e4], 0xd
jle 0x140003f7e
nop
lea rax, [rbp + 0x261]
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 - 0x60]
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_
lea rax, [rbp + 0x270]
lea rdx, [rbp - 0x60]
mov r8, rdx
lea rdx, [0x140008307]
mov rcx, rax
call method.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____char_const__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_
lea rdx, [rbp + 0x270]
lea rax, [rbp + 0x1e0]
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____const_
lea rax, [rbp + 0x270]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x1e0]
mov rcx, rax
call dbg.UpdateConsoleTitle(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
call dbg.GetUserOption()
mov dword [rbp + 0x35c], eax
cmp dword [rbp + 0x35c], 3
je 0x1400040d5
cmp dword [rbp + 0x35c], 3
jg 0x1400040df
cmp dword [rbp + 0x35c], 1
je 0x140004093
cmp dword [rbp + 0x35c], 2
je 0x1400040b4
jmp 0x1400040df
lea rdx, [rbp + 0x1c0]
lea rax, [rbp + 0x1c0]
mov r8d, 1
mov rcx, rax
call dbg.ProcessXOR(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&, bool)
jmp 0x1400041f4
lea rdx, [rbp + 0x1c0]
lea rax, [rbp + 0x1c0]
mov r8d, 0
mov rcx, rax
call dbg.ProcessXOR(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&, bool)
jmp 0x1400041f4
mov ecx, 0
call sym.exit
mov ecx, 0xc
call dbg.SetConsoleTextColor(int)
lea rax, [rbp + 0x290]
lea rdx, [rbp + 0x2bb]
mov rcx, rax
call method.main.lambda__4::operator_____const
lea rax, [rbp + 0x290]
mov qword [rbp + 0x2d8], rax
mov rax, qword [rbp + 0x2d8]
mov qword [rbp + 0x2d0], rax
mov rax, qword [rbp + 0x2d0]
movzx eax, byte [rax + 0x26]
test al, al
setne al
test al, al
je 0x1400041c6
mov rax, qword [rbp + 0x2d8]
mov rdx, qword [rbp + 0x2d8]
mov qword [rbp + 0x2c8], rdx
mov qword [rbp + 0x2c0], rax
mov dword [rbp + 0x2bc], 0
jmp 0x1400041bc
mov eax, dword [rbp + 0x2bc]
movsxd rdx, eax
mov rax, qword [rbp + 0x2c0]
add rax, rdx
movzx r8d, byte [rax]
mov eax, dword [rbp + 0x2bc]
movsxd rdx, eax
imul rdx, rdx, 0xffffffff8d3dcb09
shr rdx, 0x20
add edx, eax
sar edx, 5
mov ecx, eax
sar ecx, 0x1f
sub edx, ecx
imul ecx, edx, 0x3a
sub eax, ecx
mov edx, eax
mov eax, edx
add eax, 0x35
mov ecx, r8d
xor ecx, eax
mov rdx, qword [rbp + 0x2c8]
mov eax, dword [rbp + 0x2bc]
cdqe
mov byte [rdx + rax], cl
add dword [rbp + 0x2bc], 1
cmp dword [rbp + 0x2bc], 0x26
jle 0x14000415b
nop
lea rax, [rbp + 0x290]
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 ecx, 0x3e8
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov ebx, 1
jmp 0x140004208
lea rax, [rbp + 0x1c0]
mov rcx, rax
call dbg.ConfirmAndDeleteFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
mov ebx, 0
lea rax, [rbp - 0x60]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp - 0x30]
mov rcx, rax
call sym.std::basic_ifstream_char__std::char_traits_char___::basic_ifstream__
lea rax, [rbp + 0x1c0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
lea rax, [rbp + 0x1e0]
mov rcx, rax
call sym.std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
mov eax, ebx
jmp 0x1400042ca
add rsp, 0x3e8
pop rbx
pop rbp
ret