Function at 0x402918
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x25c
mov dword [ebp - 0x234], sym.___gxx_personality_sj0
mov dword [ebp - 0x230], 0x483a12
lea eax, [ebp - 0x22c]
lea ebx, [ebp - 0x18]
mov dword [eax], ebx
mov edx, 0x402c84
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x24c]
mov dword [esp], eax
call dbg._Unwind_SjLj_Register
mov dword [ebp - 0x248], 0xffffffff
mov ecx, dword [ebp + 8]
call method.std::string.c_str___const
mov edx, eax
lea eax, [ebp - 0x120]
mov dword [esp + 4], 4
mov dword [esp], edx
mov ecx, eax
call sym.std::basic_ifstream_char__std::char_traits_char___::basic_ifstream_char_const__std::_Ios_Openmode_
sub esp, 8
lea eax, [ebp - 0x120]
add eax, 0x70
mov dword [ebp - 0x248], 1
mov ecx, eax
call method.std::basic_ios_char__std::char_traits_char___.operator____const
test al, al
je 0x4029ee
mov dword [esp + 4], str.Error_opening_input_file:
mov dword [esp], 0x48bfc0
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, eax
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], edx
call method.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::basic_string_char__std::char_traits_char___std::allocator_char____const
mov dword [esp], 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 ecx, eax
call method.std::ostream.operator___std::ostream____std::ostream__
sub esp, 4
mov dword [ebp - 0x250], 0
jmp 0x402c07
lea eax, [ebp - 0x24]
mov dword [esp + 8], str..enc
mov edx, dword [ebp + 8]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x248], 1
call method.std::basic_string_char__std::char_traits_char___std::allocator_char____std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
lea eax, [ebp - 0x24]
mov dword [ebp - 0x248], 2
mov ecx, eax
call method.std::string.c_str___const
mov edx, eax
lea eax, [ebp - 0x214]
mov dword [esp + 4], 4
mov dword [esp], edx
mov ecx, eax
call sym.std::basic_ofstream_char__std::char_traits_char___::basic_ofstream_char_const__std::_Ios_Openmode_
sub esp, 8
lea eax, [ebp - 0x214]
add eax, 0x6c
mov dword [ebp - 0x248], 3
mov ecx, eax
call method.std::basic_ios_char__std::char_traits_char___.operator____const
test al, al
je 0x402a95
mov dword [esp + 4], str.Error_creating_output_file
mov dword [esp], 0x48bfc0
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 dword [esp], 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 ecx, eax
call method.std::ostream.operator___std::ostream____std::ostream__
sub esp, 4
mov dword [ebp - 0x250], 0
jmp 0x402b9c
mov dword [ebp - 0x1c], 0
jmp 0x402af5
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x248], 3
mov ecx, eax
call method.std::string.length___const
mov ecx, eax
mov eax, dword [ebp - 0x1c]
mov edx, 0
div ecx
mov eax, dword [ebp + 0xc]
mov dword [esp], edx
mov ecx, eax
call method.std::string.operator___unsigned_int__const
sub esp, 4
movzx eax, byte [eax]
mov byte [ebp - 0x1d], al
movzx eax, byte [ebp - 0x25]
xor al, byte [ebp - 0x1d]
movsx edx, al
lea eax, [ebp - 0x214]
mov dword [esp], edx
mov ecx, eax
call method.std::ostream.put_char_
sub esp, 4
add dword [ebp - 0x1c], 1
lea eax, [ebp - 0x120]
lea edx, [ebp - 0x25]
mov dword [esp], edx
mov dword [ebp - 0x248], 3
mov ecx, eax
call method.std::istream.get_char_
sub esp, 4
mov edx, dword [eax]
sub edx, 0xc
mov edx, dword [edx]
add eax, edx
mov ecx, eax
call method.std::basic_ios_char__std::char_traits_char___.operator_void___const
test eax, eax
setne al
test al, al
jne 0x402a9e
mov dword [esp + 4], str.Encryption_completed._Encrypted_file:
mov dword [esp], 0x48c140
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, eax
lea eax, [ebp - 0x24]
mov dword [esp + 4], eax
mov dword [esp], edx
call method.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::basic_string_char__std::char_traits_char___std::allocator_char____const
mov dword [esp], 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 ecx, eax
call method.std::ostream.operator___std::ostream____std::ostream__
sub esp, 4
lea eax, [ebp - 0x120]
mov ecx, eax
call method.std::basic_ifstream_char__std::char_traits_char___.close__
lea eax, [ebp - 0x214]
mov ecx, eax
call method.std::basic_ofstream_char__std::char_traits_char___.close__
mov ecx, dword [ebp + 8]
call method.std::string.c_str___const
mov dword [esp], eax
call sym._remove
mov dword [ebp - 0x250], 1
lea eax, [ebp - 0x214]
mov dword [ebp - 0x248], 2
mov ecx, eax
call fcn.0046a3c0
cmp dword [ebp - 0x250], 1
je 0x402bc8
mov dword [ebp - 0x250], 0
jmp 0x402bd3
nop
mov dword [ebp - 0x250], 1
lea eax, [ebp - 0x24]
mov dword [ebp - 0x248], 1
mov ecx, eax
call fcn.00457a00
cmp dword [ebp - 0x250], 1
je 0x402bfc
mov dword [ebp - 0x250], 0
jmp 0x402c07
nop
mov dword [ebp - 0x250], 1
lea eax, [ebp - 0x120]
mov dword [ebp - 0x248], 0xffffffff
mov ecx, eax
call fcn.00468910
cmp dword [ebp - 0x250], 1
jne 0x402cdf
nop
jmp 0x402cdf
lea eax, [ebp - 0x24c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret