Function at 0x433860
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov esi, ecx
call edi
cmp byte [esi + 0x1319], 0
je 0x433889
mov eax, dword [esi + 0x1320]
mov dword [ebp - 8], eax
test eax, eax
jns 0x433892
mov eax, dword [esi + 0x132c]
mov dword [ebp - 8], eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
mov dword [esi + 0x187c], eax
call ebx
cmp eax, 0xffffffff
je 0x4338b8
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
mov eax, dword [ebp - 8]
add esp, 8
mov byte [esi + 0x23a1], 1
cmp eax, 0xa
ja case.default.0x4338de
jmp dword [eax*4 + 0x4340ac]
call edi
cmp byte [esi + 0x1319], 0
je 0x4338fa
mov edi, dword [esi + 0x1324]
test edi, edi
jns 0x433900
mov edi, dword [esi + 0x1330]
push 0xfffffffffffffff5
mov dword [esi + 0x1880], edi
call ebx
cmp eax, 0xffffffff
je 0x433921
mov dword [ebp - 8], 0x20000
push dword [ebp - 8]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
mov byte [esi + 0x23a1], 1
test edi, edi
jne 0x433946
mov ecx, esi
call fcn.004340e0
lea edx, [esi + 0x1772]
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433951
sub ecx, edi
test ecx, ecx
jle case.default.0x4338de
mov ebx, 0xffffe88e
mov edi, edx
sub ebx, esi
mov esi, edx
nop dword [eax]
movsx eax, byte [edi]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_tolower]
mov ecx, esi
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 0x433987
sub ecx, edx
lea eax, [ebx + edi]
cmp eax, ecx
jl 0x433970
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
cmp byte [esi + 0x1319], 0
je 0x4339b3
mov ebx, dword [esi + 0x1324]
test ebx, ebx
jns 0x4339b9
mov ebx, dword [esi + 0x1330]
push 0xfffffffffffffff5
mov dword [esi + 0x1880], ebx
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x4339de
mov dword [ebp - 8], 0x20000
push dword [ebp - 8]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
sub ebx, 0
je 0x433a68
sub ebx, 1
jne case.default.0x4338de
call edi
mov ecx, dword [str.A_ream_of_paper_containing_500_sheets_is_5_cm_thick.__Approximately_nhow_many_sheets_of_this_type_of_paper_would_there_be_in_a_stack__n7.5_cm_high__n_n_a__250_____b__550_____c__667_____d__750_____e__1250_n_n_1985_AMC_8_6_]
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 0x433a10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433a21
sub ecx, edx
lea edi, [esi + 0x1772]
mov byte [ecx + esi + 0x138a], al
mov ecx, dword [0x45e544]
mov edx, ecx
nop
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi], al
lea edi, [edi + 1]
test al, al
jne 0x433a40
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433a51
sub ecx, edx
mov byte [ecx + esi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
mov ecx, dword [str.A_ream_of_paper_containing_500_sheets_is_5_cm_thick.__Approximately_nhow_many_sheets_of_this_type_of_paper_would_there_be_in_a_stack__n7.5_cm_high__n_n_a__250_____b__550_____c__667_____d__750_____e__1250_n_n_1985_AMC_8_6_]
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 0x433a78
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433a90
sub ecx, edx
lea edi, [esi + 0x1772]
mov byte [ecx + esi + 0x138a], al
mov ecx, dword [0x46018c]
mov edx, ecx
nop
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi], al
lea edi, [edi + 1]
test al, al
jne 0x433ab0
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433ac1
sub ecx, edx
mov byte [ecx + esi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
cmp byte [esi + 0x1319], 0
je 0x433af0
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x433af9
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x433b1a
mov dword [ebp - 8], 0x20000
push dword [ebp - 8]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
cmp dword [ebp - 4], 0
jne case.default.0x4338de
call edi
mov ecx, dword [str.A_ream_of_paper_containing_500_sheets_is_5_cm_thick.__Approximately_nhow_many_sheets_of_this_type_of_paper_would_there_be_in_a_stack__n7.5_cm_high__n_n_a__250_____b__550_____c__667_____d__750_____e__1250_n_n_1985_AMC_8_6_]
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 0x433b47
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433b58
sub ecx, edx
lea edi, [esi + 0x1772]
mov byte [ecx + esi + 0x138a], al
mov ecx, dword [0x46047c]
mov edx, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi], al
lea edi, [edi + 1]
test al, al
jne 0x433b76
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433b87
sub ecx, edx
mov byte [ecx + esi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.004347c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
cmp byte [esi + 0x1319], 0
je 0x433bc4
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x433bcd
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x433bee
mov dword [ebp - 8], 0x20000
push dword [ebp - 8]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
cmp dword [ebp - 4], 0
jne case.default.0x4338de
call edi
mov ecx, 0xd
cdq
idiv ecx
mov ebx, edx
mov edx, esi
mov edi, dword [ebx*4 + 0x460514]
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx + 0x1389], al
test al, al
jne 0x433c24
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x433c37
sub edi, ecx
mov ecx, dword [ebx*4 + 0x4605dc]
mov edx, ecx
mov byte [edi + esi + 0x138a], al
mov edi, esi
sub edi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi + edx + 0x1771], al
test al, al
jne 0x433c54
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433c67
sub ecx, edx
mov byte [ecx + esi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.00434a20
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
cmp byte [esi + 0x1319], 0
je 0x433ca4
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x433cad
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x433cce
mov dword [ebp - 8], 0x20000
push dword [ebp - 8]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
cmp dword [ebp - 4], 0
jne case.default.0x4338de
call edi
mov ecx, 0xd
cdq
idiv ecx
mov ebx, edx
mov edx, esi
mov edi, dword [ebx*4 + 0x461f0c]
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx + 0x1389], al
test al, al
jne 0x433d04
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x433d17
sub edi, ecx
mov ecx, dword [ebx*4 + 0x461bbc]
mov edx, ecx
mov byte [edi + esi + 0x138a], al
mov edi, esi
sub edi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi + edx + 0x1771], al
test al, al
jne 0x433d34
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433d47
sub ecx, edx
mov byte [ecx + esi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
cmp byte [esi + 0x1319], 0
je 0x433d76
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x433d7f
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x433da0
mov dword [ebp - 8], 0x20000
push dword [ebp - 8]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
cmp dword [ebp - 4], 0
jne case.default.0x4338de
call edi
mov ecx, 0xd
cdq
idiv ecx
mov ebx, edx
mov edx, esi
mov edi, dword [ebx*4 + 0x461f40]
mov ecx, edi
sub edx, edi
nop word [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx + 0x1389], al
test al, al
jne 0x433de0
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x433df3
sub edi, ecx
mov ecx, dword [ebx*4 + 0x461f74]
mov edx, ecx
mov byte [edi + esi + 0x138a], al
mov edi, esi
sub edi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi + edx + 0x1771], al
test al, al
jne 0x433e10
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433e23
sub ecx, edx
mov byte [ecx + esi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
cmp byte [esi + 0x1319], 0
je 0x433e52
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x433e5b
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x433e7c
mov dword [ebp - 8], 0x20000
push dword [ebp - 8]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
cmp dword [ebp - 4], 0
jne case.default.0x4338de
call edi
mov ecx, 0xd
cdq
idiv ecx
mov ebx, edx
mov edx, esi
mov edi, dword [ebx*4 + 0x461fdc]
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx + 0x1389], al
test al, al
jne 0x433eb2
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x433ec5
sub edi, ecx
mov ecx, dword [ebx*4 + 0x461fa8]
mov edx, ecx
mov byte [edi + esi + 0x138a], al
mov edi, esi
sub edi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi + edx + 0x1771], al
test al, al
jne 0x433ee2
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433ef5
sub ecx, edx
mov byte [ecx + esi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
cmp byte [esi + 0x1319], 0
je 0x433f24
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x433f2d
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x433f4e
mov dword [ebp - 8], 0x20000
push dword [ebp - 8]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
cmp dword [ebp - 4], 0
jne case.default.0x4338de
call edi
mov ecx, 0xd
cdq
idiv ecx
mov ebx, edx
mov edx, esi
mov edi, dword [ebx*4 + 0x462010]
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx + 0x1389], al
test al, al
jne 0x433f84
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x433f97
sub edi, ecx
mov ecx, dword [ebx*4 + 0x462044]
mov edx, ecx
mov byte [edi + esi + 0x138a], al
mov edi, esi
sub edi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi + edx + 0x1771], al
test al, al
jne 0x433fb4
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433fc7
sub ecx, edx
mov byte [ecx + esi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
cmp byte [esi + 0x1319], 0
je 0x433ff6
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x433fff
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x434020
mov dword [ebp - 8], 0x20000
push dword [ebp - 8]
push eax
mov eax, dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
call eax
push dword [esi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
cmp dword [ebp - 4], 0
jne case.default.0x4338de
call edi
mov ecx, 0xd
cdq
idiv ecx
mov ebx, edx
mov edx, esi
mov edi, dword [ebx*4 + 0x4620ac]
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx + 0x1389], al
test al, al
jne 0x434052
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x434065
sub edi, ecx
mov ecx, dword [ebx*4 + 0x462078]
mov edx, ecx
mov byte [edi + esi + 0x138a], al
mov edi, esi
sub edi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [edi + edx + 0x1771], al
test al, al
jne 0x434082
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x434095
sub ecx, edx
mov byte [ecx + esi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret