Function at 0x401044
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5a8
push ebx
push edi
mov dword [ebp - 4], ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
and byte [ebp - 0x3a4], 0
push 0x40
mov dword [ebp - 0xc], eax
pop ecx
xor eax, eax
lea edi, [ebp - 0x3a3]
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 4]
push 0x104
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x3a4]
push eax
call fcn.004015f1
mov ebx, dword [sym.imp.MSVCRT.dll_sprintf]
test eax, eax
je 0x40123e
push esi
mov esi, str.ERROR
lea edi, [ebp - 0x14]
and byte [ebp - 0x11c], 0
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
push 0x40
xor eax, eax
pop ecx
lea edi, [ebp - 0x11b]
rep stosd dword es:[edi], eax
and byte [ebp - 0x2a0], 0
push 0x40
stosw word es:[edi], ax
stosb byte es:[edi], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x29f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x3a4]
push eax
lea eax, [ebp - 0x2a0]
push str._sconfigOriginalAccelerator.ini
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x2a0]
mov esi, str.config
push eax
push 0
push str.count
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
xor edx, edx
mov dword [ebp - 8], eax
test eax, eax
jle 0x40123d
and byte [ebp - 0x19c], 0
push 0x1f
pop ecx
xor eax, eax
lea edi, [ebp - 0x19b]
inc edx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
push edx
lea eax, [ebp - 0x19c]
push str.file_d
push eax
mov dword [ebp - 0x18], edx
call ebx
add esp, 0xc
lea eax, [ebp - 0x2a0]
push eax
lea eax, [ebp - 0x11c]
push 0x104
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x19c]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, eax
lea eax, [ebp - 0x11c]
push eax
push dword [ebp - 4]
call fcn.0040155b
pop ecx
test edi, edi
pop ecx
jbe 0x401231
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
pop ecx
test eax, eax
pop ecx
je 0x401231
and byte [ebp - 0x5a8], 0
push 0x40
pop ecx
xor eax, eax
lea edi, [ebp - 0x5a7]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x11c]
push eax
lea eax, [ebp - 0x3a4]
push eax
lea eax, [ebp - 0x5a8]
push str._s_s
push eax
call ebx
add esp, 0x10
lea eax, [ebp - 0x11c]
push 0
push 0x80
push 3
push 0
push 3
push 0x80000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
je 0x4011f6
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea eax, [ebp - 0x11c]
push eax
call sub.MSVCRT.dll_strlen
lea eax, [ebp + eax - 0x120]
mov dword [esp], str..dll
push eax
call dword [sym.imp.MSVCRT.dll__mbsicmp]
pop ecx
test eax, eax
pop ecx
jne 0x401231
lea eax, [ebp - 0x11c]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov edx, dword [ebp - 0x18]
cmp edx, dword [ebp - 8]
jl 0x40110d
pop esi
and byte [ebp - 0x4a4], 0
push 0x3f
pop ecx
xor eax, eax
lea edi, [ebp - 0x4a3]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebp - 0xc]
push eax
lea eax, [ebp - 0x4a4]
push str.speed_launch_execution_time:___u__seconds
push eax
call ebx
add esp, 0xc
lea eax, [ebp - 0x4a4]
push eax
push dword [ebp - 4]
call fcn.0040155b
pop ecx
pop ecx
push 1
pop eax
pop edi
pop ebx
leave
ret