Function at 0x100316f
Capabilities:
Manipulate console buffer
Set console window title

Disassembly:
push ebp
lea ebp, [esp - 0x6b4]
sub esp, 0x734
mov eax, dword [0x100f6ec]
push ebx
push esi
mov esi, dword [sym.imp.msvcrt.dll_wcslen]
push edi
xor ebx, ebx
push 0x41
pop ecx
mov dword [ebp + 0x6b0], eax
xor eax, eax
cmp dword [ebp + 0x6bc], ebx
lea edi, [ebp + 0x5a9]
mov byte [ebp + 0x5a8], bl
rep stosd dword es:[edi], eax
push 0x7f
pop ecx
lea edi, [ebp + 0x3aa]
mov word [ebp + 0x3a8], bx
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.KERNEL32.dll_WriteConsoleW]
mov word [ebp - 0x7c], bx
mov word [ebp - 0x7a], bx
mov dword [0x102a47c], ebx
jne 0x1003267
push ebx
lea eax, [ebp - 0x78]
push eax
push 0x1027f20
call esi
pop ecx
push eax
push 0x1027f20
push dword [0x102a458]
call edi
push ebx
lea eax, [ebp - 0x80]
push eax
push 0xfd
lea eax, [ebp + 0x3a8]
push eax
push dword [0x102a45c]
call dword [sym.imp.KERNEL32.dll_ReadConsoleW]
test eax, eax
je 0x100362d
mov eax, dword [ebp - 0x80]
cmp eax, 2
je 0x100324a
mov word [ebp + eax*2 + 0x3a6], bx
mov word [ebp + eax*2 + 0x3a4], bx
lea eax, [ebp + 0x3a8]
push eax
call fcn.01003012
push eax
mov dword [ebp + 0x6bc], eax
call esi
test eax, eax
pop ecx
jne 0x1003267
push ebx
lea eax, [ebp - 0x78]
push eax
mov ebx, 0x1025fe0
push ebx
call esi
pop ecx
push eax
push ebx
push dword [0x102a458]
call edi
jmp 0x100362d
cmp dword [0x100f7d0], ebx
je 0x1003275
push ebx
call fcn.010021c9
push 0x10018d8
push dword [ebp + 0x6bc]
call dword [sym.imp.msvcrt.dll_wcstok]
push 0x10018d4
push ebx
mov dword [ebp - 0x70], eax
call dword [sym.imp.msvcrt.dll_wcstok]
add esp, 0x10
cmp eax, ebx
mov word [0x100f9e8], bx
je 0x10032b7
push 0xff
push eax
push 0x100f9e8
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
call fcn.010030ac
cmp dword [ebp - 0x70], ebx
je 0x100362d
push dword [ebp - 0x70]
call esi
pop ecx
mov ecx, eax
inc ecx
mov eax, 0xff
cmp ecx, eax
jae 0x10032de
push dword [ebp - 0x70]
call esi
pop ecx
inc eax
push eax
push dword [ebp - 0x70]
push 0x100f7e8
call dword [sym.imp.msvcrt.dll_wcsncpy]
add esp, 0xc
push 0x102a460
push dword [0x1024d0c]
mov word [0x100f9e6], bx
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
push dword [0x1024d10]
call fcn.01005ecb
test byte [0x1029a64], 4
je 0x1003350
movsx eax, word [0x102a46c]
movsx ecx, word [0x102a470]
sub ecx, eax
movsx eax, word [0x102a474]
inc ecx
cmp ecx, eax
jne 0x1003350
dec word [0x102a462]
dec word [0x102a470]
mov dword [0x100f708], 1
call fcn.01003156
cmp dword [0x100f74c], ebx
je 0x100336a
call fcn.01002582
test eax, eax
je 0x100362d
mov al, byte [0x1029a64]
test al, 1
je 0x100338b
test al, 2
je 0x100338b
mov eax, dword [0x100f740]
and eax, 0xff00
je 0x100338b
mov dword [ebp + 0x6bc], eax
jmp 0x1003392
or dword [ebp + 0x6bc], 0xffffffff
push 0x102a1cc
push 0x1029ca0
call fcn.01007761
mov al, byte [0x1029a64]
test al, 1
je 0x1003408
test al, 2
je 0x1003408
mov edx, dword [ebp + 0x6bc]
test edx, edx
js 0x1003408
xor eax, eax
mov ecx, 0x100e878
cmp edx, dword [ecx]
je 0x10033d4
add ecx, 0x210
inc eax
cmp ecx, 0x100f6e8
jl 0x10033bf
jmp 0x1003408
or byte [0x102a261], 0x10
imul eax, eax, 0x210
mov ecx, dword [eax + 0x100e878]
mov eax, dword [eax + 0x100e87c]
mov byte [0x100f741], bl
or dword [0x100f740], ecx
push 0x102a1cc
mov dword [0x102a3d4], eax
call fcn.01006fd7
cmp dword [0x1024d18], ebx
je 0x100341a
mov eax, dword [0x1024d10]
mov dword [0x102a458], eax
push ebx
lea eax, [ebp - 0x78]
push eax
push 0x1028d00
call esi
pop ecx
push eax
push 0x1028d00
push dword [0x102a458]
call edi
push ebx
lea eax, [ebp - 0x78]
push eax
push dword [ebp - 0x70]
call esi
pop ecx
push eax
push dword [ebp - 0x70]
push dword [0x102a458]
call edi
push ebx
lea eax, [ebp - 0x78]
push eax
push 0x10018cc
call esi
pop ecx
push eax
push 0x10018cc
push dword [0x102a458]
call edi
push ebx
push ebx
mov esi, 0x104
push esi
lea eax, [ebp + 0x5a8]
push eax
push 0xffffffffffffffff
push dword [ebp - 0x70]
push ebx
call dword [sym.imp.KERNEL32.dll_GetACP]
push eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push esi
lea eax, [ebp - 0x6c]
push 0x1026880
push eax
call dword [sym.imp.msvcrt.dll_wcsncpy]
lea eax, [ebp - 0x6c]
push 0x10018d8
push eax
mov word [ebp + 0x19e], bx
call dword [sym.imp.msvcrt.dll_wcscat]
push esi
push dword [ebp - 0x70]
lea eax, [ebp - 0x6c]
push eax
call dword [sym.imp.msvcrt.dll_wcsncat]
add esp, 0x20
lea eax, [ebp - 0x6c]
push eax
mov word [ebp + 0x3a6], bx
call dword [sym.imp.KERNEL32.dll_SetConsoleTitleW]
mov esi, 0x1029ca0
push esi
lea eax, [ebp + 0x5a8]
push eax
push esi
call fcn.010055c8
cmp dword [0x1024d18], ebx
mov dword [0x100f7d0], eax
je 0x1003503
mov ecx, dword [0x1024d0c]
mov dword [0x1024d18], ebx
mov dword [0x102a458], ecx
cmp eax, 1
jne 0x100362d
mov eax, dword [0x102a460]
mov dword [ebp + 0x6bc], eax
mov eax, dword [0x1029a64]
and eax, 4
je 0x1003544
mov cx, word [0x102a460]
inc word [0x102a462]
mov word [ebp + 0x6bc], cx
mov cx, word [0x102a462]
mov word [ebp + 0x6be], cx
cmp eax, ebx
mov edi, dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
je 0x1003571
push dword [ebp + 0x6bc]
push dword [0x1024d10]
call edi
test eax, eax
jne 0x1003571
push esi
push esi
call fcn.01005594
mov dword [0x100f7d0], eax
jmp 0x100362d
push dword [0x1024d10]
call fcn.0100304a
test byte [0x1029a64], 4
mov eax, dword [0x102a46a]
mov dword [ebp - 0x74], eax
mov eax, dword [0x102a46e]
mov dword [ebp - 0x70], eax
je 0x10035d7
inc word [ebp - 0x6e]
lea eax, [ebp - 0x74]
push eax
push 1
push dword [0x1024d10]
call dword [sym.imp.KERNEL32.dll_SetConsoleWindowInfo]
push dword [ebp + 0x6bc]
mov dword [0x100f704], eax
push dword [0x1024d10]
call edi
cmp dword [0x100f708], ebx
mov dword [0x100f700], eax
je 0x10035d7
mov dword [0x100f700], ebx
mov dword [0x100f704], ebx
push dword [ebp - 0x7c]
push dword [0x1024d10]
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorPosition]
mov eax, dword [ebp - 0x74]
mov dword [0x1024c9c], eax
mov eax, dword [ebp - 0x70]
push esi
mov dword [0x1024ca0], eax
mov dword [0x102a1b8], ebx
mov dword [0x102a1bc], ebx
mov dword [0x102a1c0], ebx
mov dword [0x102a1c4], ebx
mov dword [0x102a1e0], ebx
mov dword [0x102a1dc], ebx
call fcn.01009c71
push ebx
push 0x1001518
call fcn.010020c3
pop ecx
pop ecx
mov ecx, dword [ebp + 0x6b0]
pop edi
pop esi
xor eax, eax
pop ebx
call fcn.0100c260
add ebp, 0x6b4
leave
ret 4