Function at 0x429ca0
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0xc], esi
cmp byte [esi + 0x1334], 0
jne 0x429f8c
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x429cd9
mov dword [ebp - 4], 0x60000
push dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
lea eax, [esi + 0x138a]
push eax
push 0x463d20
call fcn.00401070
lea ebx, [esi + 0x1358]
push 0x31
push ebx
push 0x439450
mov dword [ebp - 0x10], ebx
call fcn.00427720
add esp, 0x14
mov byte [esi + 0x1389], 0
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__kbhit]
test eax, eax
je 0x429d1a
call dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
cmp byte [esi + 0x23a1], 0
je 0x429d9d
mov edi, ebx
mov ebx, 0x31
nop word [eax + eax]
movsx eax, byte [edi]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
add esp, 4
mov byte [edi], al
lea edi, [edi + 1]
sub ebx, 1
jne 0x429d30
lea edi, [esi + 0x1772]
mov ecx, edi
lea ebx, [esi + 0x1358]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x429d58
sub ecx, edx
je 0x429d9d
mov eax, 0xffffe88e
mov ebx, edi
sub eax, esi
mov esi, eax
nop
movsx eax, byte [edi]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov ecx, ebx
mov byte [edi], al
add esp, 4
lea edi, [edi + 1]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x429d87
sub ecx, edx
lea eax, [esi + edi]
cmp eax, ecx
jb 0x429d70
mov esi, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x10]
mov ecx, str.qp_.
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x429dc4
test dl, dl
je 0x429dc0
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x429dc4
add eax, 2
add ecx, 2
test dl, dl
jne 0x429da4
xor eax, eax
jmp 0x429dc9
sbb eax, eax
or eax, 1
test eax, eax
jne 0x429dde
pop edi
mov byte [esi + 0x1318], 1
or eax, 0xffffffff
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x463d28
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x429e05
test dl, dl
je 0x429e01
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x429e05
add eax, 2
add ecx, 2
test dl, dl
jne 0x429de5
xor eax, eax
jmp 0x429e0a
sbb eax, eax
or eax, 1
test eax, eax
jne 0x429e21
pop edi
mov byte [esi + 0x21dc], 1
mov eax, 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x463d2c
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x429e48
test dl, dl
je 0x429e44
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x429e48
add eax, 2
add ecx, 2
test dl, dl
jne 0x429e28
xor eax, eax
jmp 0x429e4d
sbb eax, eax
or eax, 1
test eax, eax
jne 0x429e5d
pop edi
pop esi
mov eax, 2
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x463d30
mov eax, ebx
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x429e84
test dl, dl
je 0x429e80
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x429e84
add eax, 2
add ecx, 2
test dl, dl
jne 0x429e64
xor eax, eax
jmp 0x429e89
sbb eax, eax
or eax, 1
lea edx, [esi + 0x1772]
test eax, eax
jne 0x429ed3
push edx
push 0x463d34
call fcn.00401070
push str.Press_any_key_n
call fcn.00401070
mov ebx, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__kbhit]
add esp, 0xc
call ebx
test eax, eax
jne 0x429f5d
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xc8
call edi
call ebx
test eax, eax
je 0x429ec1
jmp 0x429f5d
mov eax, edx
mov cl, byte [ebx]
cmp cl, byte [eax]
jne 0x429ef5
test cl, cl
je 0x429ef1
mov cl, byte [ebx + 1]
cmp cl, byte [eax + 1]
jne 0x429ef5
add ebx, 2
add eax, 2
test cl, cl
jne 0x429ed5
xor eax, eax
jmp 0x429efa
sbb eax, eax
or eax, 1
test eax, eax
jne 0x429f21
mov eax, dword [esi + 0x1314]
inc dword [esi + 0x134c]
pop edi
inc dword [esi + eax*4 + 0x1224]
xor eax, eax
mov byte [esi + 0x1335], 1
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push edx
push str._nAnswer_is____s_n
call fcn.00401070
push str.Press_any_key_n
call fcn.00401070
mov ebx, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__kbhit]
add esp, 0xc
call ebx
test eax, eax
jne 0x429f5d
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
nop dword [eax + eax]
push 0xc8
call edi
call ebx
test eax, eax
je 0x429f50
mov eax, dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
call eax
movss xmm0, dword [esi + 0x1348]
xor eax, eax
mulss xmm0, dword [0x4728f4]
pop edi
mov byte [esi + 0x1340], 1
movss dword [esi + 0x133c], xmm0
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x1335], 0
je 0x429fa8
mov eax, dword [esi + 0x1314]
inc dword [esi + 0x134c]
inc dword [esi + eax*4 + 0x1224]
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret