Function at 0x42f920
Capabilities:
Manipulate console buffer

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1c
push ebx
mov ebx, dword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
push esi
push edi
mov edi, ecx
call ebx
cmp byte [edi + 0x1319], 0
je 0x42f946
mov esi, dword [edi + 0x1324]
test esi, esi
jns 0x42f94c
mov esi, dword [edi + 0x1330]
push 0xfffffffffffffff5
mov dword [edi + 0x1880], esi
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x42f970
mov dword [ebp - 0x14], 0x20000
push dword [ebp - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [edi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
cmp esi, 4
ja case.default.0x42f98c
jmp dword [esi*4 + 0x42fcb0]
call ebx
and eax, 0x80000001
jns 0x42f9a1
dec eax
or eax, 0xfffffffe
inc eax
mov dword [ebp - 0x10], eax
call ebx
cdq
mov esi, 0x14
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 0x14], eax
call ebx
cdq
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 8], eax
call ebx
cdq
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 4], eax
call ebx
cdq
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 0xc], eax
call ebx
cdq
idiv esi
mov eax, dword [ebp - 0x10]
lea esi, [edx - 5]
sub eax, 0
je 0x42fa59
sub eax, 1
jne case.default.0x42f98c
call ebx
mov esi, eax
and esi, 0x8000000f
jns 0x42f9ff
dec esi
or esi, 0xfffffff0
inc esi
mov ebx, dword [ebp - 0x14]
lea eax, [edi + 0x138a]
sub esi, 5
push esi
push dword [ebp - 0xc]
push dword [ebp - 4]
push dword [ebp - 8]
push ebx
push str.Evaluate__dX___d_X2___dX_____dX3__if_X___d
push eax
call fcn.004011b0
mov ecx, dword [ebp - 4]
mov eax, esi
imul eax, esi
add ecx, esi
imul ecx, dword [ebp - 8]
add esp, 0x1c
imul eax, dword [ebp - 0xc]
sub ecx, eax
lea eax, [edi + 0x1772]
add ecx, ebx
imul ecx, esi
push ecx
push 0x439470
push eax
call fcn.004011b0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp - 0x14]
lea eax, [edi + 0x138a]
push esi
push dword [ebp - 0xc]
push dword [ebp - 4]
push dword [ebp - 8]
push ebx
push str.Evaluate__dX____d_X___d____d__if_X___d
push eax
call fcn.004011b0
mov eax, dword [ebp - 4]
add esp, 0x1c
add eax, esi
imul esi, ebx
imul eax, dword [ebp - 8]
sub esi, eax
add esi, dword [ebp - 0xc]
push esi
lea eax, [edi + 0x1772]
push 0x439470
push eax
call fcn.004011b0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call ebx
and eax, 0x80000001
jns 0x42fab6
dec eax
or eax, 0xfffffffe
inc eax
mov dword [ebp - 0x14], eax
call ebx
cdq
mov esi, 0x14
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 0x10], eax
call ebx
cdq
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 4], eax
call ebx
cdq
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 8], eax
call ebx
cdq
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 0xc], eax
call ebx
cdq
idiv esi
lea esi, [edx - 5]
call ebx
cdq
mov ecx, 0x14
idiv ecx
mov eax, dword [ebp - 0x14]
lea ebx, [edx - 5]
sub eax, 0
je 0x42fb46
sub eax, 1
jne case.default.0x42f98c
push ebx
push esi
push dword [ebp - 0xc]
lea eax, [edi + 0x138a]
push dword [ebp - 8]
push dword [ebp - 4]
push dword [ebp - 0x10]
push str.Evaluate__dX___dXY___dY____d__if_X___d_and_Y___d
push eax
call fcn.004011b0
mov eax, esi
imul esi, dword [ebp - 0x10]
imul eax, dword [ebp - 4]
add eax, dword [ebp - 8]
imul eax, ebx
add eax, esi
sub eax, dword [ebp - 0xc]
jmp 0x42fb7a
push ebx
push esi
push dword [ebp - 0xc]
lea eax, [edi + 0x138a]
push dword [ebp - 8]
push dword [ebp - 4]
push dword [ebp - 0x10]
push str.Evaluate__dX____dY___d_X____d___if_X___d_and_Y___d
push eax
call fcn.004011b0
imul ebx, dword [ebp - 4]
mov eax, esi
sub eax, dword [ebp - 0xc]
imul eax, dword [ebp - 8]
imul esi, dword [ebp - 0x10]
sub eax, ebx
add eax, esi
push eax
lea eax, [edi + 0x1772]
push 0x439470
push eax
call fcn.004011b0
add esp, 0x2c
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call ebx
and eax, 0x80000001
jns 0x42fba4
dec eax
or eax, 0xfffffffe
inc eax
mov dword [ebp - 0x18], eax
call ebx
cdq
mov esi, 0x14
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 4], eax
call ebx
cdq
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 0xc], eax
call ebx
cdq
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 0x10], eax
call ebx
cdq
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 0x14], eax
call ebx
cdq
idiv esi
lea eax, [edx - 5]
mov dword [ebp - 8], eax
call ebx
cdq
idiv esi
lea esi, [edx - 5]
call ebx
cdq
mov ecx, 0x14
idiv ecx
mov eax, dword [ebp - 0x18]
lea ebx, [edx - 5]
sub eax, 0
je 0x42fc4f
sub eax, 1
jne case.default.0x42f98c
push ebx
push esi
push dword [ebp - 8]
lea eax, [edi + 0x138a]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
push dword [ebp - 4]
push str.Evaluate__d_X___dY____Z__d____dX___if_X___d__Y___d__and_Z___d
push eax
call fcn.004011b0
mov eax, dword [ebp - 8]
add esp, 0x24
imul esi, dword [ebp - 0xc]
imul eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
add esi, dword [ebp - 8]
imul esi, dword [ebp - 4]
sub ecx, eax
imul ecx, ebx
sub esi, ecx
jmp 0x42fa8c
push ebx
push esi
push dword [ebp - 8]
lea eax, [edi + 0x138a]
push dword [ebp - 0x14]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
push dword [ebp - 4]
push str.Evaluate__dX____dY___dZ____d__if_X___d__Y___d__and_Z___d
push eax
call fcn.004011b0
imul ebx, dword [ebp - 0x10]
add esp, 0x24
imul esi, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
imul eax, dword [ebp - 4]
sub ebx, esi
add ebx, eax
lea eax, [edi + 0x1772]
sub ebx, dword [ebp - 0x14]
push ebx
push 0x439470
push eax
call fcn.004011b0
add esp, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret