Function at 0x431350
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1bc
mov eax, dword [0x47700c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov ebx, ecx
call edi
call edi
xorps xmm0, xmm0
mov dword [ebp - 0x178], 0
movups xmmword [ebp - 0x198], xmm0
mov dword [ebp - 0x174], 0
mov esi, 1
movups xmmword [ebp - 0x188], xmm0
call edi
cdq
mov ecx, 5
idiv ecx
test edx, edx
jle 0x4313b7
nop word [eax + eax]
add esi, esi
sub edx, 1
jne 0x4313b0
call edi
and eax, 0x80000003
jns 0x4313c5
dec eax
or eax, 0xfffffffc
inc eax
test eax, eax
jle 0x4313d8
nop dword [eax]
lea esi, [esi + esi*2]
sub eax, 1
jne 0x4313d0
call edi
cdq
mov ecx, 3
idiv ecx
test edx, edx
jle 0x4313ee
lea esi, [esi + esi*4]
sub edx, 1
jne 0x4313e6
call edi
cdq
mov ecx, 3
idiv ecx
test edx, edx
jle 0x431410
nop dword [eax]
mov eax, esi
lea esi, [eax*8]
sub esi, eax
sub edx, 1
jne 0x431400
call edi
and eax, 0x80000001
jns 0x43141e
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jle 0x43142a
imul esi, esi, 0xb
sub eax, 1
jne 0x431422
call edi
and eax, 0x80000001
jns 0x431438
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jle 0x431448
nop dword [eax]
imul esi, esi, 0xd
sub eax, 1
jne 0x431440
call edi
mov ecx, eax
and ecx, 0x80000001
jns 0x431459
dec ecx
or ecx, 0xfffffffe
inc ecx
test ecx, ecx
jle 0x43146c
nop dword [eax]
mov eax, esi
shl esi, 4
add esi, eax
sub ecx, 1
jne 0x431460
call edi
and eax, 0x80000001
jns 0x43147a
dec eax
or eax, 0xfffffffe
inc eax
test eax, eax
jle 0x431488
nop
imul esi, esi, 0x13
sub eax, 1
jne 0x431480
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x1a0], eax
call edi
cmp eax, 0xffffffff
je 0x4314b6
mov dword [ebp - 0x1a0], 0x60007
push dword [ebp - 0x1a0]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push esi
push str.Factor____d_n_n
call fcn.00401070
push 0x78
lea eax, [ebp - 0x80]
mov byte [ebp - 0x199], 0
push 0
push eax
mov byte [ebp - 0x19a], 1
call sub.VCRUNTIME140.dll_memset
add esp, 0x14
lea eax, [ebp - 0x170]
push 0x78
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [ebp - 0x1a0], 0
nop dword [eax]
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x1a8], eax
call edi
cmp eax, 0xffffffff
je 0x431528
mov dword [ebp - 0x1a8], 0x60007
push dword [ebp - 0x1a8]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push str.
call fcn.00401070
add esp, 4
xor eax, eax
mov dword [ebp - 0x1ac], eax
push 0xfffffffffffffff5
call edi
cmp eax, 0xffffffff
je 0x43155d
mov dword [ebp - 0x1ac], 0x80007
push dword [ebp - 0x1ac]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push str.
call fcn.00401070
add esp, 4
xor eax, eax
mov dword [ebp - 0x1b0], eax
push 0xfffffffffffffff5
call edi
cmp eax, 0xffffffff
je 0x431592
mov dword [ebp - 0x1b0], 0xa0007
push dword [ebp - 0x1b0]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push str.
call fcn.00401070
add esp, 4
xor eax, eax
mov dword [ebp - 0x1b4], eax
push 0xfffffffffffffff5
call edi
cmp eax, 0xffffffff
je 0x4315c7
mov dword [ebp - 0x1b4], 0x60007
push dword [ebp - 0x1b4]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
cmp byte [ebp - 0x19a], 0
push esi
je 0x4315e0
push str.No_factors_yet...___d
call fcn.00401070
add esp, 8
jmp 0x4315f1
lea eax, [ebp - 0x80]
push eax
push str.___s__.....______d
call fcn.00401070
add esp, 0xc
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x1b8], eax
call edi
cmp eax, 0xffffffff
je 0x431619
mov dword [ebp - 0x1b8], 0x80007
push dword [ebp - 0x1b8]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov eax, dword [ebp - 0x1a0]
push dword [eax + 0x45d120]
push str.Does_it_contain____d____y_or_n_
call fcn.00401070
add esp, 8
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__kbhit]
test eax, eax
jne 0x431655
nop dword [eax]
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
call dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__kbhit]
test eax, eax
je 0x431640
call dword [sym.imp.api_ms_win_crt_conio_l1_1_0.dll__getch]
cmp al, 0x6e
je 0x4317c0
cmp al, 0x71
je 0x43183d
cmp al, 0x79
jne 0x431822
mov ecx, dword [ebp - 0x1a0]
mov eax, esi
cdq
idiv dword [ecx + 0x45d120]
test edx, edx
je 0x43169c
mov al, 1
mov word [ebx + 0x1334], 1
mov byte [ebp - 0x199], al
jmp 0x431828
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x1bc], eax
call edi
cmp eax, 0xffffffff
je 0x4316c4
mov dword [ebp - 0x1bc], 0xa0007
push dword [ebp - 0x1bc]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push str.Correct.__What_is_the_quotient_
call fcn.00401070
add esp, 4
lea eax, [ebp - 0xf8]
push 0xa
push eax
push 0x439450
call fcn.00427720
add esp, 0xc
mov byte [ebp - 0xee], 0
cmp byte [ebp - 0xf8], 0x71
je 0x43183d
lea eax, [ebp - 0xf8]
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov ecx, eax
add esp, 4
mov eax, dword [ebp - 0x1a0]
mov edi, dword [eax + 0x45d120]
mov eax, esi
cdq
idiv edi
mov esi, eax
cmp ecx, esi
je 0x431740
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov al, 1
mov word [ebx + 0x1334], 1
mov byte [ebp - 0x199], al
jmp 0x431828
cmp byte [ebp - 0x19a], 0
je 0x43177a
push edi
lea eax, [ebp - 0x80]
push 0x439470
push eax
call fcn.004011b0
mov eax, dword [ebp - 0x1a0]
add esp, 0xc
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov byte [ebp - 0x19a], 0
inc dword [ebp + eax - 0x198]
jmp 0x431822
xor ecx, ecx
nop dword [eax]
mov al, byte [ebp + ecx - 0x80]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x171], al
test al, al
jne 0x431780
push edi
lea eax, [ebp - 0x170]
push eax
lea eax, [ebp - 0x80]
push str._s___d
push eax
call fcn.004011b0
mov eax, dword [ebp - 0x1a0]
add esp, 0x10
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
inc dword [ebp + eax - 0x198]
jmp 0x431822
mov ecx, dword [ebp - 0x1a0]
mov eax, esi
cdq
idiv dword [ecx + 0x45d120]
test edx, edx
jne 0x4317e6
mov al, 1
mov word [ebx + 0x1334], 1
mov byte [ebp - 0x199], al
jmp 0x431828
xor eax, eax
push 0xfffffffffffffff5
mov dword [ebp - 0x1a4], eax
call edi
cmp eax, 0xffffffff
je 0x43180e
mov dword [ebp - 0x1a4], 0xa0007
push dword [ebp - 0x1a4]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push str.Correct.
call fcn.00401070
add esp, 4
add dword [ebp - 0x1a0], 4
mov al, byte [ebp - 0x199]
cmp esi, 1
je 0x431846
test al, al
je 0x431500
mov al, byte [ebx + 0x1335]
jmp 0x431851
mov byte [ebx + 0x1318], 1
jmp 0x43188d
mov word [ebx + 0x1334], 0x101
mov al, 1
test al, al
jne 0x43188d
push 0xfffffffffffffff5
call edi
cmp eax, 0xffffffff
je 0x431875
mov dword [ebp - 0x1a4], 0xa0007
push dword [ebp - 0x1a4]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push str.Not_correct.
call fcn.00401070
add esp, 4
push 0x7d0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 4]
mov al, 1
pop edi
pop esi
mov byte [ebx + 0x1334], al
xor ecx, ebp
pop ebx
call fcn.0043574b
mov esp, ebp
pop ebp
ret