Function at 0x4347c0
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 edi, ecx
call ebx
cmp byte [edi + 0x1319], 0
je 0x4347e4
mov esi, dword [edi + 0x1324]
test esi, esi
jns 0x4347ea
mov esi, dword [edi + 0x1330]
push 0xfffffffffffffff5
mov dword [edi + 0x1880], esi
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp eax, 0xffffffff
je 0x43480e
mov dword [ebp - 4], 0x20000
push dword [ebp - 4]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
push dword [edi + 0x1880]
push 0x439470
call fcn.00401070
add esp, 8
cmp esi, 3
ja case.default.0x43482a
jmp dword [esi*4 + 0x434a10]
call ebx
mov ecx, 0xc
cdq
idiv ecx
mov ebx, edx
mov edx, edi
mov esi, dword [ebx*4 + 0x461edc]
mov ecx, esi
sub edx, esi
nop word [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx + 0x1389], al
test al, al
jne 0x434850
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x434863
sub esi, ecx
mov ecx, dword [ebx*4 + 0x461eac]
mov edx, ecx
mov byte [esi + edi + 0x138a], al
mov esi, edi
sub esi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [esi + edx + 0x1771], al
test al, al
jne 0x434880
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x434893
sub ecx, edx
mov byte [ecx + edi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call ebx
mov ecx, 0xc
cdq
idiv ecx
mov ebx, edx
mov edx, edi
mov esi, dword [ebx*4 + 0x461edc]
mov ecx, esi
sub edx, esi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx + 0x1389], al
test al, al
jne 0x4348c3
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4348d6
sub esi, ecx
mov ecx, dword [ebx*4 + 0x461eac]
mov edx, ecx
mov byte [esi + edi + 0x138a], al
mov esi, edi
sub esi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [esi + edx + 0x1771], al
test al, al
jne 0x4348f3
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x434906
sub ecx, edx
mov byte [ecx + edi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call ebx
mov ecx, 0xc
cdq
idiv ecx
mov ebx, edx
mov edx, edi
mov esi, dword [ebx*4 + 0x461edc]
mov ecx, esi
sub edx, esi
nop word [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx + 0x1389], al
test al, al
jne 0x434940
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x434953
sub esi, ecx
mov ecx, dword [ebx*4 + 0x461eac]
mov edx, ecx
mov byte [esi + edi + 0x138a], al
mov esi, edi
sub esi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [esi + edx + 0x1771], al
test al, al
jne 0x434970
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x434983
sub ecx, edx
mov byte [ecx + edi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call ebx
mov ecx, 0xc
cdq
idiv ecx
mov ebx, edx
mov edx, edi
mov esi, dword [ebx*4 + 0x461edc]
mov ecx, esi
sub edx, esi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx + 0x1389], al
test al, al
jne 0x4349b3
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4349c6
sub esi, ecx
mov ecx, dword [ebx*4 + 0x461eac]
mov edx, ecx
mov byte [esi + edi + 0x138a], al
mov esi, edi
sub esi, ecx
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [esi + edx + 0x1771], al
test al, al
jne 0x4349e3
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4349f6
sub ecx, edx
mov byte [ecx + edi + 0x1772], al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret