Function at 0x42ec30
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
push edi
mov edi, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov dword [ebp - 0xc], esi
call edi
cmp byte [esi + 0x1319], 0
je 0x42ec5c
mov eax, dword [esi + 0x1320]
mov dword [ebp - 8], eax
test eax, eax
jns 0x42ec65
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 0x42ec8b
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
cmp eax, 0xa
ja case.default.0x42ef43
jmp dword [eax*4 + 0x42f158]
call edi
cmp byte [esi + 0x1319], 0
je 0x42ecc6
mov edi, dword [esi + 0x1324]
test edi, edi
jns 0x42eccc
mov edi, dword [esi + 0x1330]
push 0xfffffffffffffff5
mov dword [esi + 0x1880], edi
call ebx
cmp eax, 0xffffffff
je 0x42eced
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 edi, 0
je 0x42ed2f
sub edi, 1
je 0x42ed21
sub edi, 1
jne case.default.0x42ef43
mov ecx, esi
call fcn.0042f730
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.0042f540
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.0042f1c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.0042f920
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
cmp byte [esi + 0x1319], 0
je 0x42ed60
mov ebx, dword [esi + 0x1324]
test ebx, ebx
jns 0x42ed66
mov ebx, dword [esi + 0x1330]
mov eax, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
mov dword [esi + 0x1880], ebx
call eax
cmp eax, 0xffffffff
je 0x42ed8c
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 0x42ee5f
sub ebx, 1
je 0x42edc4
sub ebx, 1
jne case.default.0x42ef43
mov ecx, esi
call fcn.00434570
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
call edi
cdq
mov ecx, 0x5a
idiv ecx
lea eax, [edx + 0xa]
mov dword [ebp - 4], eax
call edi
cdq
mov ecx, 0x32
idiv ecx
lea ebx, [edx + 0x1e]
cmp ebx, dword [ebp - 4]
jne 0x42ee04
mov esi, dword [ebp - 4]
nop dword [eax + eax]
call edi
cdq
mov ecx, 0x32
idiv ecx
lea ebx, [edx + 0x1e]
cmp ebx, esi
je 0x42edf0
mov esi, dword [ebp - 0xc]
mov edi, dword [ebp - 4]
lea eax, [esi + 0x138a]
push ebx
push edi
push str.If_X_goes_from__d_to__d__what_is_its_percent_of_change__n_nto_the_nearest_whole_number_
push eax
call fcn.004011b0
sub ebx, edi
add esp, 0x10
imul eax, ebx, 0x3e8
add esi, 0x1772
cdq
idiv edi
lea ecx, [eax + 5]
test ebx, ebx
jg 0x42ee38
lea ecx, [eax - 5]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push 0x439470
push esi
call fcn.004011b0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.00434350
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call edi
cmp byte [esi + 0x1319], 0
je 0x42ee82
mov ebx, dword [esi + 0x1324]
test ebx, ebx
jns 0x42ee88
mov ebx, dword [esi + 0x1330]
mov eax, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
mov dword [esi + 0x1880], ebx
call eax
cmp eax, 0xffffffff
je 0x42eeae
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 case.0x42ef43.0
sub ebx, 1
je case.0x42ef43.0
sub ebx, 1
jmp 0x42f14b
call edi
cmp byte [esi + 0x1319], 0
je 0x42eef3
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x42eefc
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x42ef1d
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
mov eax, dword [ebp - 4]
add esp, 8
cmp eax, 6
ja case.default.0x42ef43
movzx eax, byte [eax + 0x42f188]
jmp dword [eax*4 + 0x42f184]
call edi
cmp byte [esi + 0x1319], 0
je 0x42ef62
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x42ef6b
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x42ef8c
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
mov eax, dword [ebp - 4]
add esp, 8
cmp eax, 4
ja case.default.0x42ef43
jmp dword [eax*4 + 0x42f190]
call edi
cmp byte [esi + 0x1319], 0
je 0x42efca
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x42efd3
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x42eff4
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
mov eax, dword [ebp - 4]
add esp, 8
cmp eax, 6
ja case.default.0x42ef43
movzx eax, byte [eax + 0x42f1a8]
jmp dword [eax*4 + 0x42f1a4]
call edi
cmp byte [esi + 0x1319], 0
je 0x42f039
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x42f042
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x42f063
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
mov eax, dword [ebp - 4]
add esp, 8
cmp eax, 6
ja case.default.0x42ef43
movzx eax, byte [eax + 0x42f1b4]
jmp dword [eax*4 + 0x42f1b0]
call edi
cmp byte [esi + 0x1319], 0
je 0x42f0a8
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x42f0b1
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x42f0d2
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
mov eax, dword [ebp - 4]
add esp, 8
sub eax, 0
je case.0x42ef43.0
sub eax, 1
jmp 0x42f14b
call edi
cmp byte [esi + 0x1319], 0
je 0x42f10a
mov eax, dword [esi + 0x1324]
mov dword [ebp - 4], eax
test eax, eax
jns 0x42f113
mov eax, dword [esi + 0x1330]
mov dword [ebp - 4], eax
push 0xfffffffffffffff5
mov dword [esi + 0x1880], eax
call ebx
cmp eax, 0xffffffff
je 0x42f134
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.0x42ef43
call edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret