Function at 0x4021da
Capabilities:
Execute command

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x468
mov dword [ebp - 0x444], sym.___gxx_personality_sj0
mov dword [ebp - 0x440], 0x48083c
lea eax, [ebp - 0x43c]
lea ebx, [ebp - 0x18]
mov dword [eax], ebx
mov edx, 0x402644
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x45c]
mov dword [esp], eax
call dbg._Unwind_SjLj_Register
call dbg.__main
lea eax, [ebp - 0x220]
mov dword [esp], eax
mov dword [ebp - 0x458], 0xffffffff
call sym.ReadBackup_char_
xor eax, 1
test al, al
je 0x4022c5
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.ReadMBR_char_
xor eax, 1
test al, al
jne 0x402277
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.WriteBackup_char_const_
xor eax, 1
test al, al
je 0x40227e
mov eax, 1
jmp 0x402283
mov eax, 0
test al, al
je 0x4022c5
mov dword [esp + 4], 0x48a03a
mov dword [esp], 0x489200
mov dword [ebp - 0x458], 0xffffffff
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 - 0x460], 1
jmp 0x402636
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0x48a04b
mov dword [esp + 4], 0x48a050
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
mov dword [ebp - 0x458], 0xffffffff
call eax
sub esp, 0x10
cmp eax, 6
sete al
test al, al
je 0x40262c
mov dword [esp + 0xc], 4
mov dword [esp + 8], 0x48a08e
mov dword [esp + 4], 0x48a09c
mov dword [esp], 0
mov eax, dword [sym.imp.USER32.dll_MessageBoxA]
call eax
sub esp, 0x10
cmp eax, 6
sete al
test al, al
je 0x40262c
call sym.MBR__
mov dword [esp], str.color_4F
call sym._system
mov dword [esp + 4], 0x48a0e2
mov dword [esp], 0x489380
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 [esp + 4], 0x48a0f5
mov dword [esp], 0x489380
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 [esp + 4], 0x48a10c
mov dword [esp], 0x489380
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 [esp + 4], str.Make_by_XiaoA
mov dword [esp], 0x489380
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 byte [ebp - 0x19], 0
lea eax, [ebp - 0x20]
mov ecx, eax
call sym.std::basic_string_char__std::char_traits_char___std::allocator_char___::basic_string__
jmp 0x4025f5
mov dword [esp + 4], 0x48a151
mov dword [esp], 0x489380
mov dword [ebp - 0x458], 1
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
lea eax, [ebp - 0x20]
mov dword [esp + 4], eax
mov dword [esp], 0x489140
call method.std::basic_istream_char__std::char_traits_char____std::operator___char__std::char_traits_char___std.allocator_char____std::basic_istream_char__std::char_traits_char_____std::basic_string_char__std::char_traits_char___std::allocator_char____
mov dword [esp + 4], str.jiesuan700
lea eax, [ebp - 0x20]
mov dword [esp], eax
call method.bool_std::operator_char__std::char_traits_char___std.allocator_char____std::basic_string_char__std::char_traits_char___std::allocator_char____const__char_const_
test al, al
je 0x4025c6
mov dword [esp + 4], 0x48a168
mov dword [esp], 0x489380
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
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym.ReadMBR_char_
test al, al
je 0x402569
lea eax, [ebp - 0x220]
mov dword [esp], eax
call sym.ReadBackup_char_
test al, al
je 0x402538
mov dword [esp + 8], 0x200
lea eax, [ebp - 0x220]
mov dword [esp + 4], eax
lea eax, [ebp - 0x420]
mov dword [esp], eax
call sym._memcmp
test eax, eax
je 0x402598
lea eax, [ebp - 0x220]
mov dword [esp], eax
call sym.RestoreMBR_char_const_
test al, al
je 0x402507
mov dword [esp + 4], 0x48a171
mov dword [esp], 0x489380
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
jmp 0x402598
mov dword [esp + 4], 0x48a181
mov dword [esp], 0x489200
mov dword [ebp - 0x458], 1
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
jmp 0x402598
mov dword [esp + 4], 0x48a193
mov dword [esp], 0x489200
mov dword [ebp - 0x458], 1
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
jmp 0x402598
mov dword [esp + 4], 0x48a1a4
mov dword [esp], 0x489200
mov dword [ebp - 0x458], 1
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 byte [ebp - 0x19], 1
mov dword [ebp - 0x458], 1
mov ecx, 0x489140
call method.std::istream.get__
mov dword [ebp - 0x460], 0
mov dword [ebp - 0x464], 0
jmp 0x40260e
mov dword [esp + 4], 0x48a1b6
mov dword [esp], 0x489380
mov dword [ebp - 0x458], 1
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
movzx eax, byte [ebp - 0x19]
xor eax, 1
test al, al
jne 0x4023f5
mov dword [ebp - 0x464], 1
lea eax, [ebp - 0x20]
mov dword [ebp - 0x458], 0xffffffff
mov ecx, eax
call fcn.00454be0
cmp dword [ebp - 0x464], 1
jne 0x402636
nop
mov dword [ebp - 0x460], 0
mov eax, dword [ebp - 0x460]
mov dword [ebp - 0x460], eax
jmp 0x40267f
lea eax, [ebp - 0x45c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
mov eax, dword [ebp - 0x460]
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret