Function at 0x140001450
Capabilities:
Execute command
Read file on windows

Disassembly:
push rbp
push rsi
push rbx
sub rsp, 0x290
lea rbp, [rsp + 0x80]
mov dword [rbp + 0x230], ecx
mov qword [rbp + 0x238], rdx
call sym.__main
mov rax, rsp
mov rsi, rax
mov ecx, 0xfffffff5
mov rax, qword [sym.imp.KERNEL32.dll_GetStdHandle]
call rax
mov qword [rbp + 0x200], rax
lea rax, str.Checking_input_arguments...
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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_
cmp dword [rbp + 0x230], 1
jg 0x140001525
mov rax, qword [rbp + 0x200]
mov edx, 4
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Error:_Start_this_program_with_arguments.
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.pause
mov rcx, rax
call sym.system
mov ebx, 0
jmp 0x140001d3c
mov rax, qword [rbp + 0x200]
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Success
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
mov rax, qword [rbp + 0x238]
mov rax, qword [rax + 8]
mov qword [rbp + 0x1f8], rax
lea rax, str.Reading_input_file...
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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 rax, qword [rbp + 0x1f8]
lea rdx, [0x1400d106f]
mov rcx, rax
call sym.fopen
mov qword [rbp + 0x1f0], rax
mov rax, qword [rbp + 0x1f0]
mov r8d, 2
mov edx, 0
mov rcx, rax
call sym.fseek
mov rax, qword [rbp + 0x1f0]
mov rcx, rax
call sym.ftell
mov dword [rbp + 0x1ec], eax
mov rax, qword [rbp + 0x1f0]
mov rcx, rax
call sym.rewind
mov eax, dword [rbp + 0x1ec]
cdqe
mov rcx, rax
call sym.malloc
mov qword [rbp + 0x1e0], rax
mov eax, dword [rbp + 0x1ec]
cdqe
mov rdx, qword [rbp + 0x1f0]
mov rcx, qword [rbp + 0x1e0]
mov r9, rdx
mov r8d, 1
mov rdx, rax
call sym.fread
mov rax, qword [rbp + 0x1f0]
mov rcx, rax
call sym.fclose
cmp qword [rbp + 0x1e0], 0
jne 0x1400016d1
mov rax, qword [rbp + 0x200]
mov edx, 4
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Error:_Could_not_read_input_file.
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.pause
mov rcx, rax
call sym.system
mov ebx, 0
jmp 0x140001d3c
mov rax, qword [rbp + 0x200]
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Success
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Validate_input_file_as_x64_PE...
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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 rax, qword [rbp + 0x1e0]
mov qword [rbp + 0x1d8], rax
mov rax, qword [rbp + 0x1d8]
mov eax, dword [rax + 0x3c]
cdqe
mov rdx, qword [rbp + 0x1e0]
add rax, rdx
mov qword [rbp + 0x1d0], rax
mov rax, qword [rbp + 0x1d0]
movzx eax, word [rax + 4]
cmp ax, 0x8664
sete al
mov byte [rbp + 0x1cf], al
movzx eax, byte [rbp + 0x1cf]
xor eax, 1
test al, al
je 0x14000180a
mov rax, qword [rbp + 0x200]
mov edx, 4
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Error._Input_file_is_not_a_valid_x64_PE
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.pause
mov rcx, rax
call sym.system
mov ebx, 0
jmp 0x140001d3c
mov rax, qword [rbp + 0x200]
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Success
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Encrypting_data...
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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 byte [rbp + 0x1ce], 0x6b
mov eax, dword [rbp + 0x1ec]
movsxd rdx, eax
sub rdx, 1
mov qword [rbp + 0x1c0], rdx
cdqe
add rax, 0xf
shr rax, 4
shl rax, 4
call fcn.14000c990
sub rsp, rax
lea rax, [rsp + 0x30]
add rax, 0
mov qword [rbp + 0x1b8], rax
mov dword [rbp + 0x20c], 0
jmp 0x140001900
mov eax, dword [rbp + 0x20c]
cdqe
mov rdx, qword [rbp + 0x1e0]
add rax, rdx
movzx eax, byte [rax]
xor al, byte [rbp + 0x1ce]
mov rcx, qword [rbp + 0x1b8]
mov edx, dword [rbp + 0x20c]
movsxd rdx, edx
mov byte [rcx + rdx], al
add dword [rbp + 0x20c], 1
mov eax, dword [rbp + 0x20c]
cmp eax, dword [rbp + 0x1ec]
jl 0x1400018cb
mov rax, qword [rbp + 0x200]
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Success
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Writing_stub...
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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 edx, 4
mov ecx, 0x10
call method.std.operator_std::_Ios_Openmode__std::_Ios_Openmode_
mov edx, eax
lea rax, [rbp - 0x50]
mov r8d, edx
lea rdx, str.Hatchling.exe
mov rcx, rax
call method.std::basic_fstream_char__std::char_traits_char___.basic_fstream_char_const__std::_Ios_Openmode_
lea rax, [rbp - 0x50]
add rax, 0x10
mov r8d, 0x16100
lea rdx, section..data
mov rcx, rax
call method.std::ostream.write_char_const__long_long_
mov rdx, qword [rax]
sub rdx, 0x18
mov rdx, qword [rdx]
add rax, rdx
mov rcx, rax
call method.std::basic_ios_char__std::char_traits_char___.operator____const
test al, al
je 0x140001a53
mov rax, qword [rbp + 0x200]
mov edx, 4
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Error:_Could_not_write_the_stub_to_disk
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.pause
mov rcx, rax
call sym.system
mov ebx, 0
jmp 0x140001d30
lea rax, [rbp - 0x50]
mov rcx, rax
call method.std::basic_fstream_char__std::char_traits_char___.close__
mov rax, qword [rbp + 0x200]
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Success
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Write_encrypted_resource_to_stub...
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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 edx, 0
lea rax, str.Hatchling.exe
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_BeginUpdateResourceA]
call rax
mov qword [rbp + 0x1b0], rax
cmp qword [rbp + 0x1b0], 0
jne 0x140001b70
mov rax, qword [rbp + 0x200]
mov edx, 4
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Error:_Could_not_open_file_for_writing
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.pause
mov rcx, rax
call sym.system
mov ebx, 0
jmp 0x140001d30
mov edx, dword [rbp + 0x1ec]
mov rax, qword [rbp + 0x1b0]
mov dword [rsp + 0x28], edx
mov rdx, qword [rbp + 0x1b8]
mov qword [rsp + 0x20], rdx
mov r9d, 0
mov r8d, 0x84
lea rdx, [0x1400d119f]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_UpdateResourceA]
call rax
mov dword [rbp + 0x1ac], eax
cmp dword [rbp + 0x1ac], 0
jne 0x140001c2f
mov rax, qword [rbp + 0x200]
mov edx, 4
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Error:_Could_not_add_resource
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.pause
mov rcx, rax
call sym.system
mov ebx, 0
jmp 0x140001d30
mov rax, qword [rbp + 0x1b0]
mov edx, 0
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EndUpdateResourceA]
call rax
test eax, eax
sete al
test al, al
je 0x140001cc1
mov rax, qword [rbp + 0x200]
mov edx, 4
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Error:_Could_not_write_changes_to_file
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.pause
mov rcx, rax
call sym.system
mov ebx, 0
jmp 0x140001d30
mov rax, qword [rbp + 0x200]
mov edx, 2
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.Success
mov rdx, rax
mov rax, qword [0x1400d6f70]
mov rcx, 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
mov rax, qword [method.std::basic_ostream_char__std::char_traits_char____std::endl_char__std.char_traits_char____std::basic_ostream_char__std::char_traits_char____]
mov rdx, rax
call method.std::ostream.operator___std::ostream____std::ostream__
mov rax, qword [rbp + 0x200]
mov edx, 7
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
call rax
lea rax, str.pause
mov rcx, rax
call sym.system
mov ebx, 0
lea rax, [rbp - 0x50]
mov rcx, rax
call method.std::basic_fstream_char__std::char_traits_char___.basic_fstream__
mov rsp, rsi
mov eax, ebx
jmp 0x140001d5d
lea rsp, [rbp + 0x210]
pop rbx
pop rsi
pop rbp
ret