Function at 0x4057a0
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14c
push ebx
push esi
push edi
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov eax, dword [0x55c92c]
mov dword [ebp - 0x10c], eax
mov dword [ebp - 0xbc], 0
movzx ecx, byte [0x55c8eb]
mov dword [ebp - 0x144], ecx
push 0
call dword [sym.imp.KERNEL32.dll_GetThreadPriority]
mov esi, 0xb2ef5
sub esi, eax
mov edx, dword [ebp - 0x10c]
and edx, dword [ebp - 0x10c]
or esi, edx
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateWaitableTimerW]
mov edi, eax
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_OpenFileMappingA]
sub eax, 0xcb18
and edi, eax
or esi, edi
mov dword [ebp - 0x10c], esi
cmp dword [ebp - 0x10c], 0x52088
jne 0x40583d
movzx eax, byte [ebp - 0x81]
mov dword [ebp - 0x10c], eax
jmp 0x405855
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_LCMapStringA]
mov dword [ebp - 0x10c], eax
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov esi, eax
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_ReplaceFileA]
sub esi, eax
movzx ecx, word [ebp - 0xac]
lea ecx, [esi + ecx - 0xc185e]
mov edx, dword [ebp - 0x10c]
shr edx, cl
mov byte [ebp - 0x81], dl
mov eax, dword [ebp - 0x10c]
add eax, dword [ebp - 0x10c]
movzx ecx, word [ebp - 0xac]
sub eax, ecx
add eax, 0x46323
mov dword [ebp - 0x10c], eax
cmp dword [ebp - 0x10c], 0x46a90
jne 0x4058ee
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
mov edx, dword [ebp - 0x10c]
lea esi, [edx + eax + 0xe5bc]
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetShortPathNameA]
or esi, eax
mov dword [ebp - 0x10c], esi
jmp 0x40594e
mov esi, dword [ebp - 0x10c]
sub esi, dword [ebp - 0x10c]
sub esi, dword [ebp - 0x10c]
and esi, 0x8ac2
and esi, dword [ebp - 0x10c]
movzx eax, byte [ebp - 0x81]
movzx ecx, word [ebp - 0xac]
lea edi, [eax + ecx + 0x432e8]
mov ebx, dword [ebp - 0x10c]
add ebx, 0x79b94
movzx edx, byte [ebp - 0x81]
sub ebx, edx
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
sub ebx, eax
and edi, ebx
or esi, edi
xor eax, eax
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], eax
mov esi, dword [ebp - 0x10c]
xor edi, edi
push 0
call dword [sym.imp.KERNEL32.dll_FindAtomW]
movzx eax, ax
cdq
mov ecx, dword [ebp - 0x10c]
add ecx, 0x4f79b
xor ebx, ebx
sub ecx, dword [ebp - 0x70]
sbb ebx, dword [ebp - 0x6c]
and eax, ecx
and edx, ebx
or esi, eax
or edi, edx
or esi, 0x311e3
or esi, 0x27759
mov edx, dword [ebp - 0x10c]
xor eax, eax
or esi, edx
or edi, eax
mov ecx, dword [ebp - 0x70]
sub ecx, 0x3757b
mov ebx, dword [ebp - 0x6c]
sbb ebx, 0
movzx eax, byte [ebp - 0x81]
cdq
add ecx, eax
adc ebx, edx
add ecx, 0x5710c
adc ebx, 0
or esi, ecx
or edi, ebx
movzx eax, byte [ebp - 0x81]
cdq
or esi, eax
or edi, edx
or esi, 0x6beb6
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov edx, dword [ebp - 0x10c]
add edx, 0x4131c
mov esi, edx
xor edi, edi
add esi, dword [ebp - 0x70]
adc edi, dword [ebp - 0x6c]
call dword [sym.imp.KERNEL32.dll_SwitchToThread]
sub eax, 0x670bb
movzx ecx, byte [ebp - 0x81]
sub eax, ecx
and eax, 0x35d7d
mov ebx, eax
xor eax, eax
push 0
push 0
push 0
push 0
mov dword [ebp - 0x14c], eax
call dword [sym.imp.KERNEL32.dll_PostQueuedCompletionStatus]
xor edx, edx
mov ecx, dword [ebp - 0x70]
sub ecx, eax
mov eax, dword [ebp - 0x6c]
sbb eax, edx
and ebx, ecx
mov ecx, dword [ebp - 0x14c]
and ecx, eax
or esi, ebx
or edi, ecx
mov dword [ebp - 0x10c], esi
mov eax, dword [ebp - 0x70]
mov edx, dword [ebp - 0x6c]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4