Function at 0x409130
Capabilities:
Execute command

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
push edi
mov edi, ecx
xorps xmm1, xmm1
mov ecx, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
mov dword [esp + 0x10], edi
mov eax, dword [edi]
mov eax, dword [eax + 4]
mov dword [esp + 0x14], eax
movss xmm0, dword [esp + 0x14]
comiss xmm0, xmm1
jbe 0x409533
mov eax, dword [edi + 0x38]
cmp eax, dword [edi + 0x3c]
jge 0x409533
push 0x40e694
call ecx
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
add esp, 4
mov edx, 0x40e7d8
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_____]
mov ecx, dword [edi]
call fcn.00407540
mov ecx, edi
call fcn.00409590
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x40e7d8
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_____]
lea ebx, [edi + 0x20]
add edi, 0x24
push ebx
mov ecx, edi
mov dword [esp + 0x10], edi
call fcn.004098f0
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.Controls:
mov esi, dword [eax]
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_____]
mov esi, dword [esi + 0xc]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x40929a
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
lea edi, [esi + 0x14]
mov edx, str.____
call fcn.00403760
mov dl, byte [esi + 0x10]
mov ecx, eax
call fcn.00403510
mov edx, 0x40e578
mov ecx, eax
call fcn.00403760
cmp dword [edi + 0x14], 0xf
mov ecx, dword [edi + 0x10]
jbe 0x409235
mov edi, dword [edi]
push ecx
mov edx, edi
mov ecx, eax
call fcn.004064a0
add esp, 4
mov ecx, eax
push 0x403730
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_____]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x409275
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x409271
cmp esi, dword [eax + 8]
jne 0x409271
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x409261
mov esi, eax
jmp 0x40928c
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x40928c
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x409280
cmp byte [esi + 0xd], 0
je 0x409201
mov edi, dword [esp + 0xc]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.____q__Swap_Screens
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_____]
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, str.____j__Bring_Up_Instructions
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_____]
mov ecx, dword [esp + 0x10]
call fcn.00408f80
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
mov edx, 0x40e7d8
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 ebx
mov ecx, edi
call fcn.004098f0
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax]
lea ecx, [esp + 0x30]
call fcn.004075c0
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
call fcn.0040b6a0
movss xmm1, dword [0x40f05c]
cvtsd2ss xmm0, xmm0
comiss xmm1, xmm0
jbe 0x40933f
addss xmm0, dword [0x40f054]
movss dword [esp + 0x14], xmm0
jmp 0x409345
movss dword [esp + 0x14], xmm1
lea ecx, [esp + 0x18]
call fcn.004075c0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
call fcn.0040b6a0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esp + 0x14]
comiss xmm0, xmm1
jbe 0x4093f3
subss xmm0, xmm1
movss xmm1, dword [0x40f058]
comiss xmm1, xmm0
movss dword [esp + 0x20], xmm0
ja 0x40938f
push 0x5265c00
jmp 0x4093c2
divss xmm0, dword [0x40f050]
call fcn.0040b630
mov esi, eax
mov edi, edx
mov ecx, esi
call fcn.0040b6a0
movss xmm1, dword [esp + 0x20]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x40f050]
comiss xmm1, xmm0
jbe 0x4093c1
add esi, 1
push esi
call sub.KERNEL32.dll_Sleep
lea ecx, [esp + 0x18]
call fcn.004075c0
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
call fcn.0040b6a0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm0, dword [esp + 0x14]
comiss xmm0, xmm1
ja 0x409371
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov edx, dword [eax + 0x44]
mov ecx, dword [eax + 0x40]
cmp ecx, edx
je 0x409427
movss xmm1, dword [0x40f048]
nop dword [eax]
mov eax, dword [ecx]
add ecx, 4
movss xmm0, dword [eax + 4]
subss xmm0, xmm1
movss dword [eax + 4], xmm0
cmp ecx, edx
jne 0x409410
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__kbhit]
test eax, eax
je 0x409498
call dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
mov byte [esp + 0x2c], al
cmp al, 0x6a
je 0x4094e4
cmp al, 0x71
je 0x409476
push ebx
mov ecx, edi
call fcn.004098f0
push ebx
mov ebx, dword [esp + 0x10]
mov ecx, ebx
mov edi, dword [eax]
mov eax, dword [edi]
mov esi, dword [eax + 0xc]
call fcn.004098f0
push dword [esp + 0x2c]
mov ecx, dword [eax]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
push eax
mov ecx, edi
call esi
jmp 0x40949c
mov eax, dword [ebx]
sub eax, 0
je 0x409492
mov edi, dword [esp + 0x10]
sub eax, 1
jne 0x40948c
mov dword [ebx], 0
mov ebx, dword [esp + 0xc]
jmp 0x4094a0
mov dword [ebx], 1
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov esi, dword [ebx]
mov esi, dword [esi]
cmp byte [esi + 0xd], 0
jne 0x409512
nop word [eax + eax]
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 8]
cmp byte [eax + 0xd], 0
je 0x4094f5
mov eax, dword [esi + 4]
cmp byte [eax + 0xd], 0
jne 0x4094e0
nop word [eax + eax]
cmp esi, dword [eax + 8]
jne 0x4094e0
mov esi, eax
mov eax, dword [eax + 4]
cmp byte [eax + 0xd], 0
je 0x4094d0
mov esi, eax
jmp 0x40950c
mov edi, dword [esp + 0x10]
mov ecx, edi
call fcn.00408870
mov ebx, dword [esp + 0xc]
jmp 0x4094a0
mov esi, eax
mov ecx, dword [esi]
cmp byte [ecx + 0xd], 0
jne 0x40950c
nop
mov eax, dword [ecx]
mov esi, ecx
mov ecx, eax
cmp byte [eax + 0xd], 0
je 0x409500
cmp byte [esi + 0xd], 0
je 0x4094b0
mov eax, dword [edi]
xorps xmm1, xmm1
mov ecx, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_system]
mov eax, dword [eax + 4]
mov dword [esp + 0x14], eax
movss xmm0, dword [esp + 0x14]
comiss xmm0, xmm1
ja 0x409163
push 0x40e694
call ecx
mov eax, dword [edi + 0x38]
add esp, 4
mov ecx, dword [sym.imp.MSVCP140.dll_class_std::basic_ostream_char__struct_std::char_traits_char___std::cout]
cmp eax, dword [edi + 0x3c]
jl 0x409552
mov edx, str.You_Lose__Your_cafe_has_been_closed_down_due_to_too_many_angry_online_reviews_:_
jmp 0x40956e
mov edx, str.Congrats__You_served_a_total_of__
call fcn.00403760
push dword [edi + 0x34]
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___int_]
mov edx, str.__Customers__See_if_you_can_serve_more_next_time_
mov ecx, eax
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_____]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret