Function at 0x401000
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x274
push ebx
push esi
push edi
push 0xb
xor ebx, ebx
pop ecx
xor eax, eax
lea edi, [ebp - 0x44]
mov dword [ebp - 0x48], ebx
push 6
rep stosd dword es:[edi], eax
pop ecx
lea edi, [ebp - 0x60]
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x74], ebx
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x70]
and byte [ebp - 0x274], bl
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 0x3f
xor eax, eax
pop ecx
lea edi, [ebp - 0x273]
rep stosd dword es:[edi], eax
and byte [ebp - 0x174], bl
push 0x3f
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x173]
push dword [ebp + 0x10]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov dword [ebp - 0xc], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 8], ebx
mov dword [ebp - 4], ebx
stosb byte es:[edi], al
call fcn.004043d7
pop ecx
mov ecx, 0xfe
cmp eax, ecx
jle 0x40107b
mov eax, ecx
push eax
lea eax, [ebp - 0x174]
push dword [ebp + 0x10]
push eax
call fcn.0040441b
mov eax, str.36352
add esp, 0xc
mov ecx, eax
test ecx, ecx
jne 0x4010a1
mov dword [0x406a10], ebx
jmp 0x4010ad
push eax
call fcn.00404617
pop ecx
mov dword [0x406a10], eax
push ebx
call fcn.00403c71
cmp eax, dword [0x406a10]
pop ecx
mov edi, 0x40611c
setg al
test al, al
mov byte [0x406d1d], al
jne 0x40124f
mov esi, 0x406c18
push 0xff
push esi
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov eax, esi
test eax, eax
je 0x4010f5
push esi
call fcn.004043d7
pop ecx
lea ecx, [eax - 1]
mov eax, esi
test eax, eax
je 0x40111f
mov dl, byte [ecx + 0x406c18]
lea eax, [ecx + 0x406c18]
test dl, dl
je 0x40111f
cmp ecx, ebx
jl 0x40111f
cmp dl, 0x2e
jne 0x40111c
and byte [eax], 0
xor ecx, ecx
dec ecx
jmp 0x4010fe
push str..ini
push esi
call fcn.00404464
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
pop ecx
pop ecx
push esi
push 5
push str.toolbar_padding
push edi
call ebx
mov byte [0x406040], al
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
call fcn.0040392f
pop ecx
pop ecx
push 0
call dword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
sub eax, edx
push 1
mov ecx, eax
mov eax, dword [ebp - 8]
cdq
sub eax, edx
sar ecx, 1
sar eax, 1
sub ecx, eax
mov dword [ebp - 0x18], ecx
call dword [sym.imp.USER32.dll_GetSystemMetrics]
cdq
sub eax, edx
push esi
push dword [ebp - 0x18]
mov ecx, eax
mov eax, dword [ebp - 4]
cdq
sub eax, edx
push str.window_x
sar ecx, 1
sar eax, 1
sub ecx, eax
push edi
mov dword [ebp - 0x14], ecx
call ebx
push esi
mov dword [ebp - 0xc], eax
push dword [ebp - 0x14]
push str.window_y
push edi
call ebx
lea ecx, [eax + 1]
mov dword [ebp - 0x10], eax
push ecx
mov ecx, dword [ebp - 0xc]
lea edx, [ecx + 1]
push edx
push eax
lea eax, [ebp - 0x74]
push ecx
push eax
call dword [sym.imp.USER32.dll_SetRect]
lea eax, [ebp - 0x74]
push eax
push 0
call dword [sym.imp.USER32.dll_GetDC]
push eax
call dword [sym.imp.GDI32.dll_RectVisible]
test eax, eax
jne 0x4011e1
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
push esi
push 0
push str.speed
push edi
call ebx
push esi
push 8
push str.speed_custom
push edi
mov dword [0x406a04], eax
call ebx
push esi
push 0
push str.topmost
push edi
mov dword [0x406008], eax
call ebx
neg eax
sbb eax, eax
push esi
push 0
and eax, 0x40000
push str.hide_captions
push edi
mov dword [0x406a00], eax
call ebx
sub dword [ebp - 4], eax
push esi
push 0
push str.record_key
push edi
mov dword [0x406a14], eax
call ebx
push esi
push 0
push str.play_key
push edi
mov byte [0x406d1b], al
call ebx
mov byte [0x406d1c], al
xor ebx, ebx
push 0x30
lea eax, [ebp - 0x48]
pop esi
push esi
push ebx
push eax
call fcn.004042ca
mov eax, dword [ebp + 8]
add esp, 0xc
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], ebx
push 0xfa1
push eax
mov dword [ebp - 0x40], 0x401489
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2c], ebx
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x48]
mov esi, str.TinyTaskClass
push eax
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x28], 0x10
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], esi
call dword [sym.imp.USER32.dll_RegisterClassExA]
test ax, ax
jne 0x4012c0
push 0x12030
push edi
push str.Startup_Failure:_RegisterClass
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x4013f3
cmp dword [ebp - 8], 0xe0
jle 0x4012d0
mov eax, 0x20000
jmp 0x4012d2
xor eax, eax
push ebx
or eax, 0x86c80000
push dword [ebp + 8]
push ebx
push ebx
push dword [ebp - 4]
push dword [ebp - 8]
push dword [ebp - 0x10]
push dword [ebp - 0xc]
push eax
mov eax, dword [0x406a00]
neg eax
sbb eax, eax
push edi
and eax, 8
push esi
or eax, 0x40000
push eax
call dword [sym.imp.USER32.dll_CreateWindowExA]
cmp eax, ebx
mov dword [0x4069e0], eax
jne 0x40131a
push 0x12030
push edi
push str.Startup_Failure:_CreateWindow
jmp 0x4012b4
mov cl, byte [0x406d1d]
neg cl
sbb ecx, ecx
and ecx, 0xfffffffb
add ecx, 5
push ecx
push eax
call dword [sym.imp.USER32.dll_ShowWindow]
push dword [0x4069e0]
call dword [sym.imp.USER32.dll_UpdateWindow]
cmp dword [ebp + 0x10], ebx
je 0x4013b6
cmp byte [ebp - 0x174], 0
je 0x4013b6
lea eax, [ebp - 0x174]
xor esi, esi
test eax, eax
je 0x401369
lea eax, [ebp - 0x174]
push eax
call fcn.004043d7
pop ecx
mov edi, eax
jmp 0x40136b
xor edi, edi
lea eax, [ebp - 0x174]
test eax, eax
je 0x4013a4
mov cl, byte [ebp + esi - 0x174]
lea eax, [ebp + esi - 0x174]
test cl, cl
je 0x4013a4
cmp cl, 0x22
jne 0x4013a1
mov ecx, edi
sub ecx, esi
push ecx
lea ecx, [eax + 1]
push ecx
push eax
call fcn.00404399
add esp, 0xc
dec edi
jmp 0x401375
inc esi
jmp 0x401375
lea eax, [ebp - 0x174]
push ebx
push eax
call fcn.00402f8e
jmp 0x40144a
cmp byte [0x406d1d], 0
je 0x40144a
lea eax, [ebp - 0x274]
push 0xff
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push dword [0x406a10]
lea eax, [ebp - 0x274]
push eax
call fcn.00402f8e
test eax, eax
jne 0x4013fa
xor eax, eax
jmp 0x401482
mov eax, str.00004
mov ecx, eax
test ecx, ecx
je 0x40140c
push eax
call fcn.00404617
pop ecx
movzx eax, al
mov dword [0x406a04], eax
mov eax, str.00001
mov ecx, eax
test ecx, ecx
jne 0x401427
mov dword [0x40600c], ebx
jmp 0x401433
push eax
call fcn.00404617
pop ecx
mov dword [0x40600c], eax
push ebx
push 0x8003
push 0x111
push dword [0x4069e0]
call dword [sym.imp.USER32.dll_PostMessageA]
mov esi, dword [sym.imp.USER32.dll_GetMessageA]
push ebx
push ebx
lea eax, [ebp - 0x64]
push ebx
push eax
call esi
cmp eax, ebx
je 0x40147f
cmp eax, 0xffffffff
je 0x40147f
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push ebx
push ebx
lea eax, [ebp - 0x64]
push ebx
push eax
jmp 0x401457
mov eax, dword [ebp - 0x5c]
pop edi
pop esi
pop ebx
leave
ret 0x10