Function at 0x1001df7
Capabilities:
Read .ini file

Disassembly:
mov eax, dword [esp + 8]
sub esp, 0x28
dec eax
push ebx
push ebp
push esi
push edi
je 0x10020c4
dec eax
je 0x100208f
sub eax, 3
je 0x1002077
sub eax, 0xf
je 0x100204c
sub eax, 0xff
jne 0x10023a8
movsx edi, word [0x10051ec]
mov esi, dword [0x100522c]
movsx eax, word [0x10051d8]
mov ecx, edi
sub ecx, esi
mov dword [esp + 0x18], ecx
mov ecx, dword [0x10051c8]
mov edx, ecx
sar edx, 3
add edx, eax
add edx, ecx
mov cx, word [0x1005200]
mov dword [esp + 0x1c], eax
movzx eax, cx
mov dword [esp + 0x24], edx
cdq
push 3
pop ebx
idiv ebx
add cx, word [0x10051d4]
mov edx, dword [0x10051c4]
mov word [0x1005200], cx
add eax, edi
cmp cx, bx
lea eax, [eax + esi*2]
lea eax, [eax + edx + 1]
mov dword [esp + 0x20], eax
jb 0x10023a8
push dword [esp + 0x3c]
call dword [sym.imp.USER32.dll_GetDC]
push dword [0x1005344]
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
mov esi, eax
push esi
call edi
push dword [0x1005c04]
mov ebp, eax
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
push dword [0x10064c4]
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
xor ebx, ebx
cmp dword [0x1005210], ebx
push 2
pop eax
je 0x1001ee3
mov eax, 0x82
push ebx
push dword [0x10052cc]
lea ecx, [esp + 0x20]
push 0x1005400
push ecx
push eax
movzx eax, word [0x10051d8]
push eax
movsx eax, word [0x10051ec]
push eax
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutW]
cmp ebp, ebx
je 0x1001f14
push ebp
push esi
call edi
cmp dword [0x1005210], ebx
je 0x1001fa6
mov ax, word [0x10051ec]
cmp ax, word [0x100533c]
jge 0x1001f46
movzx eax, word [0x1005200]
cdq
push 3
pop ecx
idiv ecx
inc eax
add word [0x10051ec], ax
jmp 0x1001f82
xor ecx, ecx
inc ecx
mov eax, ecx
sub eax, dword [0x10051c4]
cmp dword [0x1005340], ebx
mov word [0x10051ec], ax
je 0x1001f82
movzx eax, word [0x10051e8]
sub eax, dword [0x10051c8]
je 0x1001f70
mov ecx, eax
call fcn.010017bd
movzx eax, ax
cdq
idiv ecx
mov word [0x10051d8], dx
push esi
push dword [esp + 0x40]
call dword [sym.imp.USER32.dll_ReleaseDC]
movzx eax, word [0x1005200]
push 3
cdq
pop ecx
idiv ecx
mov word [0x1005200], dx
jmp 0x10023a8
mov eax, dword [0x10051c4]
neg eax
cmp word [0x10051ec], ax
jl 0x1001fd3
movzx eax, word [0x1005200]
push 3
cdq
pop ecx
idiv ecx
mov ecx, 0xffff
sub ecx, eax
add word [0x10051ec], cx
jmp 0x1001f82
push dword [0x10051c0]
push esi
call edi
push 0xf00021
push dword [0x10051c8]
mov ebp, eax
movzx eax, word [0x1005200]
push 3
pop ecx
cdq
idiv ecx
mov ecx, dword [0x100522c]
lea eax, [eax + ecx*2 + 1]
push eax
movsx eax, word [0x10051d8]
push eax
push ebx
push esi
call dword [sym.imp.GDI32.dll_PatBlt]
cmp ebp, ebx
je 0x1002019
push ebp
push esi
call edi
cmp dword [0x1005340], ebx
mov ax, word [0x100533c]
mov word [0x10051ec], ax
je 0x1001f82
movzx eax, word [0x10051e8]
sub eax, dword [0x10051c8]
jne 0x1001f6e
xor ecx, ecx
inc ecx
jmp 0x1001f70
lea eax, [esp + 0x28]
push eax
push dword [esp + 0x40]
call dword [sym.imp.USER32.dll_GetClientRect]
push dword [0x10051c0]
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x4c]
call dword [sym.imp.USER32.dll_FillRect]
xor eax, eax
jmp 0x10023bd
mov eax, dword [esp + 0x48]
mov word [0x100533c], ax
shr eax, 0x10
mov word [0x10051e8], ax
jmp 0x10023a8
mov eax, dword [0x10051f4]
xor ebx, ebx
cmp eax, ebx
je 0x10020a5
push eax
push dword [esp + 0x40]
call dword [sym.imp.USER32.dll_KillTimer]
mov eax, dword [0x1005344]
cmp eax, ebx
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
je 0x10020b7
push eax
call esi
push dword [0x10051c0]
call esi
jmp 0x10023a8
call fcn.01001534
call fcn.01001c61
mov edi, 0x10065c0
push edi
push 0x20
mov ebp, 0x10053a0
push ebp
push 0x1005c20
push str.Font
mov esi, 0x1006500
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push edi
xor ebx, ebx
push ebx
push str.CharSet
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
mov byte [0x1005c08], al
call fcn.01001474
test eax, eax
je 0x100211a
mov al, byte [0x1005250]
mov byte [0x1005c08], al
push ebx
call dword [sym.imp.USER32.dll_GetDC]
mov dword [esp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLCID]
xor ecx, ecx
and eax, 0x3ff
inc ecx
cmp ax, cx
je 0x1002144
cmp ax, 0xd
mov dword [0x1005210], ebx
jne 0x100214a
mov dword [0x1005210], ecx
mov eax, dword [esp + 0x48]
mov cx, word [eax + 0x14]
mov ax, word [eax + 0x10]
push edi
push ebx
push str.Size
push esi
mov word [0x100533c], cx
mov word [0x10051e8], ax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
push eax
mov dword [0x10052d4], eax
call fcn.0100169b
cmp dword [0x1005350], ebx
mov dword [0x10052d4], eax
je 0x10021ad
push 0xa
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
mov ecx, eax
movzx eax, word [0x10051e8]
imul eax, dword [0x10052d4]
cdq
idiv ecx
mov dword [0x10052d4], eax
movzx ecx, byte [0x1005c08]
push ebp
push ebx
push ebx
push ebx
push ebx
push ecx
xor ecx, ecx
push 0x30
pop ebp
cmp word [0x10050a4], bp
setne cl
push ecx
xor ecx, ecx
cmp word [str.0000], bp
setne cl
push ecx
xor ecx, ecx
cmp word [0x10050a8], bp
setne cl
push ecx
xor ecx, ecx
cmp word [0x10050ac], bp
setne cl
dec ecx
and ecx, 0xfffffed4
add ecx, 0x2bc
push ecx
push ebx
push ebx
push ebx
push eax
call dword [sym.imp.GDI32.dll_CreateFontW]
push edi
push 0x401
push 0x1005400
mov ebp, 0x1005cc0
push ebp
push str.Text
push esi
mov dword [0x1005344], eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenW]
add eax, 6
cmp eax, 0x401
jae 0x1002247
push 0x1001240
push ebp
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ebp, 0x1005400
push ebp
call dword [sym.imp.KERNEL32.dll_lstrlenW]
push dword [0x1005344]
mov dword [0x10052cc], eax
push dword [esp + 0x14]
call dword [sym.imp.GDI32.dll_SelectObject]
push 0x10051c4
push dword [0x10052cc]
mov dword [esp + 0x1c], eax
push ebp
mov ebp, dword [esp + 0x1c]
push ebp
call dword [sym.imp.GDI32.dll_GetTextExtentPoint32W]
cmp dword [0x1005350], ebx
je 0x1002297
mov eax, dword [0x10051c4]
add eax, eax
mov dword [0x10051c4], eax
push 0x1005214
push ebp
call dword [sym.imp.GDI32.dll_GetTextMetricsW]
cmp dword [esp + 0x14], ebx
je 0x10022b4
push dword [esp + 0x14]
push ebp
call dword [sym.imp.GDI32.dll_SelectObject]
push ebp
push ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
cmp dword [0x1005210], ebx
je 0x10022cf
xor eax, eax
inc eax
sub eax, dword [0x10051c8]
jmp 0x10022d5
mov ax, word [0x100533c]
mov word [0x10051ec], ax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [0x1005340], ebx
mov dword [0x10050b0], eax
je 0x1002318
movzx eax, word [0x10051e8]
sub eax, dword [0x10051c8]
jne 0x1002302
xor ecx, ecx
inc ecx
jmp 0x1002304
mov ecx, eax
call fcn.010017bd
movzx eax, ax
cdq
idiv ecx
mov word [0x10051d8], dx
jmp 0x100232e
mov ax, word [0x10051e8]
sub ax, word [0x10051c8]
shr ax, 1
mov word [0x10051d8], ax
push edi
push 0xa
push str.Speed
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntW]
cmp ax, 1
mov word [0x10051d4], ax
jae 0x1002353
mov ax, 1
mov word [0x10051d4], ax
cmp ax, 0x1e
jbe 0x1002362
mov word [0x10051d4], 0x1e
push 0xff00ff
push str.TextColor
push esi
call fcn.01001d2b
push ebx
push str.BackgroundColor
push esi
mov dword [0x1005c04], eax
call fcn.01001d2b
push eax
mov dword [0x10064c4], eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push ebx
push 1
push 9
push dword [esp + 0x48]
mov dword [0x10051c0], eax
call dword [sym.imp.USER32.dll_SetTimer]
mov dword [0x10051f4], eax
push dword [esp + 0x48]
push dword [esp + 0x48]
push dword [esp + 0x48]
push dword [esp + 0x48]
call fcn.010031c0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 0x10