Function at 0x432f10
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
push esi
push edi
mov esi, ecx
call ebx
cmp byte [esi + 0x1319], 0
je 0x432f34
mov edi, dword [esi + 0x1320]
test edi, edi
jns 0x432f3a
mov edi, dword [esi + 0x132c]
push 0xfffffffffffffff5
mov dword [esi + 0x187c], edi
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x432f5e
mov dword [ebp - 4], 0x10000
push dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [esi + 0x187c]
push 0x439470
call fcn.00401070
add esp, 8
sub edi, 0
je 0x433048
sub edi, 1
jne 0x433101
call ebx
cmp byte [esi + 0x1319], 0
je 0x432f98
mov edi, dword [esi + 0x1324]
test edi, edi
jns 0x432f9e
mov edi, dword [esi + 0x1330]
mov eax, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
mov dword [esi + 0x1880], edi
call eax
cmp eax, 0xffffffff
je 0x432fc4
mov dword [ebp - 4], 0x20000
push dword [ebp - 4]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
test edi, edi
jne 0x433101
call ebx
mov ecx, dword [str.Four_people_ran_a_race.__If_Joe_finished_the_race_before_Mary__Ashley_nfinished_before_Richard__and_Richard_finished_between_Mary_and_Ashley___nwhat_place_did_Richard_finish___Enter_a_number_from_1_to_4._]
lea edi, [esi + 0x138a]
mov edx, ecx
nop
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi], al
lea edi, [edi + 1]
test al, al
jne 0x432ff0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433001
sub ecx, edx
lea edi, [esi + 0x1772]
mov byte [ecx + esi + 0x138a], al
mov ecx, dword [0x45d0ac]
mov edx, ecx
nop
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi], al
lea edi, [edi + 1]
test al, al
jne 0x433020
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433031
sub ecx, edx
mov byte [ecx + esi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call ebx
cmp byte [esi + 0x1319], 0
je 0x43305d
mov edi, dword [esi + 0x1324]
test edi, edi
jns 0x433063
mov edi, dword [esi + 0x1330]
mov eax, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
mov dword [esi + 0x1880], edi
call eax
cmp eax, 0xffffffff
je 0x433089
mov dword [ebp - 4], 0x20000
push dword [ebp - 4]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
test edi, edi
jne 0x433101
call ebx
mov ecx, dword [str.If_it_is_brown__then_it_is_a_dog._n_nWhich_of_these_statements_is_logically_equivalent__n_n_A__If_it_is_a_dog__then_it_is_brown._n_B__If_it_not_brown__then_it_is_not_a_dog._n_C__If_it_is_not_a_dog__then_it_is_not_brown._n_D__If_it_is_a_dog__then_it_is_not_brown._n_E__None_of_the_above.]
lea edi, [esi + 0x138a]
mov edx, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi], al
lea edi, [edi + 1]
test al, al
jne 0x4330b0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4330c1
sub ecx, edx
lea edi, [esi + 0x1772]
mov byte [ecx + esi + 0x138a], al
mov ecx, dword [0x45cb94]
mov edx, ecx
nop
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi], al
lea edi, [edi + 1]
test al, al
jne 0x4330e0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4330f1
sub ecx, edx
mov byte [ecx + esi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret