Function at 0x40157e
Capabilities:
Execute command

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x60
call sym.___main
mov dword [esp + 0x34], 0
mov dword [esp + 0x5c], 0
jmp 0x40214b
mov dword [esp + 0x58], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x44], 0x64
mov dword [esp + 0x40], 0x64
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], 3
mov dword [esp], 0x406064
call sym._system
mov dword [esp], str.
call sym._puts
mov dword [esp], str._Hit_the_zombie_
call sym._puts
mov dword [esp], str._1__Play_
call sym._puts
mov dword [esp], str._2__Dual_
call sym._puts
mov dword [esp], str._3__Size_
call sym._puts
mov dword [esp], str._4__Exit_
call sym._puts
mov dword [esp], str.
call sym._puts
lea eax, [esp + 0x34]
mov dword [esp + 4], eax
mov dword [esp], 0x406104
call sym._scanf
jmp 0x40167f
mov dword [esp], str.Enter_a_valid_option:
call sym._printf
lea eax, [esp + 0x34]
mov dword [esp + 4], eax
mov dword [esp], 0x406104
call sym._scanf
mov eax, dword [esp + 0x34]
cmp eax, 1
je 0x4016a3
mov eax, dword [esp + 0x34]
cmp eax, 2
je 0x4016a3
mov eax, dword [esp + 0x34]
cmp eax, 3
je 0x4016a3
mov eax, dword [esp + 0x34]
cmp eax, 4
jne 0x40165f
mov eax, dword [esp + 0x34]
cmp eax, 3
jne 0x4016fa
mov dword [esp], 0x406064
call sym._system
mov dword [esp], str.Enter_the_size_of_the_board:
call sym._printf
lea eax, [esp + 0x28]
mov dword [esp + 4], eax
mov dword [esp], 0x406104
call sym._scanf
mov dword [esp], str._nApply_to_which_mode___1_2_:
call sym._printf
lea eax, [esp + 0x34]
mov dword [esp + 4], eax
mov dword [esp], 0x406104
call sym._scanf
jmp 0x40170d
mov eax, dword [esp + 0x34]
cmp eax, 4
jne 0x40170d
mov eax, 0
jmp 0x40215c
mov eax, dword [esp + 0x34]
cmp eax, 2
jne 0x401736
mov dword [esp], str.Enter_win_score:
call sym._printf
lea eax, [esp + 0x2c]
mov dword [esp + 4], eax
mov dword [esp], 0x406104
call sym._scanf
mov dword [esp], 0
call sym._time
mov dword [esp], eax
call sym._srand
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x54], edx
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x50], edx
mov eax, dword [esp + 0x34]
cmp eax, 1
jne 0x401788
mov dword [esp + 0x44], 0x64
mov dword [esp + 0x40], 0x64
jmp case.0x401824.98
mov eax, dword [esp + 0x34]
cmp eax, 2
jne case.0x401824.98
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x40], eax
jmp case.0x401824.98
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call sym._draw
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov dword [esp], str.Score:__d_n
call sym._printf
call sym._getch
mov byte [esp + 0x33], al
movzx eax, byte [esp + 0x33]
movsx eax, al
sub eax, 0x61
cmp eax, 0x16
ja case.0x401824.98
mov eax, dword [eax*4 + 0x4061fc]
jmp eax
cmp dword [esp + 0x48], 0
jle case.0x401824.98
sub dword [esp + 0x48], 1
jmp case.0x401824.98
mov eax, dword [esp + 0x28]
sub eax, 1
cmp eax, dword [esp + 0x48]
jle case.0x401824.98
add dword [esp + 0x48], 1
jmp case.0x401824.98
cmp dword [esp + 0x4c], 0
jle case.0x401824.98
sub dword [esp + 0x4c], 1
jmp case.0x401824.98
mov eax, dword [esp + 0x28]
sub eax, 1
cmp eax, dword [esp + 0x4c]
jle case.0x401824.98
add dword [esp + 0x4c], 1
jmp case.0x401824.98
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x54]
jne 0x4018c4
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x50]
jne 0x4018c4
add dword [esp + 0x58], 1
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x54], edx
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x50], edx
jmp 0x4019e1
mov eax, dword [esp + 0x58]
cmp eax, dword [esp + 0x5c]
jle 0x4018d6
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov dword [esp], 0xa
call sym._putchar
mov dword [esp], str._Game_Over__
call sym._puts
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov dword [esp], str.Your_score:__d_n
call sym._printf
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov dword [esp], str.High_Score:__d_n
call sym._printf
mov dword [esp], str.Continue___y_n_m_:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
jmp 0x401958
mov dword [esp], str.Enter_a_valid_option:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
movzx eax, byte [esp + 0x33]
cmp al, 0x79
je 0x401973
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
je 0x401973
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x401938
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
jne 0x401986
mov eax, 0
jmp 0x40215c
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x40199c
mov dword [esp + 0x34], 0
jmp case.0x401824.98
movzx eax, byte [esp + 0x33]
cmp al, 0x79
jne case.0x401824.98
mov dword [esp + 0x58], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x54], edx
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x50], edx
jmp case.0x401824.98
mov dword [esp], 0xa
call sym._putchar
mov dword [esp], str._Game_Over__
call sym._puts
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov dword [esp], str.Your_score:__d_n
call sym._printf
mov eax, dword [esp + 0x5c]
mov dword [esp + 4], eax
mov dword [esp], str.High_Score:__d_n
call sym._printf
mov dword [esp], str.Continue___y_n_m_:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
jmp 0x401a68
mov dword [esp], str.Enter_a_valid_option:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
movzx eax, byte [esp + 0x33]
cmp al, 0x79
je 0x401a83
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
je 0x401a83
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x401a48
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
jne 0x401a96
mov eax, 0
jmp 0x40215c
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x401aa9
mov dword [esp + 0x34], 0
jmp 0x401aea
movzx eax, byte [esp + 0x33]
cmp al, 0x79
jne 0x401aea
mov dword [esp + 0x58], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x54], edx
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x50], edx
nop
mov eax, dword [esp + 0x34]
cmp eax, 1
je 0x4017b0
jmp case.0x401da1.60
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call sym._draw
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], str.P0_Score:__d_n
call sym._printf
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov dword [esp], str.P1_Score:__d_n
call sym._printf
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x3c], eax
jne 0x401c75
mov dword [esp], 0x406064
call sym._system
mov dword [esp], str.P0_Wins_
call sym._puts
mov dword [esp], str.Continue___y_n_m_:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
jmp 0x401bc9
mov dword [esp], str.Enter_a_valid_option:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
movzx eax, byte [esp + 0x33]
cmp al, 0x79
je 0x401be4
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
je 0x401be4
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x401ba9
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
jne 0x401bf7
mov eax, 0
jmp 0x40215c
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x401c0d
mov dword [esp + 0x34], 0
jmp 0x401d7d
movzx eax, byte [esp + 0x33]
cmp al, 0x79
jne 0x401d7d
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x40], eax
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x54], edx
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x50], edx
jmp 0x401d7d
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x38], eax
jne 0x401d7d
mov dword [esp], 0x406064
call sym._system
mov dword [esp], str.P1_Wins_
call sym._puts
mov dword [esp], str.Continue___y_n_m_:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
jmp 0x401cdd
mov dword [esp], str.Enter_a_valid_option:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
movzx eax, byte [esp + 0x33]
cmp al, 0x79
je 0x401cf8
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
je 0x401cf8
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x401cbd
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
jne 0x401d0b
mov eax, 0
jmp 0x40215c
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x401d1e
mov dword [esp + 0x34], 0
jmp 0x401d7d
movzx eax, byte [esp + 0x33]
cmp al, 0x79
jne 0x401d7d
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x40], eax
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x54], edx
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x50], edx
call sym._getch
mov byte [esp + 0x33], al
movzx eax, byte [esp + 0x33]
movsx eax, al
sub eax, 0x3b
cmp eax, 0x3c
ja case.0x401da1.60
mov eax, dword [eax*4 + 0x406258]
jmp eax
cmp dword [esp + 0x48], 0
jle case.0x401da1.60
sub dword [esp + 0x48], 1
jmp case.0x401da1.60
mov eax, dword [esp + 0x28]
sub eax, 1
cmp eax, dword [esp + 0x48]
jle case.0x401da1.60
add dword [esp + 0x48], 1
jmp case.0x401da1.60
cmp dword [esp + 0x4c], 0
jle case.0x401da1.60
sub dword [esp + 0x4c], 1
jmp case.0x401da1.60
mov eax, dword [esp + 0x28]
sub eax, 1
cmp eax, dword [esp + 0x4c]
jle case.0x401da1.60
add dword [esp + 0x4c], 1
jmp case.0x401da1.60
mov eax, dword [esp + 0x4c]
cmp eax, dword [esp + 0x54]
jne 0x401e3e
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x50]
jne 0x401e3e
add dword [esp + 0x3c], 1
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x54], edx
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x50], edx
jmp 0x401e43
add dword [esp + 0x38], 1
jmp case.0x401da1.60
mov dword [esp], 0x406064
call sym._system
mov dword [esp], str.Game_Over_
call sym._puts
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], str.P0_Score:__d_n
call sym._printf
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov dword [esp], str.P1_Score:__d_n
call sym._printf
mov dword [esp], str.Continue___y_n_m_:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
jmp 0x401eca
mov dword [esp], str.Enter_a_valid_option:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
movzx eax, byte [esp + 0x33]
cmp al, 0x79
je 0x401ee5
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
je 0x401ee5
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x401eaa
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
jne 0x401ef8
mov eax, 0
jmp 0x40215c
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x401f0e
mov dword [esp + 0x34], 0
jmp case.0x401da1.60
movzx eax, byte [esp + 0x33]
cmp al, 0x79
jne case.0x401da1.60
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x40], eax
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x54], edx
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x50], edx
jmp case.0x401da1.60
cmp dword [esp + 0x40], 0
jle case.0x401da1.60
sub dword [esp + 0x40], 1
jmp case.0x401da1.60
mov eax, dword [esp + 0x28]
sub eax, 1
cmp eax, dword [esp + 0x40]
jle case.0x401da1.60
add dword [esp + 0x40], 1
jmp case.0x401da1.60
cmp dword [esp + 0x44], 0
jle case.0x401da1.60
sub dword [esp + 0x44], 1
jmp case.0x401da1.60
mov eax, dword [esp + 0x28]
sub eax, 1
cmp eax, dword [esp + 0x44]
jle case.0x401da1.60
add dword [esp + 0x44], 1
jmp case.0x401da1.60
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x54]
jne 0x402011
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x50]
jne 0x402011
add dword [esp + 0x38], 1
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x54], edx
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x50], edx
jmp 0x402016
add dword [esp + 0x3c], 1
jmp case.0x401da1.60
mov dword [esp], 0x406064
call sym._system
mov dword [esp], str.Game_Over_
call sym._puts
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov dword [esp], str.P0_Score:__d_n
call sym._printf
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
mov dword [esp], str.P1_Score:__d_n
call sym._printf
mov dword [esp], str.Continue___y_n_m_:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
jmp 0x40209d
mov dword [esp], str.Enter_a_valid_option:
call sym._printf
lea eax, [esp + 0x33]
mov dword [esp + 4], eax
mov dword [esp], 0x4061bc
call sym._scanf
movzx eax, byte [esp + 0x33]
cmp al, 0x79
je 0x4020b8
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
je 0x4020b8
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x40207d
movzx eax, byte [esp + 0x33]
cmp al, 0x6e
jne 0x4020cb
mov eax, 0
jmp 0x40215c
movzx eax, byte [esp + 0x33]
cmp al, 0x6d
jne 0x4020de
mov dword [esp + 0x34], 0
jmp 0x40213d
movzx eax, byte [esp + 0x33]
cmp al, 0x79
jne 0x40213d
mov dword [esp + 0x3c], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
sub eax, 1
mov dword [esp + 0x40], eax
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x54], edx
call sym._rand
mov ecx, dword [esp + 0x28]
cdq
idiv ecx
mov dword [esp + 0x50], edx
nop
mov eax, dword [esp + 0x34]
cmp eax, 2
je 0x401afd
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4015a1
mov eax, 0
leave
ret