Function at 0x405140
Capabilities:
Execute command

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
movsx eax, byte [ebp + 8]
sub esp, 0xc
add eax, 0xffffff9b
push ebx
push esi
mov esi, ecx
push edi
cmp eax, 0x13
ja case.0x405165.103
movzx eax, byte [eax + 0x405354]
jmp dword [eax*4 + 0x405340]
mov eax, dword [esi + 0x30]
sub eax, dword [esi + 0x2c]
cmp eax, dword [esi + 0x14]
jae case.0x405165.103
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Adding:
call fcn.00403760
call dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
mov ecx, dword [esi + 0x30]
mov byte [esp + 0x13], al
cmp ecx, dword [esi + 0x34]
je 0x4051ab
mov byte [ecx], al
inc dword [esi + 0x30]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
lea eax, [esp + 0x13]
push eax
push ecx
lea ecx, [esi + 0x2c]
call fcn.00405f20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x2c]
cmp eax, dword [esi + 0x30]
je case.0x405165.103
dec dword [esi + 0x30]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Select_a_saved_dish___
call fcn.00403760
mov ebx, dword [esi + 0x4c]
sub ebx, dword [esi + 0x48]
call dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
mov edi, eax
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
add esp, 4
test eax, eax
je 0x4052b6
add edi, 0xffffffcf
js 0x4052b6
lea eax, [ebx - 1]
cmp edi, eax
ja 0x4052b6
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Select_a_plate_to_add_onto___
call fcn.00403760
call dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
mov ebx, eax
push ebx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
add esp, 4
test eax, eax
je 0x4052b6
lea eax, [ebx - 0x31]
test eax, eax
js 0x4052b6
cmp eax, 2
ja 0x4052b6
mov ecx, dword [esi + 8]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
call fcn.00405370
mov edx, eax
mov ebx, dword [edx + 4]
mov ecx, ebx
sub ecx, dword [edx]
cmp ecx, dword [esi + 0x14]
jae 0x4052af
mov eax, dword [esi + 0x48]
add eax, edi
cmp ebx, dword [edx + 8]
je 0x405282
mov al, byte [eax]
mov byte [ebx], al
inc dword [edx + 4]
jmp 0x40528b
push eax
push ebx
mov ecx, edx
call fcn.00405f20
mov edx, dword [esi + 0x48]
mov eax, dword [esi + 0x4c]
add edx, edi
lea ecx, [edx + 1]
sub eax, ecx
push eax
push ecx
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
dec dword [esi + 0x4c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, str.Sorry__this_plate_is_full_
jmp 0x4052bb
mov edx, str.Invalid_Input
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
call fcn.00403760
push 0x403730
mov ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
push str.pause
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Select_a_plate_to_delete____
call fcn.00403760
call dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
mov edi, eax
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isdigit]
add esp, 4
test eax, eax
je case.0x405165.103
lea eax, [edi - 0x31]
test eax, eax
js case.0x405165.103
cmp eax, 2
ja case.0x405165.103
mov ecx, dword [esi + 8]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x14]
push eax
call fcn.00405370
mov ecx, dword [eax]
cmp ecx, dword [eax + 4]
je case.0x405165.103
mov dword [eax + 4], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4