Function at 0x4028ea
Capabilities:
Execute command

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x40
mov dword [rbp + 0x10], ecx
mov dword [rbp + 0x18], edx
mov dword [rbp - 4], 0
mov dword [rbp - 8], 0
mov dword [rbp - 0xc], 0
mov byte [rbp - 0xe], 0
cmp byte [rbp - 0xd], 0x1b
je 0x4030ac
mov eax, dword [0x004ebbb4]
test eax, eax
jle 0x4030ac
mov eax, dword [0x004ebbb0]
test eax, eax
jle 0x4030ac
cmp byte [rbp - 0xe], 0
je 0x402941
mov byte [rbp - 0xe], 0
mov eax, dword [rbp + 0x18]
mov edx, eax
mov ecx, dword [rbp + 0x10]
call dbg.Mapa(int, int)
lea rcx, [0x004eb620]
call dbg.void MapState<15ull>(coord (&) [15ull])
mov eax, dword [rbp + 0x18]
mov edx, eax
mov ecx, dword [rbp + 0x10]
call dbg.MapaPlayer(int, int)
lea rcx, [0x004eb680]
call dbg.void MapPlayerState<15ull>(coord (&) [15ull])
mov edx, 0x19
mov ecx, 5
call dbg.gxy(int, int)
lea rdx, str.barcos:
mov rcx, qword [0x004c3650]
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 eax, dword [0x004ebbb0]
mov edx, eax
call method.std::ostream.operator___int_
mov edx, 0x19
mov ecx, 0x14
call dbg.gxy(int, int)
lea rdx, str.enemigos:
mov rcx, qword [0x004c3650]
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 eax, dword [0x004ebbb4]
mov edx, eax
call method.std::ostream.operator___int_
mov edx, 0x19
mov ecx, 0x23
call dbg.gxy(int, int)
lea rdx, str.turnos:
mov rcx, qword [0x004c3650]
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 eax, dword [rbp - 0xc]
lea edx, [rax + 1]
mov dword [rbp - 0xc], edx
mov edx, eax
call method.std::ostream.operator___int_
mov eax, dword [0x004ebbb0]
test eax, eax
jle 0x402c43
mov edx, 0x16
mov ecx, 5
call dbg.gxy(int, int)
lea rdx, str.:__
mov rcx, qword [0x004c3650]
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 [sym.imp.msvcrt.dll__getch]
call rax
mov byte [rbp - 0xd], al
cmp byte [rbp - 0xd], 0x1b
je 0x402c16
movsx eax, byte [rbp - 0xd]
mov edx, eax
mov rcx, qword [0x004c3650]
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_
movsx edx, byte [rbp - 0xd]
mov eax, dword [rbp + 0x18]
mov ecx, eax
call dbg.mpy(int, char)
mov rax, qword [sym.imp.msvcrt.dll__getch]
call rax
mov byte [rbp - 0xd], al
cmp byte [rbp - 0xd], 0x1b
jne 0x402ac5
mov byte [rbp - 0xe], 1
mov edx, 0x16
mov ecx, 9
call dbg.gxy(int, int)
lea rdx, str.presiona_nuevamente_Esc_para_salir...
mov rcx, qword [0x004c3650]
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 [sym.imp.msvcrt.dll__getch]
call rax
mov byte [rbp - 0xd], al
cmp byte [rbp - 0xd], 0x1b
jne 0x402c43
jmp 0x4030ac
mov edx, 0x16
mov ecx, 0xa
call dbg.gxy(int, int)
movsx eax, byte [rbp - 0xd]
mov edx, eax
mov rcx, qword [0x004c3650]
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_
movsx eax, byte [rbp - 0xd]
mov edx, eax
mov ecx, dword [rbp + 0x10]
call dbg.mpx(int, char)
movzx eax, word [0x004eb5fc]
cwde
movzx edx, word [0x004eb5fa]
movsx edx, dx
movsxd rcx, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rcx
lea rdx, [rax*4]
lea rax, [0x004eb6e0]
mov eax, dword [rdx + rax]
cmp eax, 1
jne 0x402ba4
movzx eax, word [0x004eb5fc]
cwde
movzx edx, word [0x004eb5fa]
movsx edx, dx
movsxd rcx, edx
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rcx
lea rdx, [rax*4]
lea rax, [0x004eb6e0]
mov dword [rdx + rax], 0
mov eax, dword [rbp - 4]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb620]
mov word [rdx + rax], 2
mov eax, dword [0x004ebbb4]
sub eax, 1
mov dword [0x004ebbb4], eax
jmp 0x402bc6
mov eax, dword [rbp - 4]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb620]
mov word [rdx + rax], 1
movzx ecx, word [0x004eb5fa]
mov eax, dword [rbp - 4]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb622]
mov word [rdx + rax], cx
movzx ecx, word [0x004eb5fc]
mov eax, dword [rbp - 4]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb624]
mov word [rdx + rax], cx
jmp 0x402c43
mov byte [rbp - 0xe], 1
lea rdx, str.presiona_nuevamente_Esc_para_salir...
mov rcx, qword [0x004c3650]
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 [sym.imp.msvcrt.dll__getch]
call rax
mov byte [rbp - 0xd], al
cmp byte [rbp - 0xd], 0x1b
je 0x4030ab
mov rax, qword [sym.imp.msvcrt.dll__getch]
call rax
movzx eax, byte [rbp - 0xe]
xor eax, 1
test al, al
je 0x402c79
mov edx, 0x16
mov ecx, 9
call dbg.gxy(int, int)
lea rdx, str.esperando_jugador_2__bot_...
mov rcx, qword [0x004c3650]
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 eax, dword [0x004ebbb4]
test eax, eax
jle 0x403078
movzx eax, byte [rbp - 0xe]
xor eax, 1
test al, al
je 0x403078
movzx eax, byte [0x004ebbb8]
test al, al
je 0x402ed8
call sym.rand
cdq
idiv dword [rbp + 0x10]
mov dword [rbp - 0x14], edx
call sym.rand
cdq
idiv dword [rbp + 0x18]
mov dword [rbp - 0x18], edx
mov eax, dword [rbp - 0x14]
movsxd rcx, eax
mov eax, dword [rbp - 0x18]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rcx
lea rdx, [rax*4]
lea rax, [0x004eb880]
mov eax, dword [rdx + rax]
cmp eax, 1
jne 0x402d0a
call sym.rand
cdq
idiv dword [rbp + 0x10]
mov dword [rbp - 0x14], edx
call sym.rand
cdq
idiv dword [rbp + 0x18]
mov dword [rbp - 0x18], edx
jmp 0x402cbd
mov eax, dword [rbp - 0x14]
movsxd rcx, eax
mov eax, dword [rbp - 0x18]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rcx
lea rdx, [rax*4]
lea rax, [0x004eb880]
mov dword [rdx + rax], 1
mov eax, dword [rbp - 0x18]
mov dword [rbp - 0x1c], eax
mov edx, dword [rbp - 0x1c]
mov eax, dword [rbp + 0x18]
mov ecx, eax
call dbg.mpyb(int, int)
mov ecx, 0x12c
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov eax, dword [rbp - 0x14]
mov dword [rbp - 0x20], eax
mov eax, dword [rbp - 0x20]
mov edx, eax
mov ecx, dword [rbp + 0x10]
call dbg.mpxb(int, int)
mov ecx, 0x12c
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov eax, dword [rbp - 0x20]
movsxd rcx, eax
mov eax, dword [rbp - 0x1c]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rcx
lea rdx, [rax*4]
lea rax, [0x004eba20]
mov eax, dword [rdx + rax]
cmp eax, 1
jne 0x402e67
mov eax, dword [rbp - 0x20]
movsxd rcx, eax
mov eax, dword [rbp - 0x1c]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rcx
lea rdx, [rax*4]
lea rax, [0x004eba20]
mov dword [rdx + rax], 0
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb680]
mov word [rdx + rax], 2
mov eax, dword [rbp - 0x20]
mov ecx, eax
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb682]
mov word [rdx + rax], cx
mov eax, dword [rbp - 0x1c]
mov ecx, eax
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb684]
mov word [rdx + rax], cx
mov eax, dword [0x004ebbb0]
sub eax, 1
mov dword [0x004ebbb0], eax
jmp 0x403078
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb680]
mov word [rdx + rax], 1
mov eax, dword [rbp - 0x20]
mov ecx, eax
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb682]
mov word [rdx + rax], cx
mov eax, dword [rbp - 0x1c]
mov ecx, eax
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb684]
mov word [rdx + rax], cx
jmp 0x403078
call sym.rand
cdq
idiv dword [rbp + 0x18]
mov dword [rbp - 0x1c], edx
mov edx, dword [rbp - 0x1c]
mov eax, dword [rbp + 0x18]
mov ecx, eax
call dbg.mpyb(int, int)
mov ecx, 0x1f4
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
call sym.rand
cdq
idiv dword [rbp + 0x10]
mov dword [rbp - 0x20], edx
mov eax, dword [rbp - 0x20]
mov edx, eax
mov ecx, dword [rbp + 0x10]
call dbg.mpxb(int, int)
mov ecx, 0x1f4
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
mov eax, dword [rbp - 0x20]
movsxd rcx, eax
mov eax, dword [rbp - 0x1c]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rcx
lea rdx, [rax*4]
lea rax, [0x004eba20]
mov eax, dword [rdx + rax]
cmp eax, 1
jne 0x40300c
mov eax, dword [rbp - 0x20]
movsxd rcx, eax
mov eax, dword [rbp - 0x1c]
movsxd rdx, eax
mov rax, rdx
shl rax, 2
add rax, rdx
add rax, rax
add rax, rcx
lea rdx, [rax*4]
lea rax, [0x004eba20]
mov dword [rdx + rax], 0
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb680]
mov word [rdx + rax], 2
mov eax, dword [rbp - 0x20]
mov ecx, eax
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb682]
mov word [rdx + rax], cx
mov eax, dword [rbp - 0x1c]
mov ecx, eax
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb684]
mov word [rdx + rax], cx
mov eax, dword [0x004ebbb0]
sub eax, 1
mov dword [0x004ebbb0], eax
jmp 0x403078
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb680]
mov word [rdx + rax], 1
mov eax, dword [rbp - 0x20]
mov ecx, eax
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb682]
mov word [rdx + rax], cx
mov eax, dword [rbp - 0x1c]
mov ecx, eax
mov eax, dword [rbp - 8]
movsxd rdx, eax
mov rax, rdx
add rax, rax
add rax, rdx
add rax, rax
mov rdx, rax
lea rax, [0x004eb684]
mov word [rdx + rax], cx
add dword [rbp - 4], 1
add dword [rbp - 8], 1
cmp dword [rbp - 4], 0xe
jle 0x40308d
mov dword [rbp - 4], 0
cmp dword [rbp - 8], 0xe
jle 0x40309a
mov dword [rbp - 8], 0
lea rcx, [0x004be008]
call sym.system
jmp 0x402911
nop
lea rcx, [0x004be008]
call sym.system
mov eax, dword [0x004ebbb0]
test eax, eax
jle 0x4030ea
mov eax, dword [0x004ebbb4]
test eax, eax
jg 0x4030ea
lea rdx, str.__gana_jugador__
mov rcx, qword [0x004c3650]
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 [sym.imp.msvcrt.dll__getch]
call rax
jmp 0x40312f
cmp byte [rbp - 0xd], 0x1b
jne 0x403113
lea rdx, str.abortando...
mov rcx, qword [0x004c3650]
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 ecx, 0x1f4
mov rax, qword [sym.imp.KERNEL32.dll_Sleep]
call rax
jmp 0x40312f
lea rdx, str.__gana_bot__
mov rcx, qword [0x004c3650]
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 [sym.imp.msvcrt.dll__getch]
call rax
lea rcx, [0x004be008]
call sym.system
call dbg.Menu()
nop
add rsp, 0x40
pop rbp
ret