Function at 0x1001e74
Capabilities:
Read .ini file

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [ebp + 0xc]
dec eax
push ebx
push esi
push edi
je 0x1002138
dec eax
je 0x1002106
sub eax, 3
je 0x10020ef
sub eax, 0xf
je 0x10020c8
sub eax, 0xff
jne 0x1002409
movsx edi, word [0x100520c]
mov esi, dword [0x100524c]
movsx ecx, word [0x10051f8]
mov eax, edi
sub eax, esi
mov dword [ebp - 0x18], eax
mov eax, dword [0x10051e8]
mov edx, eax
sar edx, 3
add edx, ecx
add edx, eax
mov dword [ebp - 0x14], ecx
mov cx, word [0x1005220]
movzx eax, cx
mov dword [ebp - 0xc], edx
cdq
push 3
pop ebx
idiv ebx
add cx, word [0x10051f4]
mov edx, dword [0x10051e4]
mov word [0x1005220], cx
add eax, edi
cmp cx, bx
lea eax, [eax + esi*2]
lea eax, [eax + edx + 1]
mov dword [ebp - 0x10], eax
jb 0x1002409
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDC]
push dword [0x1005364]
mov esi, dword [sym.imp.GDI32.dll_SelectObject]
mov edi, eax
push edi
call esi
push dword [0x1005620]
mov ebx, eax
push edi
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword [0x10058e0]
push edi
call dword [sym.imp.GDI32.dll_SetBkColor]
cmp dword [0x1005230], 0
push 2
pop eax
je 0x1001f5c
mov eax, 0x82
push 0
push dword [0x10052ec]
lea ecx, [ebp - 0x18]
push 0x1005420
push ecx
push eax
movzx eax, word [0x10051f8]
push eax
movsx eax, word [0x100520c]
push eax
push edi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
test ebx, ebx
je 0x1001f8d
push ebx
push edi
call esi
cmp dword [0x1005230], 0
je 0x1002020
mov ax, word [0x100520c]
cmp ax, word [0x100535c]
jge 0x1001fc0
movzx eax, word [0x1005220]
cdq
push 3
pop ecx
idiv ecx
inc eax
add word [0x100520c], ax
jmp 0x1001ffd
xor ecx, ecx
inc ecx
mov eax, ecx
sub eax, dword [0x10051e4]
cmp dword [0x1005360], 0
mov word [0x100520c], ax
je 0x1001ffd
movzx eax, word [0x1005208]
sub eax, dword [0x10051e8]
je 0x1001feb
mov ecx, eax
call fcn.010017c7
movzx eax, ax
cdq
idiv ecx
mov word [0x10051f8], dx
push edi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_ReleaseDC]
movzx eax, word [0x1005220]
push 3
cdq
pop ecx
idiv ecx
mov word [0x1005220], dx
jmp 0x1002409
mov eax, dword [0x10051e4]
neg eax
cmp word [0x100520c], ax
jl 0x100204d
movzx eax, word [0x1005220]
push 3
cdq
pop ecx
idiv ecx
mov ecx, pe_overlay
sub ecx, eax
add word [0x100520c], cx
jmp 0x1001ffd
push dword [0x10051e0]
push edi
call esi
push 0xf00021
push dword [0x10051e8]
mov ebx, eax
movzx eax, word [0x1005220]
push 3
pop ecx
cdq
idiv ecx
mov ecx, dword [0x100524c]
lea eax, [eax + ecx*2 + 1]
push eax
movsx eax, word [0x10051f8]
push eax
push 0
push edi
call dword [sym.imp.GDI32.dll_PatBlt]
test ebx, ebx
je 0x1002094
push ebx
push edi
call esi
cmp dword [0x1005360], 0
mov ax, word [0x100535c]
mov word [0x100520c], ax
je 0x1001ffd
movzx eax, word [0x1005208]
sub eax, dword [0x10051e8]
jne 0x1001fe9
xor ecx, ecx
inc ecx
jmp 0x1001feb
lea eax, [ebp - 0x28]
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetClientRect]
push dword [0x10051e0]
lea eax, [ebp - 0x28]
push eax
push dword [ebp + 0x10]
call dword [sym.imp.USER32.dll_FillRect]
xor eax, eax
jmp 0x100241a
mov eax, dword [ebp + 0x14]
mov word [0x100535c], ax
shr eax, 0x10
mov word [0x1005208], ax
jmp 0x1002409
mov eax, dword [0x1005214]
test eax, eax
je 0x1002119
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [0x1005364]
test eax, eax
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
je 0x100212b
push eax
call esi
push dword [0x10051e0]
call esi
jmp 0x1002409
call fcn.01001511
call fcn.01001cba
mov ebx, 0x10059e0
push ebx
push 0x20
push 0x10053c0
push 0x1005640
push str.Font
mov esi, 0x1005920
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push ebx
xor edi, edi
push edi
push str.CharSet
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [0x1005624], al
call fcn.01001449
test eax, eax
je 0x100218d
mov al, byte [0x1005270]
mov byte [0x1005624], al
push edi
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
xor ecx, ecx
and eax, 0x3ff
inc ecx
cmp ax, cx
je 0x10021b6
cmp ax, 0xd
mov dword [0x1005230], edi
jne 0x10021bc
mov dword [0x1005230], ecx
mov eax, dword [ebp + 0x14]
mov cx, word [eax + 0x14]
mov ax, word [eax + 0x10]
push ebx
push edi
push str.Size
push esi
mov word [0x100535c], cx
mov word [0x1005208], ax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push eax
mov dword [0x10052f4], eax
call fcn.01001686
cmp dword [0x1005370], edi
mov dword [0x10052f4], eax
je 0x100221d
push 0xa
push dword [ebp - 4]
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov ecx, eax
movzx eax, word [0x1005208]
imul eax, dword [0x10052f4]
cdq
idiv ecx
mov dword [0x10052f4], eax
movzx ecx, byte [0x1005624]
push 0x10053c0
push edi
push edi
push edi
push edi
push ecx
xor edx, edx
push 0x30
pop ecx
cmp word [0x10050bc], cx
setne dl
push edx
xor edx, edx
cmp word [str.0000], cx
setne dl
push edx
xor edx, edx
cmp word [0x10050c0], cx
setne dl
push edx
xor edx, edx
cmp word [0x10050c4], cx
setne dl
dec edx
and edx, 0xfffffed4
add edx, 0x2bc
push edx
push edi
push edi
push edi
push eax
call dword [sym.imp.GDI32.dll_CreateFontW]
push ebx
push 0xff
mov edi, 0x1005420
push edi
push 0x10056e0
push str.Text
push esi
mov dword [0x1005364], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push 0x1001230
push 0x10056e0
call dword [sym.imp.KERNEL32.dll_lstrcatW]
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [0x1005364]
mov dword [0x10052ec], eax
push dword [ebp - 4]
call dword [sym.imp.GDI32.dll_SelectObject]
push 0x10051e4
push dword [0x10052ec]
mov dword [ebp - 8], eax
push edi
mov edi, dword [ebp - 4]
push edi
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x1005370], 0
je 0x10022f7
mov eax, dword [0x10051e4]
add eax, eax
mov dword [0x10051e4], eax
push 0x1005234
push edi
call dword [sym.imp.GDI32.dll_GetTextMetricsW]
cmp dword [ebp - 8], 0
je 0x1002313
push dword [ebp - 8]
push edi
call dword [sym.imp.GDI32.dll_SelectObject]
push edi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
xor edi, edi
cmp dword [0x1005230], edi
je 0x1002331
xor eax, eax
inc eax
sub eax, dword [0x10051e8]
jmp 0x1002337
mov ax, word [0x100535c]
mov word [0x100520c], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x1005360], edi
mov dword [0x10050c8], eax
je 0x100237a
movzx eax, word [0x1005208]
sub eax, dword [0x10051e8]
jne 0x1002364
xor ecx, ecx
inc ecx
jmp 0x1002366
mov ecx, eax
call fcn.010017c7
movzx eax, ax
cdq
idiv ecx
mov word [0x10051f8], dx
jmp 0x1002390
mov ax, word [0x1005208]
sub ax, word [0x10051e8]
shr ax, 1
mov word [0x10051f8], ax
push ebx
push 0xa
push str.Speed
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp ax, 1
mov word [0x10051f4], ax
jae 0x10023b5
mov ax, 1
mov word [0x10051f4], ax
cmp ax, 0x1e
jbe 0x10023c4
mov word [0x10051f4], 0x1e
push 0xff00ff
push str.TextColor
push esi
call fcn.01001d92
push edi
push str.BackgroundColor
push esi
mov dword [0x1005620], eax
call fcn.01001d92
push eax
mov dword [0x10058e0], eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push edi
push 1
push 9
push dword [ebp + 8]
mov dword [0x10051e0], eax
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [0x1005214], eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.010033da
pop edi
pop esi
pop ebx
leave
ret 0x10